前言

在产品开发中都会预留各种各样的程序升级的接口,为了防止程序出问题,可以及时的更新程序,如果设备没有在线升级怎么办。当然可以召回,或者给客户提供程序下载器,让用户自己进行程序升级,而且一个STM32的程序下载器最少也需要30块。通过串口下载应该是最好的方式,一个TTL转USB才几块钱。

实现方式

通过外部按键或者串口指令让程序进入bootloader就可以进行程序下载了,bootloader一直存在,即使升级出问题也可以再次升级。目前已经实现STM32F030C8T6的bootloader,使用Ymodem进行bin文件传输,bootloader支持shell命令行输入。flash占用8K以内,ram占用1.5K

效果展示

ls   指令查看支持的指令
sh >lscola shell commands:
help       - cola shell help.
reboot     - reboot
ls         - ls
download   - downloadsh >

程序下载

引脚定义: PA0 输入,默认下拉。PA9,PA10 串口 TX,RX
工具:secure CRT
1.将PA0接高电平,按下复位键进入bootloader。
2.终端里输入download回车, 然后将要下载的程序bin文件拖入选择send Ymodem,即可下载。

3.下载完成,PA0接低,reboot重启。

用户程序设置偏移

bootloader下载

烧录文件:程序下载
通过jlink将程序下载到0x8000000位置地址。

如有问题欢迎在评论区留言

嵌入式开发|STM32工程中添加Bootloader实现串口程序下载相关推荐

  1. rust做嵌入式开发_Rust 嵌入式开发 STM32 amp; RISC-V

    Rust 嵌入式开发 STM32 & RISC-V 发布于 2020-04-03 11:07:06 本帖最后由 wuhanstudio 于 2020-4-3 11:58 编辑 更新地址: [m ...

  2. 嵌入式开发-STM32硬件SPI驱动TFT屏

    嵌入式开发-STM32硬件SPI驱动TFT屏 这次用到的TFT屏 CubeMX设置 代码编写 增加的内容 需要注意问题 代码下载 这次用到的TFT屏 现在的TFT屏幕已经很便宜了,65536色屏幕,2 ...

  3. 【嵌入式开发-STM32】初识STM32

    [嵌入式开发-STM32]初识STM32 文章目录 [嵌入式开发-STM32]初识STM32 一.什么是STM32 二.STM32的拓展 三.如何确定STM32选型 3.1.STM32的命名方法 3. ...

  4. java工程加包_Java工程中添加依赖jar包不起作用问题总结

    Java工程中添加依赖jar包不起作用问题总结 此次总结两种方式的依赖问题 1 在Eclipse中添加依赖jar包不起作用问题 这种方式可能是Eclipse缓存,或者Eclipse还没有反应过来.例如 ...

  5. ios之Xcode工程中添加文件常用快捷键

    1.Xcode某个工程中添加文件 有两种方式: 方式一:"command"+"n",弹出添加文件对话框. 方式二:在需要添加文件的工程目录下右键,选择" ...

  6. Revit开发 - “附加模块”中添加“外部工具”

    在revit 2017中,点击"附加模块",发现缺少一个"外部工具"这个按钮.本文演示在"附加模块"中添加"外部工具"按 ...

  7. [转载]Java嵌入式开发之一-简介使用Java编写Palm OS程序的解决方案

    Java嵌入式开发之一-简介使用Java编写Palm OS程序的解决方案 现在,使用Java语言为 Palm OS编写程序的领域还没有完全统一,并且也有许多程度上的差异,目前,市面上有好几种不同的可用 ...

  8. 学习笔记三(STM32串口程序下载新建工程模板)

    STM32串口程序下载 STM32F4 的程序下载有多种方法:USB.串口.JTAG.SWD 等,这几种方式,都可以用来给STM32F4下载代码. 利用串口给STM32下载程序 STM32 的串口下载 ...

  9. 分享嵌入式开发使用过程中遇到的几个问题(MQX4.2,IAR,Kinetis K66)

    一段题外话 这几天一直在忙着公司的任务,趁着有机会总结一下最近工作中遇到的一些问题,一来希望给遇到这类问题的童鞋提供一点思路,同时也作为一种记录,提倡互联网的分享精神. 正篇开始 问题1:IAR 编译 ...

  10. 嵌入式开发 | 软件项目中 Debug 和 Release 版本的差异

    关注+星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | strongerHuang 很多集成开发环境(IDE),比如VS(VC).IAR等,在创建工程时都会自动生成有D ...

最新文章

  1. SpringMVC 运行过程
  2. 从eclipse中下载到手机的android程序总是旧的版本
  3. idea 线程内存_Java线程池系列之-Java线程池底层源码分析系列(一)
  4. 乘法器之四( 乘加器(Sum of multiplication))
  5. 扫盲了,RC,RTM,Beta等各个版本的意思
  6. C++ boost共享锁 unique_lock shared_lock
  7. 12.10上海交大PMP试题每日一题
  8. linux hping3命令,Linux中hping3命令起什么作用呢?
  9. 数据分析案例(6)淘宝电商数据客户价值分析
  10. 随着稻香河流继续奔跑 ——致2016
  11. Json.stringify()的用法
  12. Rsoft光波导软件基于七芯光纤波导耦合器模拟
  13. Banner是什么意思,网站banner设计与广告怎么做?
  14. 我也来谈谈《我不是药神》这部电影
  15. 如何在PC上运行Android系统?
  16. 电脑调试UC浏览器,或者本机浏览器
  17. iphone ipad等苹果设备30针数据线接口定义,大家可能有用
  18. 局域网内建立http server
  19. 图灵奖得主Bengio:深度学习不会被取代,我想让AI会推理、计划和想象
  20. 如何修改项目中Git远程仓库地址?

热门文章

  1. java提高篇(二)-----理解java的三大特性之继承
  2. adb工具构成及原理
  3. 听音扒谱app_掌握这些,你也可以轻松扒谱(下)
  4. 【企业架构框架】2022 年 TOGAF 的新发展
  5. JQuery Easyui/TopJUI 创建多级联动下拉框(纯HTML实现!!!)
  6. 当电脑连接网络的地方显示“查找不到任何网络”解决方案
  7. tomcat7安装以及环境变量配置
  8. 监控服务器的日志文件,服务器上监控日志文件
  9. 机器学习数学基础:学习线性代数,千万不要误入歧途!推荐一个正确学习路线
  10. Pycharm汉化后设置无法打开解决办法