【转】如何使用瑞萨E10A调试SH系列不带片内FLASH的单片机

对于SH1,SH2等内建FLASH的单片机,由于内建了高速FLASH存储,我们可以使用E10A等仿真直接在FLASH ROM里设置硬件断点,可以很方便的进行调试。 但是对于SH2A,SH3,SH4等不带内部FLASH的单片机,我们只能在片外RAM里进行仿真调试了。

    下面以SH2A为例,如何设置断点,如何在内置SRAM里或者片外SDRAM里调试程序,如何下载程序到外部FLASH里。 

     SH2A断点:针对SH2A的调试体系,硬件断点可以设置在任何地址处(FLASH和SDRAM,SRAM等),软件断点只能设置在RAM处。硬件断点通过设置相应的地址寄存,并进行地址比较,使CPU进入调试模式。软件断点可以通过相应的数据寄存,在任何需要设置断点的地方,将其内容替换为一个固定的序列,达到设置断点的目的。软件断点的实现需要替换要设置断点的位置的内容,这点在FLASH里做不到,因为读写FLASH需要特殊的指令。故软件断点只能设置在RAM中。
E10A仿真调试说明: 

在内部RAM调试: 
1. 新建一个文本文档,将打开软件断点,初始化SP和PC寄存的命令放在其中,然后保存为后缀“.hdc”的批处理文件。 
2. 在HEW里的debug -- debug settings -- options -- command batch file load,分别选中after download of modules和after reset选项,选择面的.hdc文件即可。 
3. 改变相应的段地址(复位向量,中断向量,代码区,初始化全局区,未初始化全局区,堆,栈)。 

   说明:编译复位或者编译全部文件之后,将自动运行面的批处理文件,执行相应的命令。 command line设置见编译手册。 

在外部RAM调试: 
1. 新建一个文本文档,将初始化时钟和总线控制的命令放在其中,然后保存为后缀“.hdc”的批处理文件。 
2. 在HEW里的debug -- debug settings -- options -- command batch file load,选中before download of modules选项,选择面的文件. 
3. 再次新建一个打开软件断点,初始化SP和PC寄存的批处理文件。 
4. 在HEW里的debug -- debug settings -- options -- command batch file load,选中after download of modules选项,选择3中的文件。 
5. 改变相应的段地址(复位向量,中断向量,代码区,初始化全局区,未初始化全局区,堆,栈)。

    说明:在进入下载模式之前需要设置时钟和总线控制,可执行的映象文件才能下载到外部RAM。 

如何使用E10A下载程序到外部FLASH里: 
1. 初始化外部FLASH的总线控制,保存到hdc文件,操作步骤见“在外部RAM调试”的第一条。 
2. 参照FLASH手册修改Renesas提供的FLASH样本程序(汇编语言),生成.mot文件,然后在HEW里选中该文件,并设置FLASH参数。 
3. 在HEW里设置FLASH下载选项,如图。 

对于SH1,SH2等内建FLASH的单片机,由于内建了高速FLASH存储,我们可以使用E10A等仿真直接在FLASH ROM里设置硬件断点,可以很方便的进行调试。 但是对于SH2A,SH3,SH4等不带内部FLASH的单片机,我们只能在片外RAM里进行仿真调试了。

    下面以SH2A为例,如何设置断点,如何在内置SRAM里或者片外SDRAM里调试程序,如何下载程序到外部FLASH里。 

     SH2A断点:针对SH2A的调试体系,硬件断点可以设置在任何地址处(FLASH和SDRAM,SRAM等),软件断点只能设置在RAM处。硬件断点通过设置相应的地址寄存,并进行地址比较,使CPU进入调试模式。软件断点可以通过相应的数据寄存,在任何需要设置断点的地方,将其内容替换为一个固定的序列,达到设置断点的目的。软件断点的实现需要替换要设置断点的位置的内容,这点在FLASH里做不到,因为读写FLASH需要特殊的指令。故软件断点只能设置在RAM中。
E10A仿真调试说明: 

在内部RAM调试: 
1. 新建一个文本文档,将打开软件断点,初始化SP和PC寄存的命令放在其中,然后保存为后缀“.hdc”的批处理文件。 
2. 在HEW里的debug -- debug settings -- options -- command batch file load,分别选中after download of modules和after reset选项,选择面的.hdc文件即可。 
3. 改变相应的段地址(复位向量,中断向量,代码区,初始化全局区,未初始化全局区,堆,栈)。 

   说明:编译复位或者编译全部文件之后,将自动运行面的批处理文件,执行相应的命令。 command line设置见编译手册。 

在外部RAM调试: 
1. 新建一个文本文档,将初始化时钟和总线控制的命令放在其中,然后保存为后缀“.hdc”的批处理文件。 
2. 在HEW里的debug -- debug settings -- options -- command batch file load,选中before download of modules选项,选择面的文件. 
3. 再次新建一个打开软件断点,初始化SP和PC寄存的批处理文件。 
4. 在HEW里的debug -- debug settings -- options -- command batch file load,选中after download of modules选项,选择3中的文件。 
5. 改变相应的段地址(复位向量,中断向量,代码区,初始化全局区,未初始化全局区,堆,栈)。

    说明:在进入下载模式之前需要设置时钟和总线控制,可执行的映象文件才能下载到外部RAM。 

如何使用E10A下载程序到外部FLASH里: 
1. 初始化外部FLASH的总线控制,保存到hdc文件,操作步骤见“在外部RAM调试”的第一条。 
2. 参照FLASH手册修改Renesas提供的FLASH样本程序(汇编语言),生成.mot文件,然后在HEW里选中该文件,并设置FLASH参数。 
3. 在HEW里设置FLASH下载选项,如图。 

4. 最后可以下载程序了。 

/***************** 今天为了更好的明天 ******************/
原文地址:https://www.cnblogs.com/cheng-amy/p/5891793.html