SH命令行语句用于调试时使用,后缀名为.hdc文件。HEW能自动识别.hdc文件。
下面以一个简单的例子来说明SH命令行脚本文件的用法。
一。打开一个记事本,里面输入build_all,然后保存为test.hdc文件。
二。打开HEW工程,打开View -- Command Line,点击BAT图标,然后选择Browse,选择刚才的test.hdc文件。如图1所示:
三。在Command Line工具条上,点击BAT图标右边的Run batch图标,是个小三角形图标。这时HEW就执行test.hdc脚本文件,执行里面的build_all命令行语句。之后我们可以看到HEW会编译整个工程源文件。
以上只是命令行语句的一个简单用法。SH提供很多命令行语句,其中常用的如下:
reset 复位CPU
generate_make_file 为当前工程生成一个makefile文件
register_set 设置寄存器
cache 开或关cache
memory_fill 设置指定的内存,用得很频繁
breakpoint 设置断点
sh2a_sbstk enable 开启SH2A的软件断点功能
下面我们结合一个SH2A的工程来使用命令行语句,很有用的哦~~~!
使用E10A工具来调试SH2A的时候,需要把程序下载到CPU外部RAM里面去仿真。下载之前当然要初始化BSC总线控制器了。比如你的RAM在CS3空间,那么就要初始化CS3总线控制器,一定要保证正确的初始化,以便CPU能正确的访问到RAM。
一。首先保证E10A连接上电脑。
使用memory_fill命令初始化CS3 BSC。格式如下:
memory_fill 寄存器首地址 寄存器尾地址 设置值 字节宽度(byte,word,long)
例如初始化SH7263的CS3总线控制器:
memory_fill fffe38ba fffe38bb 0xffff word
memory_fill fffe38b0 fffe38b1 0xffff word
memory_fill fffe38b2 fffe38b3 0xffff word
memory_fill fffe3910 fffe3911 0xffff word
memory_fill fffe3912 fffe3913 0xffff word
memory_fill fffe3914 fffe3915 0xffff word
memory_fill fffe3916 fffe3917 0xffff word
memory_fill fffc0000 fffc0003 0x00001810 long
memory_fill fffc0010 fffc0013 0x24924400 long
memory_fill fffc0034 fffc0037 0x00006881 long
memory_fill fffc004c fffc004f 0x00000812 long
memory_fill fffc0050 fffc0053 0x0000009c long
memory_fill fffc0054 fffc0057 0x00000007 long
memory_fill fffc0058 fffc005b 0x00000008 long
二。初始化BSC之后,还要设置PC初始值,R15初始值。将PC值设置为复位向量的入口地址,R15值设置为RAM尾地址。如果想使用断点,还必须开启软件断点功能,最大能设置255个软件断点。
例子如下:
sh2a_sbstk enable
register_set r15 0xffffff0
register_set pc 0x0c000800
三。OK!我们完成了设置,将以上语句保存为external_ram_cs3_init_e10a.hdc文件。
在HEW的Debug -- debug settings -- Options里面,选择Before download of modules,点击Add.
然后选择Browse,选中刚才的external_ram_cs3_init_e10a.hdc文件。如图2所示:
四。最后修改程序地址,将其整个的放在RAM地址空间里。
具体在build -- toolchain -- link/library里面,选择section,然后将D,P,C 三个section整个的搬移到CS3地址空间里。如图3:
好了,我们现在可以编译,下载调试了。
HEW工程会自动执行刚才设置的命令行语句,完成一些初始化命令等。
文章评论(0条评论)
登录后参与讨论