单片机可以从Flash中直接运行代码的原理
2023-08-06 10:37:12来源:面包芯语
扫描关注一起学嵌入式,一起学习,一起成长
本期话题
聊一聊
关于单片机程序的存储和执行,之前有文章介绍过,可参考 STM32单片机程序的存储和执行。这篇文章侧重点在程序存储和程序加载的基本过程。
(资料图片仅供参考)
对于PC来说,可执行文件存储在磁盘上,当执行的时候,将文件内容(代码和数据)加载到内存中去执行。
而对于单片机来说,程序文件存在ROM中,执行的时候,指令代码不用加载到RAM即可执行。
MCU 内部的 Flash 是可以直接运行代码的,也就是说,可执行文件的 Code 和 RO Data不会被加载到 RAM中。
本文来介绍一下,单片机为什么可以直接运行代码,以及相关的技术原理。
这其中的关键技术为 XIP。那什么是 XIP 呢?
XIP 全称为 eXecute In Place,即芯片内执行,是指 CPU 直接从存储器中读取程序代码执行,而不用再读到内存中。
应用程序可以直接在 flash 闪存内运行,不必再把代码读到系统 RAM 中。flash内执行是指 nor flash 不需要初始化,可以直接在flash内执行代码。
但往往只执行部分代码,好处即是程序代码无需占用内存,减少内存的要求。
所谓片内执行不是说程序在存储器内执行,CPU 的基本功能是取指、译码、运行。
Nor Flash 能在芯片内执行,指的是CPU 能够直接从 Nor flash 中取指令,供后面的译码器和执行器来使用。
为实现就地执行,必须满足几个条件:
存储器必须提供与内存相似的接口给CPU。
该接口必须提供足够快的读取操作,并具有随机访问模式。
如有文件系统,则需要提供合适的映射功能。
程序链接时需要知道存储器的地址或地址与位置无关。
程序不能修改已加载映像中的数据。
NOR Flash 和 EEPROM通常能满足上述要求。
NOR flash 之所以可以片内执行,就是因为他符合 CPU 取指令译码执行的要求。
CPU 送一个地址出来,NOR Flash 就能给一个数据让 CPU 执行,中间不需要额外的处理操作。
对于 Cortex-M3 内核的单片机来说,其内部 Flash 连接到 AHB 总线上。
闪存的指令和数据访问是通过 AHB 总线完成的。单片机的预取模块是用于通过 ICode 总线读取指令的。
通过ICode总线,CPU从片内Flash直接读取指令。为了提高提高程序的执行速度,有的单片机会提供指令预取缓冲区。先将指令读取到预取缓冲区中。
对于STM32单片机来说,预取缓冲区有 2 个,每个缓冲区大小为 64位。在每一次复位以后被自动打开。
由于预取缓冲区的存在, CPU可以工作在更高的主频。CPU每次取指最多为32位的字,取一条指令时,下一条指令已经在缓冲区中等待。这样提高了CPU获取指令的效率和执行指令的速度。
对于51单片机来说,不存在指令预取缓冲区,通过XIP技术,从Flash中读取指令后,接着进行译码、运行。
补充
嵌入式系统中代码的执行方式主要有 3 种:
完全映射:嵌入式系统程序运行时,将所有代码从非易失存储器(Flash、ROM等)复制到RAM中运行。
按需分页:只复制部分代码到RAM中,这种方法对RAM中的页进行导入/导出管理,如果访问位于虚存中但不在物理RAM中会产生页错位,这时才将代码和数据映射到RAM中。
XIP:在系统启动时,不将代码复制到RAM,而是直接在非易失性存储位置执行,RAM中只存放需要不断变化的数据部分。
好了,关于程序的执行,欢迎一起探讨。
感谢阅读,加油~
觉得文章不错,点击“分享”、“赞”、“在看” 呗!
责任编辑:hnmd003
相关阅读
相关阅读
-
单片机可以从Flash中直接运行代码的原理
扫描关注一起学嵌入式,一起学习,一起成长【一分钟聊嵌入式】,力求精
-
新赛道上的奔跑 中国电车“成长记”
今年上半年,我国汽车零售市场每卖出四辆汽车,就有一辆是新能源汽车。
-
应用管控中心全新升级,华为发布 HarmonyOS 4 隐私安全新功能
8月4日,HarmonyOS4在华为开发者大会2023(HDC Together)上正式发布。
-
市场空间巨大但赔付高企 新能源车险“基因”变了
2023年以来,新能源车进一步走进大众的日常生活。数据显示,今年6月,
-
新一代“富人快乐面”,困守互联网
图片来源@视觉中国文|摩登消费,作者|冯羽,编辑|蛋总若论起新一代的富
-
张勇发起了一次奇袭
AI浪潮之下,入局者越来越多,雨后春笋般冒出的大模型不再神秘,大厂们
-
Twitch 网红在纽约广场发放免费游戏机引发骚乱,被警方拘留
IT之家8月6日消息,周五下午,一名在Twitch平台上以直播视频游戏而闻名
-
新一代“富人快乐面”,困守互联网
图片来源@视觉中国文|摩登消费,作者|冯羽,编辑|蛋总若论起新一代的富
-
县二中的孩子:不会“做题”,只能被剩下?
县中里的学生过着截然不同的生活,时间被拉长,变得很缓慢,每个时间段
-
王石:中国房地产处于调整期间,相信政策出台可以克服挑战
对于当下房地产市场是否已经处在拐点,王石提到,中国房地产目前处于调
-
苹果一夜蒸发 1 万亿!库克安抚股东:新品很震撼
当地时间8月3日美股盘后,市值站稳3万亿美元的全球最大上市公司、消费
-
太突然!价格暴涨 200%
十一国庆长假出境去哪玩?现在买机票价格如何?虽然暑假才过一半不少人
-
从源头提升保障房品质
从源头提升保障房品质北京市住建委联合北京市规划和自然资源委员会近日
-
国家减灾委、应急管理部启动国家救灾应急响应,指导吉林做好救灾工作
央视网消息:8月6日,据应急管理部网站,8月5日,国家减灾委、应急管理
-
爱享无忧是重疾险吗?保障内容有哪些?
是的。 爱享无忧是一款重疾险,它的承保公司是复兴保德信人寿,这家保
-
中南大学学生医疗保险可靠吗?保障什么?
总体来说靠谱。 在校学生居民基本医疗保险是中国政府为全日制普通高等
-
意外伤害保险是什么意思?值得购买吗?
意外伤害保险是一种保险产品,旨在为投保人在意外事故导致伤残或身故时
-
柳林:杨月祥 燕明星调研乡村旅游示范村建设情况
8月2日,县委书记杨月祥,县委副书记、县长燕明星深入柳林县王家沟乡、
-
坐飞机有没有必要买航空意外险?买航空意外险有用吗?
有必要。首先,我们来看一下坐飞机有没有必要购买航空意外险。坐飞机本
-
少儿超能宝是什么险种?返还吗?
少儿超能宝是一款专为未成年人设计的保险产品,旨在给孩子们提供全面的
-
8月新一轮降价潮开始!最高优惠3万元 长城欧拉宣布降价
8月新一轮降价潮开始!最高优惠3万元长城欧拉宣布降价8月新一轮降价潮
-
山东平原县地震造成126处房屋倒塌 21人受伤
截至8月6日7时,震区共有126处房屋倒塌、21人受伤(德州20人,聊城1人)。
-
iPhone 15 Pro 系列屏幕黑边大对比:较 iPhone X 缩小了 30%
IT之家8月5日消息,苹果将在今年发布iPhone15系列机型,其中iPhone15Pr
-
Zoom 的双重标准:一边宣传灵活工作,一边要求员工回到办公室
IT之家8月6日消息,Zoom是一家提供视频会议服务的公司,在疫情期间受到
-
X 平台再次出手,强行夺走用户运营 16 年的 @music 账号
IT之家8月6日消息,X平台(前身为Twitter)近日再次引发争议,该平台在
-
华为 Mate 30 5G 版机型获推鸿蒙 HarmonyOS 4.0.0.108 系统更新
IT之家8月6日消息,有参与报名华为升级尝鲜的IT之家网友反馈,华为Mate
-
宝能汽车欠薪的第 490 天
本文作者:杨羽,编辑:王芳洁,题图来自:视觉中国7月31日上午9点,深
-
西藏日喀则:以“谐”之名,他们在高原起舞
4日,位于西藏日喀则市拉孜县的堆谐人民广场热闹非凡,数千名本地群众
-
西藏旅游文创首建行业协会 “组合拳”力推行业高质量发展
为进一步规范西藏旅游文创商品行业,8月4日下午,西藏旅游文创商品协会
-
西藏开展乃普石窟考古调查 发现窟顶龙凤纹样
记者从国家文物局获悉,8月3日,由多家单位组成的联合考古调查队对昌都
精彩推荐
阅读排行
精彩推送
- 西藏民航7月旅客吞吐量创单月历...
- 湖南杀猪菜做法视频(湖南杀猪菜...
- 一级蜜蜡黄玉值钱吗
- 男方生育险多久可以报销下来?怎...
- 宝宝存钱保险可靠吗?能报销吗?
- 特定意外伤害保险是什么意思?怎...
- 孩子生病了学校的保险可以报吗?...
- 学平险包括意外险吗?学平险只保...
- 完成入网就等价格 蔚来NIO Pho...
- “马”趣横生
- 一展尽览动漫魔术魅力
- 守望相助!“顺义力量”驰援房山
- 房山区十霞路、六石路连夜打通生...
- 房山法院干警协助受灾群众恢复正...
- 花近百万装修的房子,被租客擅自...
- 疯狂!网红明星称给粉丝送礼,场...
- 中国第二大普洱茶澜沧古茶,冲刺...
- 几十万一张的黄牛票,到底谁在买 ?
- 职工医疗保险要交多少年才能享受...
- 人身意外险赔付后雇主还赔吗?赔...
- 56岁了还能交社会养老保险吗?要...
- 人寿保险无忧一生重疾保险有什么...
- 太平洋寿险安享百万医疗保险怎么...
- 山东德州市平原县发生5.5级地震...
- 中国国际进口博览会(内蒙古)招...
- G110节点快速化改造冲刺收官
- 包头金街盛大开街
- 蒙商银行·包头半程马拉松7日7时鸣枪
- 交响乐走进图书馆
- 法兰克福总监:穆阿尼转会巴黎是...