zoukankan      html  css  js  c++  java
  • 【转】如何使用瑞萨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. 最后可以下载程序了。 

    /***************** 今天为了更好的明天 ******************/
  • 相关阅读:
    elastic job 动态设置定时任务
    org.springframework.beans.factory.NoSuchBeanDefinitionException
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:unpack (unpack) on project sq-integral-web: Unable to find artifact.
    The method setItems(String) in the type ForTokensTag is not applicable for the arguments (Object)
    linux 配置文件(启动文件、环境文件)启动顺序
    linux shell 执行命令顺序
    在Linux上编译使用tcmalloc
    eclipse启动报错: No Java virtual machine
    http2.0可行性研究
    python 内存问题(glibc库的malloc相关)
  • 原文地址:https://www.cnblogs.com/cheng-amy/p/5891793.html
Copyright © 2011-2022 走看看