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

stm32F0串口更新程序

[复制链接]
kklili 发布时间:2014-6-1 13:47
这几天在研究stm32F0的串口更新程序,原来都是用bootloader的,由于M0的内核不支持中断向量跳转,更新程序不能用bootloader, 所以直接采用了Flash更新的流程& e) ~' t% I1 L$ ]7 ?1 \
1. 把更新程序拷贝到Flash的固定地址,最后一页.
1 P$ ^% F, D4 L/ X- w- Q2. 待更新的时候直接跳转到固定地址开始擦除前面的程序并接收串口程序进行更新.
" c3 |) v! B  \" q* e- C7 F  Y需要注意以下几点:) y3 e1 h: d, ~$ m; A
1.函数的地址直接取值的时候是奇数地址,需要手动减一,跳转的时候需要加一.) _0 l7 ~0 B' `1 q; `4 F% L
2.跳转函数前要关中断.! O' H; _+ ~. M$ {; M# z# g
3.在更新函数中不要调用其他函数.
: ?) ~8 A, g7 @; h- e7 [5 y更新协议如下:6 t9 c1 d8 U8 f" E7 Z2 `6 Y
1. 启动更新 : 上位机向设备发送 0xAA 0xBB 0xCC 0xDD 0xEE 0xFF+ n& C/ \8 {, s
2. 设备回应 : 设备收到发送0xAA, 改变到快速波特率,关中断,进入Flash中的更新程序,擦除原程序Flash后,发送0xBB
/ B! [5 X5 W* L& ]- a$ h4 @7 ~3. 开始更新 : 设备收到0xAA后改变到快速波特率
. p0 D3 ?6 _9 G8 A4. 发送数据 : 设备收到0xBB后发送128个字节(长度可设定).
) b, O9 ]' ^3 D3 n. Q5. 写Flash : 设备收到128个字节后发送0xBB.) ?- h" u# V. M+ t- I
6. 更新结束 : 循环4,5两步直到程序发送完成(最后一包不足128个字节时也发送128个字节,后面用0xFF填充).2 R: D6 d9 W! P" w6 \: W( a0 _
 0 m: {7 A3 `* `, d
附件是更新的例程和对应的上位机软件, 在上位机选定编译出的新的bin文件即可更新.

delphi_串口更新程序.zip

下载

230.79 KB, 下载次数: 34

update.zip

下载

896.29 KB, 下载次数: 43

收藏 评论0 发布时间:2014-6-1 13:47

举报

0个回答

所属标签

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