完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
要对代码做ISP,而且不能改变boot跳线,实现全地址flash更新.用的STM32103VBT6,20K RAM,程序占用17K左右.
我的设想是进入ISP任务时,把ISP部分代码移到RAM运行(大概4K),要覆盖掉以前程序的内存,然后这个ISP代码通过通讯口接收数据,重写整个Flash,然后重新启动 不知道这个方案是否可行?可行的话,如何让程序loader到RAM中运行? |
|
相关推荐
5个回答
|
|
stm32我还未做过,做过LPC2220的,而且只是将LOAD下来写到另外一个地方,而不是覆盖本身,不过好像这种原理都一样。需要覆盖本身,那你就要让ISP就在RAM里运行了,而且不知道你是否用到中断,要是用到中断的话还要将中断映射到RAM,用分散加载吧,最好将你的ISP写成一个文件,然后加载到RAM里,这样编译器就会帮你将那个给烤到RAM里,你的ISP过程可是要一直在RAM里转悠的哟,可千万别跑到FLASH里就好了。
有点思路就好做了。 |
|
|
|
这样不安全,下载过程中一断电就歇菜了
|
|
|
|
这样不安全,下载过程中一断电就歇菜了
|
|
|
|
不断电有其他保证的,现在的问题就是如何让程序在RAM里面运行....
|
|
|
|
具体做法值得商榷
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1873 浏览 1 评论
1841 浏览 1 评论
求助大佬我使用STM32F030F4P6 的PA3引脚输出PWM波形
1714 浏览 0 评论
1901 浏览 1 评论
STM32H750VB sys为什么无法选择debug模式?
2053 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-4-16 03:30 , Processed in 0.496415 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191