我使用的是TI官方的KE-LM3S811-ND这款开发板,开始不能在Keil下调试,后来下了个转换软件,终于可以在Keil下调试了,但是在调试的时候,Keil上显示,芯片从复位开始一直处于handle状态,对内核中的Control寄存器进行改写,比如写0x03,Keil上显示寄存器的值没有没有改变。我想知道,这是否意味着LM3S811芯片真的处于handle状态。如果真的是处于huandle状态,那么为什么在调试的时候,该芯片在刚刚复位后就会处于handle状态。
我使用的是TI官方的KE-LM3S811-ND这款开发板,开始不能在Keil下调试,后来下了个转换软件,终于可以在Keil下调试了,但是在调试的时候,Keil上显示,芯片从复位开始一直处于handle状态,对内核中的Control寄存器进行改写,比如写0x03,Keil上显示寄存器的值没有没有改变。我想知道,这是否意味着LM3S811芯片真的处于handle状态。如果真的是处于huandle状态,那么为什么在调试的时候,该芯片在刚刚复位后就会处于handle状态。
LM3S811支持Keil调试的。不知道楼主是否指在某函数名为handler函数中停住了?
1. 建议楼主更新Keil使用较新版本
2. 先使用TI StellarisWare自带的例程,用LM Flash Programmer下载,看看板子是否能正常工作
3. 如果不能下载或运行不正常建议换一个板子试试
CONTROL寄存器的作用有两个,一是选择使用的堆栈,二是选择特权级别。而Handler模式是用于处理中断和异常的。和CONTROL寄存器关系不大。
复位后默认是线程模式而不是Handler模式,芯片会自动进入线程模式+特权级。置位CONTROL[0]可以进入线程模式+用户级。
我没有EK-LM3S811-ND的资料,TI的开发板上都有仿真器,用的是USB接口直接连接电脑,在keil里面选用Stellaris ICDC可以直接通过USB仿真调试而不再需要别的仿真器