大家好,最近在弄stm32f4 Discovery开发板,看到很多人在讨论ram调试,我这里有几个问题想请教一下:
1.ram调试是不是必须得从ram启动?
2.我试了试从Flash启动,修改icf文件把intvec设置在0x80000000,其他只读或RW数据都放在RAM,RAM空出0x200给向量表,进入main函数再调用Nvic_setvectortable函数把向量表拷贝到ram首地址,好像不行。是不是因为单片机如果从Flash启动就会到Flash去找向量表,取到resethanderler后由于代码都在ram中,因此程序无法跳转?
3.如果从ram启动,把intvec设置为0x20000000,所有数据都放在ram,这样应该就没问题吧?最后是不是还得在main函数调用一下Nvic_setvectortable函数把向量表拷贝到ram首地址,目的是在使用中断的时候,让程序去ram中找向量表。因为单片机遇到中断一般都是去flash去找向量表的。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
但是我碰到另外一个问题,在RAM中调试不能复位,一复位PC就跑到很大的地址,不知道怎么回事
一周热门 更多>