Board logo

标题: 如何利用command line命令修改I/O寄存器 [打印本页]

作者: chudf    时间: 2007-7-19 21:00     标题: 如何利用command line命令修改I/O寄存器

我在调试时,经常遇到需要等待外设响应的语句,如一直查询一个flag。但在单步执行是总是在执行改查询语句,无法跳过该语句。原先的方法是直接将该语句注释掉。后来发现command line中的一条命令rs可以修改I/O寄存器的值,但我不知道如何去使用,命令框总是提示不认识I/O寄存器的名字。好像需要加一个.reg文件。
请问版主,这个文件该往哪个里面加?该如何加进去?
急切盼望回复!!!
作者: strongchen    时间: 2007-7-20 14:12

什么芯片?哪个版本的CodeWarrior?
作者: chudf    时间: 2007-7-20 14:53

多谢版主回复!我用的是9S12XDP512,codewarrior是4.6版本的,初次涉及freescale MCU,请多指点
作者: strongchen    时间: 2007-7-20 15:52

你是用软件仿真的方法进行调试吗?
作者: chudf    时间: 2007-7-20 18:30

是的,主要是用9S12XDP512走CAN总线。现在主要在调试CAN通信的部分,暂时又没有硬件支持。所以想充分利用软件仿真。
作者: chudf    时间: 2007-7-20 18:41

比如说“while (!SPI0.spisr.bit.sptef);”这条语句,CPU要一直查询sptef这个位,当硬件响应之后,它才置位并才执行下一条语句。但我发现仿真时CPU无法跳过这个语句,一直死在那里。我想问一下,能否通过command line手动输入一个rs命令修改spisr的值,将sptef置位,模拟硬件的响应,让CPU以为sptef已经置位。
作者: chudf    时间: 2007-7-20 18:42

或者还有其他更好的方法,请版主点拨!
作者: sideline    时间: 2007-7-22 16:55

in>RS DDRA=0Xff
in>RS PORTA=0Xff

作者: chudf    时间: 2007-7-24 14:05

我试过,可是敲进去后,老是提示:Error: unknown register or alias.请问如何才能知道它到底认识那些I/O寄存器
作者: chudf    时间: 2007-7-24 14:08

我后来发现simulation模式下,在Data窗口可以修改相应变量和寄存器的值,可惜在sofTec和P%E进行硬件调试时就束手无策了。请各位帮忙想想办法?
作者: strongchen    时间: 2007-7-24 15:31

在硬件调试状态下寄存器和变量的值应该也是可以修改的。
作者: chudf    时间: 2007-7-24 22:25

多谢版主!可是我现在发现以前在simulation下可以修改的寄存器和变量值在硬件调试下不能修改了,郁闷ing。请问是直接在data窗口里面修改,还是在哪里修改?偶刚刚用freescale MCU,对9S12XDP512很不熟。请版主指点!!!非常感谢
作者: strongchen    时间: 2007-7-25 09:42

你可以再memory窗口里修改。
作者: chudf    时间: 2007-7-25 15:18

我发现还可以用PC可以修改,只能跳过这一步。我还有个问题,这个 cw打开了两对窗口:S12和XGATE。s12可以单步执行,但是XGATE怎么才能单步执行啊?好像没有办法可以主动去查看XGATE里面的东西,只能等它的中断。
作者: chudf    时间: 2007-7-25 15:20

S12与XGATE一起联合调试的资料太少了,版主能不能推荐一点资料,或者给我稍微讲一下啊。急等。
作者: TristoneGao    时间: 2007-7-25 16:50

几点Tips:
1) 确实,只有等到中断XGATE才能运行。没有中断XGATE不执行任何指令。
2) 一种主动运行XGATE的方法是S12X主CPU对XGATE用发送软件中断。一共有8个这样的软件中断资源。
3) 请到freescale的网站上下载application note AN3458: "Debuggering XGATE Code".

作者: TristoneGao    时间: 2007-7-25 18:29

可以问一下您的应用吗?Auto Powertrain?
作者: chudf    时间: 2007-7-25 18:34

多谢楼上的tips,小弟受益不少。我还想问一下:为什么XGATE中断响应后,窗口Source2中显示的是中断函数中间的某条语句,这是否表示中断函数没有执行完? :)
作者: TristoneGao    时间: 2007-7-26 13:25

如果在simulator模式下,那条语句由又是关于片内外设的。那很可能是。您最好设法得到一块freescale的S12XD或S12XE的demo板,Simulator的功能还是很有限的。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0