stm32 在线升级程序 bost IAP程序 + app程序

这篇具有很好参考价值的文章主要介绍了stm32 在线升级程序 bost IAP程序 + app程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

stm32 在线升级程序 bost IAP程序 + app程序

stm32程序在线升级

机器内 bootloader程序 启动默认程序 默认程序有 串口判断 是否收到 升级命令 收到升级命令后 接受串口发送过来的 更新程序 接受完成后 跳转到新程序位置开始执行

如何实现stm32运行sd卡里的程序?

https://www.zhihu.com/people/lian-zhu-50

首先arm单片机控制程序运行是通过PC指针完成的,PC指到哪里,程序就运行到哪里,当然,这里的“哪里”要求是在内存映射(详见STM32数据手册,内存映射部分)中的,不幸的是,SD的存储区域不在内存映射中。

所以你想从SD中读取程序,并运行,只能先把SD卡中的数据读到内存映射中包含的存储器中,比如ram,flash,fsmc控制的外部存储器等,然后再把PC指针指到程序对应的内存地址中。

具体选择哪种存储器,需要根据你的实际需求决定。可能你也需要使用一个文件系统来整理你的程序文件,这样即使你改变了SD卡中的文件,
你也能让你的单片机程序正确的找到SD卡中的程序文件,而没有文件系统的话,你的程序文件的绝对地址可能会发生改变,这样你的单片机程序就读不到程序文件了。

到此,你可能还不满足,如果你在SD卡中添加一个新的程序文件,可能你的单片机程序并不知道要不要运行这个文件(想想,要在windows中运行一个文件,你要双击它),
所以你需要告诉你的单片机,要运行哪个文件,这需要你有一个输入设备,最简单的就是串口,把你要运行的文件的文件名通过串口发送给单片机,

然后单片机从SD卡中找这个文件,如果找到了,就把它读到内部存储器中,然后运行它,当然,如果找不到,那就是你的问题了。

就是每次更改程序,不用jlink烧写进去,而是使用SD卡存放。

首先呢,SD里面的程序不能直接运行;所以需要STM32里面有一个加载程序,一般称之为loader;

loader检测到SD里面有程序或者程序更新了,就需要把SD里面的程序复制到STM32内部的,RAM或者flash里面;

RAM的话,每次上电都需要复制,flash的话,只有更新了STM32里面的程序才需要复制;复制完成后,从loader跳转到你的主程序(即你SD里面复制过来的程序);

这里面,还有很多细节问题需要注意,主要是链接地址和分配,跳转前后的准备和检查

简单方式:写个bootload上电读取sd卡放到ram或flash中,跳转执行。

复杂方式:自己做个任务调度系统,访问sd卡中任务文件,进行任务执行。

复杂方式包括单片机系统,编译器。用这个学习,我觉得是个好想法。

实际做项目有点不实用,因为单片机项目主要是每个项目的硬件不同,而不是只要修改软件应用就行的。文章来源地址https://www.toymoban.com/news/detail-684298.html

到了这里,关于stm32 在线升级程序 bost IAP程序 + app程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32】IAP升级01 bootloader实现以及APP配置(主要)

    通过之前的了解 之前的了解,我们知道实现IAP升级需要两个条件: 1.APP程序必须在 IAP 程序之后的某个偏移量为 x 的地址开始; 2.APP程序的中断向量表相应的移动,移动的偏移量为 x; 默认条件下的起始地址 默认的条件下,图中 IROM1 的起始地址(Start)一般为 0x08000000,大小

    2024年02月03日
    浏览(34)
  • STM32 IAP应用开发--bootloader升级程序

    原文链接:https://blog.csdn.net/ShenZhen_zixian/article/details/129424077 什么是IAP? IAP(In-Application Programming) 指MCU可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。在应用编程(IAP)是用户的应用代码对片内Flash存储器进行擦除/编程的方法。这种方式的典型应用就

    2024年01月17日
    浏览(67)
  • STM32F407串口IAP远程升级程序

    相关代码和工程文件链接:https://pan.baidu.com/s/1wN4THWJwqzjjIe7e2TENBA?pwd=o86o 提取码:o86o         STM32代码烧录主要有三种:ICP、ISP、IAP。         ICP(In Circuit Programing),在电路编程,通过JTAG或者SWD接口进行程序的烧录,就是平时利用ST-Link或者J-Link烧录程序;       

    2024年02月10日
    浏览(89)
  • 使用STM32F103的串口实现IAP程序升级功能

    🎬IAP程序烧录全过程演示: ✨这几天折腾IAP升级功能,狂补了很多相关BootLoader相关的知识。本来最想实现IAP升级程序的方式是,基于SPI通讯的SD卡,借助挂载的FatFS文件系统,来实现对目标stm32芯片的自身程序的升级,奈何没有实现,只能求其次,先来通过官方现有的串口实

    2024年02月10日
    浏览(46)
  • 2-远程升级篇(自建物联网平台)-STM32通过EC800使用http或https下载程序文件升级程序(APP通过MQTT控制单片机更新)

    1,用户在APP上点击 \\\"固件升级\\\" 按钮, APP使用MQTT发送:  {\\\"data\\\":\\\"updata\\\",\\\"cmd\\\":\\\"DeviceInfo\\\"} //询问设备固件信息 2,设备通过MQTT收到该消息以后,发送 {\\\"data\\\":\\\"updata\\\",\\\"cmd\\\":\\\"DeviceInfo\\\",\\\"DeviceModel\\\":\\\"STM32EC800BKAPP\\\",\\\"FirmwareVersion\\\":\\\"0.0.0\\\"} (STM32EC800BKAPP是设备的型号;  0.0.0是设备当前的固件版本) 3,APP收到

    2024年04月16日
    浏览(134)
  • STM32/GD32 BootLoader升级 IAP升级

    如果我们的App 程序起始地址在0x08006000 ,并且App 的中断向量表在起始地址,那么BootLoader 程序下载App 后,为了App 程序能正确运行,开始App 程序的运行后第一步,就要把中断向量表重定位到0x08006000 那里。 我们的BootLoader下载App程序后,App程序就需要做同样的事情。主要有三个

    2024年02月11日
    浏览(46)
  • STM32实战之IAP代码升级

    目录 1 IAP介绍   2 内存分区 3 整体设计流程图 4 Boot Loader的代码编写 5 APP1代码编写 6 APP2代码编写 stm32内部flash操作相关函数 IAP(In Application Programming)即在应用编程, IAP 是用户自己的程序在运行过程中对User Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通

    2024年02月01日
    浏览(27)
  • STM32F0实现IAP升级固件

    好几年前写过一篇关于 STM32 bootloader 升级固件的博客,但是使用的芯片是 STM32 F4 系列,升级固件的方式是在外部 flash 的 fat32 文件系统中存入固件文件,reset 后通过特定按键进入 IAP 程序。 最近需要在 STM32 上实现同样的 IAP 功能,但是方式不太一样,也发现一些芯片的差别,

    2024年02月14日
    浏览(36)
  • 在线升级:OTA升级的原理和实现方式

    目录 1、OTA 在线升级 2、实现方式 3、操作方式 3.1、后台式升级 3.2、非后台式式更新 4、STM32 的在线升级 4.1、划分 Flash 区域 4.2、实操1 - Flash空间地址的划分 4.3、实操2 - 设置工程 4.4、实操3 - 接收固件更新包 4.5、实操4 - 拷贝程序至Flash 4.6、实操5 - 跳转至 App 应用程序 4.7、特

    2024年02月01日
    浏览(39)
  • STM32 10个工程篇:1.IAP远程升级(五)

            伴随着催更不断,周日晚上来继续撰写STM32 IAP远程升级的项目例程,在这篇博客中笔者主要结合上位机报文发送机制来介绍下位机的报文解析设计,坚持做原创博客确实是一件很考验耐力的事情,一方面博客的文字和图片需要投入大量精力和时间,另一方面想要把意

    2024年02月13日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包