xiatianzhang 发表于 2012-4-22 17:53:40

shower.xu 发表于 2012-4-23 08:47:39

貌似断点设置过多,你去掉所有断点试试

xiatianzhang 发表于 2012-4-23 15:47:44

bingtuohun 发表于 2012-5-18 14:40:08

这个问题最后怎么解决的?

34071417 发表于 2012-5-22 23:12:54

你是不是设置了优化,不要有任何优化,否则优化后,有些断点是打不到的

xiatianzhang 发表于 2012-5-23 08:39:07

tcwb201 发表于 2012-5-23 09:30:43

430仿真器确实不怎么好,经常会出现莫名奇妙的问题

benhaha 发表于 2012-5-23 09:48:17

{:smile:}这个提示的意思是缺少断点。

{:smile:}首先要了解两点:
1 MSP430微控制器不同型号允许不同的硬件断点个数,断点是有限资源,不可随意设置,如果不够使用只能取消已经设置的断点,再来设置。
2 在用高级语言编程时,微控制器不是一上电就会跳到C语言的入口main函数处。

有了前两点基础,我们来分析调试时微控制器的动作行为:
1 在工程选项的debugger(project->option->debugger)选项下有一个run to main的选项,勾选此选项则进入调试模式后调试器控制单片机运行至C语言的入口函数处,不勾选此选项则进入调试模式后调试器使单片机停在复位向量所指地址处,此时让单片机全速执行则其会首先执行一段初始化代码(包括初始化堆栈指针,初始化内存,初始化C语言的运行环境)然后跳转到C语言入口main函数处。

{:smile:}据上所述,来回答你的问题:
在勾选run to main 选项调试时,调试器实际上是需要在main函数处下一个断点(main函数占用了一个断点),这样你如果设置了别的端点,再用调试器控制单片机复位后重新运行的话,就可能会缺少断点,程序只能停在复位向量所指地址处(此处没有C语言,只能停在反汇编后的汇编代码处)。我仅提供一个思路,至于楼主说的没有设置断点就这样就得靠自己了,希望能帮到你。

xiatianzhang 发表于 2012-5-23 13:09:55

页: [1]
查看完整版本: 仿真时候出现的问题,纠结了很久,望高手指点一下