nor flash容易损坏_STM32只下载程序到RAM中并运行测试-NO_FLASH

本文介绍了在STM32开发过程中,如何将程序下载到RAM中运行以避免频繁擦写Nor Flash导致损坏。通过修改连接脚本和利用VTOR寄存器设置向量表位置,实现程序在RAM中启动和运行。详细步骤包括向量表和指令段放置在RAM、调整连接脚本、设定VTOR、固定reset_handler函数地址。
摘要由CSDN通过智能技术生成

搞嵌入式的知道,NOR FLASH,可以掉电保存数据,但是反复擦写比较容易坏,在开发阶段必然会不停的烧写和验证,这个过程必不可少,这必然会引入损坏nor flash的风险。其实这也不是不可以规避的风险,比如开发阶段把程序下载到RAM中并运行,就可以规避这个。缺点就是掉电没法保存数据,不过RAM通常会比Nor FLASH 空间小,等程序的验证完了,稍作修改就可以下载到nor flash中了,这样最小次数的烧写到flash 中。

之前写个一篇文章 (STM32 启动代码分析 及stm32 启动代码 实现|C语言 )写道,cortext-m4 的启动过程:

1,在系统reset时会去找异常向量表中前4个字节指向的地址作为栈顶

2,第4-8个字节是reset handler函数的地址,然后PC会load这个地址,并运行。这个reset 向量指向的函数是我们能写代码控制的最开始的位置。 cortext-m4 从向量表中把reset异常的函数地址加载到PC寄存器并运行是纯硬件行为,而且是无法更改的,那么如何做到从RAM运行了,就需要解决:

1,默认的向量表是在Nor Flash最开始的位置,现在就需要修改向量表到RAM中。

2,如何让PC寄存器从RAM中向量表开始加载reset_handler 函数地址。---显然我们是没法用软件控制的,我们的软件的第一行代码都跑不到。

一个个的搞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值