你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何将bootloader 代码从flash 搬到RAM 运行

[复制链接]
寻梦千寻 提问时间:2021-6-8 18:46 / 未解决
1 收藏 评论11 发布时间:2021-6-8 18:46

举报

11个回答
寻梦千寻 回答时间:2021-6-30 21:28:58
我这边实现了。谢谢大家
废鱼 回答时间:2021-6-9 08:39:05
楼主最好详细描述一下需求,如果是将BootLoader代码直接在RAM中执行,掉电后,代码丢失。如果是从FLASH拷贝到RAM执行,是可以的。
寻梦千寻 回答时间:2021-6-9 09:33:02
需求就是我需要对bootloader 进行升级,为了程序能正常运行,需要先将bootloader 代码搬到RAM 运行,然后擦掉位于flash 0x8000000地址的bootloader 区,再写入待升级的程序。就是不知道怎么将STM32芯片 bootloader 搬到RAM, 请大神指导下。或者有其他大神的博客推荐下,谢谢
goyhuan 回答时间:2021-6-10 07:55:48
你的RAM够大吗?bootloader占用多少空间?这样做风险极大,容易变砖
butterflyspring 回答时间:2021-6-11 12:23:32
假定bootloader(IAP 官方将用户编写用来升级的程序称作IAP) 能搬到RAM执行,并能擦除所有FLASH并升级,那么说明BOOTLOADER(IAP)是能正常完成升级工作的,意味着没什么问题,不需要把它升级哦。此外IAP是关键程序,通常思路是不能随便更改,需要加写保护,防止运行时被无意改写的哦。

寻梦千寻 回答时间:2021-6-11 16:11:40
现在就是要实现借助RAM 实现bootloader 自升级。flash 大小2M, RAM 1M
yr 回答时间:2021-6-15 10:59:21
在debug程序中,是可以把程序烧到ram中运行的,按照你的说法,我理解是,如果只是把bootloader从flash搬到ram中,假如此时把pc指针指向当前bootloader在ram中的地址, 把中断向量表也设到ram中,好像是可以运行,但是我不确定的是,编译到flash中的代码是否适用于ram中运行?因为有些立即寻址的立即数是根据flash的pc指针算出来的,并不合适在ram中运行的pc指针,这点可能不行,除非是编译另一套专门运行于ram中的代码,搬这套代码运行,可能可行,只是粗浅的见解而已,也没实践过。
废鱼 回答时间:2021-6-15 16:45:37
寻梦千寻 发表于 2021-6-9 09:33
需求就是我需要对bootloader 进行升级,为了程序能正常运行,需要先将bootloader 代码搬到RAM 运行,然后擦 ...

ST的不需要把BOOT程序拷贝到RAM执行,直接操作FLASH即可。
goyhuan 回答时间:2021-7-7 14:54:54
寻梦千寻 发表于 2021-6-30 21:28
我这边实现了。谢谢大家

透露下你是怎么实现的呗
李康1202 回答时间:2021-7-7 15:27:28
大佬是怎么做到的?能做个教程让白嫖一下吗
24Hours 回答时间:2021-10-28 10:34:57
寻梦千寻 发表于 2021-6-30 21:28
我这边实现了。谢谢大家

你好,咱这边怎末实现的,能给个例程吗

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版