借鉴于有些大神将STM32运行于RAM中的成功经验,改进了需要进入调试才能运行的繁琐操作。
运行RAM跑程序的主要好处就是不用频繁写芯片flash,直接运行于RAM程序,更加快捷方便。
不说其他了,直接放教程
首先将底层程序写入MCU的Flash,可以通过JLINK或STLINK写入,底层程序见附件。
然后运行,此时主板上所有PA、PB、PC、PD的灯都会快速全闪,表明运行在底层程序中。如有串口1可输出字符(波特率115200)
该底层程序主要的作用就是:当主板重新上电时不会跑飞,因为RAM程序还没有下载进去,只能依托于底层程序运行,
当RAM程序通过keil下载后即可运行。
同时也可以测试电路是否正常。
转入正题,打开自己任意能正常运行工程文件。固件大小最好小于16384(0x4000),这个在keil可以看到;
配置
Options for Target然后修改IROM1,IRAM1的起始地址和大小,这样保证程序大小控制在0x4000内,如需要更大可进行修改IROM,同样IRAM也相应修改。
让IROM和IRAM地址不要冲突。
配置中断向量,
其实这里的配置主要是针对“向量表”,比如中断向量表。如果
不宏定义VECT_TAB_SRAM这个参数,测试串口通讯就会出错。
再就是修改下载jlink或stlink的配置
看下图,需要修改设置不擦写,Ram地址必须与IRAM一样,strart 芯片固件地址设置为和IROM一样即可
然后就编译程序Rebuild,最后直接Download下载运行。
哈哈,看如何?就相当于直接写入flash运行一样的道理,要的就是简单方便。
附件:底层文件
[ 此帖被98xpj在2017-01-10 20:25重新编辑 ]