如何让程序在RAM里面运行
要对代码做ISP,而且不能改变boot跳线,实现全地址flash更新.用的STM32103VBT6,20K RAM,程序占用17K左右.我的设想是进入ISP任务时,把ISP部分代码移到RAM运行(大概4K),要覆盖掉以前程序的内存,然后这个ISP代码通过通讯口接收数据,重写整个Flash,然后重新启动
不知道这个方案是否可行?可行的话,如何让程序loader到RAM中运行?
回复:如何让程序在RAM里面运行
这样不安全,下载过程中一断电就歇菜了RE:如何让程序在RAM里面运行
stm32我还未做过,做过LPC2220的,而且只是将LOAD下来写到另外一个地方,而不是覆盖本身,不过好像这种原理都一样。需要覆盖本身,那你就要让ISP就在RAM里运行了,而且不知道你是否用到中断,要是用到中断的话还要将中断映射到RAM,用分散加载吧,最好将你的ISP写成一个文件,然后加载到RAM里,这样编译器就会帮你将那个给烤到RAM里,你的ISP过程可是要一直在RAM里转悠的哟,可千万别跑到FLASH里就好了。有点思路就好做了。
回复:如何让程序在RAM里面运行
这样不安全,下载过程中一断电就歇菜了RE:如何让程序在RAM里面运行
不断电有其他保证的,现在的问题就是如何让程序在RAM里面运行.... 具体做法值得商榷
页:
[1]