yy_kernel-10076 发表于 2009-4-2 16:12:41

如何让程序在RAM里面运行

要对代码做ISP,而且不能改变boot跳线,实现全地址flash更新.用的STM32103VBT6,20K RAM,程序占用17K左右.
我的设想是进入ISP任务时,把ISP部分代码移到RAM运行(大概4K),要覆盖掉以前程序的内存,然后这个ISP代码通过通讯口接收数据,重写整个Flash,然后重新启动
不知道这个方案是否可行?可行的话,如何让程序loader到RAM中运行?

chsong57 发表于 2009-4-3 11:24:21

回复:如何让程序在RAM里面运行

这样不安全,下载过程中一断电就歇菜了

freny 发表于 2009-4-2 22:42:23

RE:如何让程序在RAM里面运行

stm32我还未做过,做过LPC2220的,而且只是将LOAD下来写到另外一个地方,而不是覆盖本身,不过好像这种原理都一样。需要覆盖本身,那你就要让ISP就在RAM里运行了,而且不知道你是否用到中断,要是用到中断的话还要将中断映射到RAM,用分散加载吧,最好将你的ISP写成一个文件,然后加载到RAM里,这样编译器就会帮你将那个给烤到RAM里,你的ISP过程可是要一直在RAM里转悠的哟,可千万别跑到FLASH里就好了。
有点思路就好做了。

chsong57 发表于 2009-4-3 11:25:04

回复:如何让程序在RAM里面运行

这样不安全,下载过程中一断电就歇菜了

yy_kernel-10076 发表于 2009-4-9 15:52:31

RE:如何让程序在RAM里面运行

不断电有其他保证的,现在的问题就是如何让程序在RAM里面运行....

denvice 发表于 2015-6-16 09:38:01

具体做法值得商榷
页: [1]
查看完整版本: 如何让程序在RAM里面运行