搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
不正经
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Sora 究竟有多烧钱?Sora的推理与训练的计算成本被扒出来了
2
分享一个解决的bug:训练Rasa的时候出现“Error running graph component for node train_DIETClassifier4”_rasa.engine.exceptions.graphcomponentexception: er
3
打破工作“二八法则” UniPro用AI提升工作效率_研发二八定律
4
鸿蒙初体验_鸿蒙4.0 设备安装路径要和项目路径一致么
5
从政府工作报告中的IT热词统计探计算机行业发展(三)智能网联新能源汽车:2次
6
第六章:计算机视觉大模型实战6.2 目标检测与识别6.2.3 实战案例与技术进阶_大模型目标检测
7
Qt 学习资料整合_qt资料
8
全网最通俗易懂的 Self-Attention自注意力机制 讲解_self attention机制
9
python层次聚类选择类别_不写代码,教你用聚类算法,刻画一个升级版的RFM模型......
10
合格的程序员之GitHub_where the world builds software
当前位置:
article
> 正文
单片机中的ROM,RAM和FLASH的作用_内部程序处理器rom作用
作者:不正经 | 2024-03-28 20:51:02
赞
踩
内部程序处理器rom作用
ROM——作用存放指令代码和一些固定数值(掉电后数据存在)
程序经过编译、汇编、链接后,生成hex文件;
用专用的烧录软件,通过烧录器将hex文件烧录到ROM中
这个时候的ROM中,包含所有的程序内容:一行一行的程序代码、函数中用到的局部变量、头文件中所声明的全局变量,const声明的只读常量等,都被生成了二进制数据。
RAM——程序运行中数据的随机存取(掉电后数据消失)
整个程序中,所用到的需要被改写的量,都存储在RAM中,“被改变的量”包括全局变量、局部变量、堆栈段。
FLASH——存储用户程序和需要永久保存的数据。
例如:现在家用的电子式电度表,它的内核是一款单片机,该单片机的程序就是存放在ROM里的。电度表在工作过程中,是要运算数据的,要采集电压和电流,并根据电压和电流计算出电度来。电压和电流时一个适时的数据,用户不关心,它只是用来计算电度用,计算完后该次采集的数据就用完了,然后再采集下一次,因此这些值就没必要永久存储,就把它放在RAM里边。然而计算完的电度,是需要永久保存的,单片机会定时或者在停电的瞬间将电度数存入到FLASH里。
ROM中包含所有的程序内容,在MCU上电时,CPU开始从第1行代码处执行指令。这里所做的工作是为整个程序的顺利运行做好准备,或者说是对RAM的初始化(注:ROM是只读不写的),工作任务有几项:
为全局变量分配地址空间---如果全局变量已赋初值,则将初始值从ROM中拷贝到RAM中,如果没有赋初值,则这个全局变量所对应的地址下的初值为0或者是不确定的。当然,如果已经指定了变量的地址空间,则直接定位到对应的地址就行,那么这里分配地址及定位地址的任务由“连接器”完成。
设置堆栈段的长度及地址---用C语言开发的单片机程序里面,普遍都没有涉及到堆栈段长度的设置,但这不意味着不用设置。堆栈段主要是用来在中断处理时起“保存现场”及“现场还原”的作用,其重要性不言而喻。而这么重要的内容,也包含在了编译器预设的内容里面,确实省事,可并不一定省心。
分配数据段data,常量段const,代码段code的起始地址——代码段与常量段的地址可以不管,它们都是固定在ROM里面的,无论它们怎么排列,都不会对程序产生影响。但是数据段的地址就必须得关心。数据段的数据时要从ROM拷贝到RAM中去的,而在RAM中,既有数据段data,也有堆栈段stack,还有通用的工作寄存器组。通常,工作寄存器组的地址是固定的,这就要求在绝对定址数据段时,不能使数据段覆盖所有的工作寄存器组的地址。必须引起严重关注。
注:普通的MCU是在上电时或复位时,PC指针里面的存放的是“0000”,表示CPU从ROM的0000地址开始执行指令,在该地址处放一条跳转指令,使程序跳转到_main函数中,然后根据不同的指令,一条一条的执行,当中断发生时,按照系统分配的中断向量表地址,在中断向量里面,放置一条跳转到中断服务程序的指令,如此,整个程序就跑起来了。决定CPU这样做,是这种ROM结构所造成的。过程中中C语言编译器作了很多的工作,可仔细阅读编译器自带的help文件进行学习。
I/O口寄存器:也是可以被改变的量,它被安排在一个特别的RAM地址,为系统所访问,而不能将其他变量定义在这些位置。
中断向量表:中断向量表是被固定在MCU内部的ROM地址中,不同的地址对应不同的中断。每次中断产生时,直接调用对应的中断服务子程序,将程序的入口地址放在中断向量表中。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/不正经/article/detail/331306
推荐阅读
article
使用
fastboot
命令
刷机
流程详解_
fastboot
flash
...
首先需要准备好
刷机
包,可以是自己编译的,也可以是从别处拷贝的,但一定要确保
刷机
包适用于你的 Android 设备。然后解...
赞
踩
article
fastboot
烧机命令_
fastboot
flash
modem
...
fastboot
烧机命令_
fastboot
flash
modem
fastboot
flash
modem
...
赞
踩
article
FastBoot
刷机
方法_fast
boot
flash
boot
...
极力推荐Android 开发大总结文章:欢迎收藏程序员Android 力荐 ,Android 开发者需要的必备技能 本篇...
赞
踩
article
fast
boot
刷
boot
命令_fast
boot
flash
boot
...
fast
boot
flash
boot
_b //rooted
boot
路径fast
boot
flash
boot
_a /...
赞
踩
article
FLASH
:一种高效
的
Transformer
设计_
flash
transformer
优化平方
复杂度
...
在标准
的
Transformer
结构中,多头注意力和FFN是交替连接
的
。GLU那篇论文中,将FFN替换成基于门控
的
线性单元...
赞
踩
article
【
mac
OS
】重装
mac
系统
手把手教学_usb
flash
install
os
...
写在前面踩了许久的坑,总算成功在MacBook Pro上重装
mac
OS
Big Sur 11.0
系统
,特地记录一下。前...
赞
踩
article
DELL
-
Vostro3559
-MAC装黑苹果_usb.
flash
.
install
.
macos
.hi...
EFI下载链接原版10.13.6安装U盘镜像下载链接文件名:USB_Install macOS High Sierra....
赞
踩
article
技术
复盘
:
Flash
Memory
揭秘(2)...
上一篇我们从NVM 的分类,
Flash
的编程\擦除基本原理做了分析,下一篇我们将继续描述Nor、NAND
Flash
区别,...
赞
踩
article
[转载]理解FPGA中的
RAM
、
ROM
和CAM;
ROM
、
RAM
、D
RAM
、S
RAM
、
FLASH
...
来源1:http://blog.ednchina.com/gujunyi6688/1394108/message.asp...
赞
踩
article
在
嵌入式
系统中,
Flash
、
RAM
、
ROM
有什么区别_ram
flash
...
ROM
存储器是只读存储器,它的内容在出厂时就已经被编程,不可修改。
ROM
的主要优点是读写速度快、容量大、可靠性高,但不支...
赞
踩
article
一张图看懂内存(
RAM
,
ROM
,
FLASH
)及辅助内存之间
的
关系
_
flash
和rom
的
关系
...
摘要:一张图描述内存主存储器及外存辅助存储器
的
分类_
flash
和rom
的
关系
flash
和rom
的
关系
...
赞
踩
article
Flash
|
RAM
|
S
RAM
| D
RAM
_flash和ram...
Flash
与
RAM
的区别_flash和ramflash和ram ...
赞
踩
article
FLASH
、
RAM
、
RO
M
的区别及Code,
RO
-
data
, RW-
data
, ZI-
data
的...
学了那么久的单片机和STM32,也没有了解过
FLASH
、
RAM
、
RO
M
区别。今天在STM32G030F6P6上移植RT-...
赞
踩
article
基础——
ROM
,
RAM
,
FLASH
,
S
SD
,
DDR3
/4,
eMMC
, UFS,
SD
卡, ...
1. 关系
ROM
,
RAM
,
FLASH
闪存,
S
SD
,
DDR3
/4,
eMMC
, UFS,
SD
卡, TF卡, 这几...
赞
踩
相关标签
android
adb
安卓
lg
boot
transformer
深度学习
人工智能
macos
windows
汽车
MCU
Flash
NOR
NAND
嵌入式
操作系统
linux
嵌入式硬件
运维
nosql
数据库
单片机
内存