| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> M0+系列 CX32l003单片机BOOT程序与APP程序之间的跳转(IAP相关) -> 正文阅读 |
|
[嵌入式]M0+系列 CX32l003单片机BOOT程序与APP程序之间的跳转(IAP相关) |
? ? ? ? ? boot程序即bootloader引导程序,?是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,以及升级程序,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用系统准备好正确的环境。而这bootloader程序几乎大部分应用在CPU、ARM等芯片上。 ? ? ? ?而对于单片机来说,其boot并不复杂,因为厂家在出厂之前就已经默认了单片机的启动位置。除了具有多种boot启动方式的单片机以外,一般的单片机就只有默认的厂家启动方式。 ? ? ? 提到boot,如果单片机有了一段boot代码(注意这里的boot虽然和LINUX系统下的boot相似,但也有区别,区别就在于存储的位置和启动位置不同,linux芯片的boot存在于外部FLASH等存储芯片,而单片机的boot其实就相当于存储在自身ROM的一段用户代码,通过这段用户代码跳转到另一端用户代码)。那么对于后续单片机的维护那将是非常方便的事。说到这里,就很清晰了 这就涉及到了IAP编程。而如果要实现IAP编程,那么实现单片机程序的跳转就是必须的了。 ? ? ? 要实现程序跳转,如下几步既可以完成。 ? ? ? boot程序设置: ? ? ? 1、添加如下代码
?2、设置 Options Target ? ? ? ?同样的,对于app程序来说,就需要设置其对应的地址即可 ? ? ? ?app程序设置:
注意一点,如果app程序中包含中断的话,那么就需要把中断向量表的偏移与设置的起始地址一致。 以上就是boot程序和app程序的设置方法。 为了形象说明,在boot程序里用串口发送"BOOT",然后跳转到APP程序,app程序发送"APP",然后跳转到boot程序,循环往复 ? 见如下视频展示的效果 app和boot程序跳转 以上就是boot和app程序的互相跳转,实现了跳转,那么对于后续程序的升级和维护(IAP)来说,就相当的方便了。 ?关注公众号“嵌入式软硬件爱好者”? ,发送"跳转",获取boot和app互相跳转源码 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 12:13:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |