F28335板,510仿真器。编了2个汇编程序,程序A在RAM运行,2个LED灯同时闪烁;程序B已经写入Flash,2个LED灯切换闪烁。在3.3时调试正常。
在CCS5.5时:
1. 编译A程序,点Debug,PC指向RAM区0x009000,SP为0x400。点resume,运行的是Flash内程序。
问题:程序还未load,PC怎么就指向了RAM区?另外,PC未指向boot区,怎么就执行了程序B?
2. 点load后,PC指向RAM区0x009000(不点load也指向这里),点resume,运行的还是Flash内程序。
问题:程序已经装入,且PC指向0x9000,怎么执行的还是Flash内程序,按道理应该是程序A吗?
3. 点Debug后,点load,PC当然指向0x9000,点resume(运行的是Flash内程序)点suspend中止,再点restart,然后点resume,此时才是ram内程序。
问题:为什么需要先运行一下Flash中的B程序,然后中止,再restart,才能是RAM程序A?直接restart无效(试过了)?
麻烦高手指点指点。谢谢。
li quanli:
回复 Eric Ma:
非常感谢您的回复。 1. Flash运行的程序和RAM中运行的程序是2个不同的工程。 2. Flash运行的程序已经写入,板子上电运行正常。 3. 这2个程序本身并无实际工程意义,主要是想为学习F28335建立渐进入门案例:由汇编程序的软件算法仿真,过渡到汇编程序Emulator的RAM仿真运行(就是程序A),然后再过渡到汇编程序Emulator的Flash仿真运行(即程序B),然后再过渡到C语言的编程应用。 4. 附件是这2个程序,请指导。