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

STM32用串口下载程序的原理是什么?自己能写一个下载软件...

[复制链接]
冯兆亮 提问时间:2018-1-26 09:14 /
STM32用串口下载程序的原理是什么?自己能写一个下载软件吗?像官方提供的Flash Loader Demo软件一样,连接串口,然后下载程序?
收藏 评论14 发布时间:2018-1-26 09:14

举报

14个回答
Inc_brza 回答时间:2018-1-26 09:32:06
肯定是可以的,君不见已经有人写过了?原子提供的flymcu,sscom这些都有吧。
如果没资料,楼主可以用逻辑分析仪吧下载的过成给抓出来分析,毕竟这个过程
是透明的。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

废鱼 回答时间:2018-1-26 09:41:44
有标准协议,在Flash Loader Demo\doc下面,UM0516.pdf

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

随风飘扬 回答时间:2018-1-26 10:01:23
原理就是Flash的可读写,烧录程序就是将二进制文件写入单片机中指定地址的Flash中。
你可以设置单片机boot引脚,利用已经固化在系统存储区中的程序进行更新,这样只需要自己写上位机就可以了,但要先搞清楚通信协议是怎样的。
你也可以自己编写一个单片机端的IAP程序,制定自己的通信协议,在编写上位机程序来更新,这样灵活性更大一些,不用设置boot引脚。

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

冯兆亮 回答时间:2018-1-26 10:23:52
Inc_brza 发表于 2018-1-26 09:32
肯定是可以的,君不见已经有人写过了?原子提供的flymcu,sscom这些都有吧。
如果没资料,楼主可以用逻辑分 ...

感谢回复!
冯兆亮 回答时间:2018-1-26 10:26:10
安 发表于 2018-1-26 09:41
有标准协议,在Flash Loader Demo\doc下面,UM0516.pdf

感谢回复!已经找到,我会仔细阅读的。
冯兆亮 回答时间:2018-1-26 10:28:22
安 发表于 2018-1-26 09:41
有标准协议,在Flash Loader Demo\doc下面,UM0516.pdf

对了,ST在芯片内部ROM区域出厂固化的那段程序是支持接收上位机的命令的,但绝对没法改变已经固化程序,是吧?
冯兆亮 回答时间:2018-1-26 10:30:45
yu0405jie 发表于 2018-1-26 10:01
原理就是Flash的可读写,烧录程序就是将二进制文件写入单片机中指定地址的Flash中。
你可以设置单片机boot ...

感谢回复!能详细说说编写单片机端的IAP程序吗?你所说的这个编写的IAP程序能将芯片出厂的固化程序修改掉吗?又为什么不用设置Boot脚呢?
hello_bug 回答时间:2018-1-26 10:46:06
学习了,试试自己弄个下载软件,编个上位机。
废鱼 回答时间:2018-1-26 14:19:17
无法更改芯片中的固件,可以自己写一个程序实现串口或者其他方式进行程序烧写,这个类似IAP,第一次需要手动烧写。
随风飘扬 回答时间:2018-1-26 14:25:17
liangliangwa 发表于 2018-1-26 10:30
感谢回复!能详细说说编写单片机端的IAP程序吗?你所说的这个编写的IAP程序能将芯片出厂的固化程序修改掉 ...

单片机内部Flash可以分为两部分,System Flash 和 User Flash, 单片机上电之后执行哪个Flash中的程序由boot引脚控制。User是你可以使用的Flash,自己编写的代码都被烧录在User Flash中了,单片机在正常工作下也是运行在User Flash中。System内有自举程序代码,用于更新User Flash中你自己编写的程序,它由ST在芯片生产期间编程,你是没有办法改变的。
自己编写IAP的意思就是你再将User Flash 分为两部分使用,一部分存放IAP程序,另一部分存放Application程序,关于IAP的编写,论坛里资料太多了,你搜一下吧。
冯兆亮 回答时间:2018-1-26 14:44:27
yu0405jie 发表于 2018-1-26 14:25
单片机内部Flash可以分为两部分,System Flash 和 User Flash, 单片机上电之后执行哪个Flash中的程序由b ...

感谢回复!就算我自己写个上位机串口烧写工具,然后Boot0拉高,烧写代码时候交互的还是System Flash来写User Flash,我无法改变原来ST固化的BootLoader,就只能把User Flash分成两部分了。
冯兆亮 回答时间:2018-1-26 14:46:26
安 发表于 2018-1-26 14:19
无法更改芯片中的固件,可以自己写一个程序实现串口或者其他方式进行程序烧写,这个类似IAP,第一次需要手 ...

感谢回复!就是我自己可以写上位机串口烧写工具,也可以在Flash区域自己写个BootLoader,但ST固化的串口烧写时候的交互代码,我是没有办法擦除重写的?
废鱼 回答时间:2018-1-26 14:56:15
办法肯定有,量大的可以直接在订购芯片的时候,厂家给一次性刷好。具体后期的修改,没有做过类似的操作。
冯兆亮 回答时间:2018-1-26 16:01:34
安 发表于 2018-1-26 14:56
办法肯定有,量大的可以直接在订购芯片的时候,厂家给一次性刷好。具体后期的修改,没有做过类似的操作。 ...

感谢回复!我再找找办法~~~~

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版