如何利用command line命令修改I/O寄存器
- UID
- 165583
- 性别
- 男
|
如何利用command line命令修改I/O寄存器
我在调试时,经常遇到需要等待外设响应的语句,如一直查询一个flag。但在单步执行是总是在执行改查询语句,无法跳过该语句。原先的方法是直接将该语句注释掉。后来发现command line中的一条命令rs可以修改I/O寄存器的值,但我不知道如何去使用,命令框总是提示不认识I/O寄存器的名字。好像需要加一个.reg文件。
请问版主,这个文件该往哪个里面加?该如何加进去?
急切盼望回复!!! |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
|
|
|
|
|
- UID
- 165583
- 性别
- 男
|
多谢版主回复!我用的是9S12XDP512,codewarrior是4.6版本的,初次涉及freescale MCU,请多指点 |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
|
|
|
|
|
- UID
- 165583
- 性别
- 男
|
是的,主要是用9S12XDP512走CAN总线。现在主要在调试CAN通信的部分,暂时又没有硬件支持。所以想充分利用软件仿真。 |
|
|
|
|
|
- UID
- 165583
- 性别
- 男
|
比如说“while (!SPI0.spisr.bit.sptef);”这条语句,CPU要一直查询sptef这个位,当硬件响应之后,它才置位并才执行下一条语句。但我发现仿真时CPU无法跳过这个语句,一直死在那里。我想问一下,能否通过command line手动输入一个rs命令修改spisr的值,将sptef置位,模拟硬件的响应,让CPU以为sptef已经置位。 |
|
|
|
|
|
- UID
- 165583
- 性别
- 男
|
|
|
|
|
|
- UID
- 341467
- 性别
- 女
|
in>RS DDRA=0Xff
in>RS PORTA=0Xff
|
|
|
|
|
|
- UID
- 165583
- 性别
- 男
|
我试过,可是敲进去后,老是提示:Error: unknown register or alias.请问如何才能知道它到底认识那些I/O寄存器 |
|
|
|
|
|
- UID
- 165583
- 性别
- 男
|
我后来发现simulation模式下,在Data窗口可以修改相应变量和寄存器的值,可惜在sofTec和P%E进行硬件调试时就束手无策了。请各位帮忙想想办法? |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
在硬件调试状态下寄存器和变量的值应该也是可以修改的。 |
|
|
|
|
|
- UID
- 165583
- 性别
- 男
|
多谢版主!可是我现在发现以前在simulation下可以修改的寄存器和变量值在硬件调试下不能修改了,郁闷ing。请问是直接在data窗口里面修改,还是在哪里修改?偶刚刚用freescale MCU,对9S12XDP512很不熟。请版主指点!!!非常感谢 |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
|
|
|
|
|
- UID
- 165583
- 性别
- 男
|
我发现还可以用PC可以修改,只能跳过这一步。我还有个问题,这个 cw打开了两对窗口:S12和XGATE。s12可以单步执行,但是XGATE怎么才能单步执行啊?好像没有办法可以主动去查看XGATE里面的东西,只能等它的中断。 |
|
|
|
|
|
- UID
- 165583
- 性别
- 男
|
S12与XGATE一起联合调试的资料太少了,版主能不能推荐一点资料,或者给我稍微讲一下啊。急等。 |
|
|
|
|
|