新闻  |   论坛  |   博客  |   在线研讨会
SH常用命令行语句用法详解
renesasrulz | 2009-12-26 11:54:48    阅读:7132   发布文章

原文:SH常用命令行语句用法详解

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工程会自动执行刚才设置的命令行语句,完成一些初始化命令等。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
来自瑞萨单片机论坛(www.renesas-mcu.com)的经典文章。仅供大家参考,版权归作者所有。
推荐文章
最近访客