我在使用VM寄存器的过程中出错,请大虾们帮忙看一下
我使用了fs0和csboot0,地址空间都是0~1FFF,初始设置为主Flash为数据,次Flash为代码
写了一个简单的串口程序,先发送“11”,再发送“22“。在确定这个程序独立跑没问题后,我在发送“11”和发送“22“之间赋值VM为0x8c。然后复制整个工程,将发送的11和22分别改为55和66,分别编译后,将第一个程序的hex文件放到psd工程的csboot0中,将第二个程序放到fs0中。
之后下载第一个程序到一块DK3300的开发板上,运行的结果是出现1122,没有出现我预计的1166。
我的想法是修改VM寄存器时,运行环境都没有变,只有代码区存储器配置由csboot0变为fs0,程序计数器pc指向的代码在csboot0和fs0中的位置和值都是一样的,所以切换后是1166。
雪地跪求了 |