单片机内存(ram)、flash、与数据存储和启动过程说明

发布者:电子设计探索者最新更新时间:2021-07-02 来源: eefocus关键字:单片机  内存  ram  flash  数据存储  启动过程 手机看文章 扫描二维码
随时随地手机看文章

1 电脑程序运行过程与单片机的区别

由于电脑中的程序是存储在磁盘中的,而磁盘的读取速度非常慢,因此我们不可能从磁盘中直接读取当前要执行的代码,这样必然导致程序阻塞。好在,电脑的内存非常大,所以在程序执行之前,先把整个代码copy到内存中,然后CPU从内存中读取一条条指令,并运行。


为了合理利用和规划内存资源,除了操作系统的内存管理外,最重要的是内存的分段。对每一个进程,操作系统都会为其分配一片内存,同时将其分段为代码段、数据段、堆栈段等等,不同的段具有不同的属性,比如代码段一般是只读的,如下图所示。(参考博客:https://blog.csdn.net/iostream1001001/article/details/77112455)
在这里插入图片描述
单片机首先没有磁盘,其次内存非常小,显然这种方式运行程序是不可能的。但好的一点是,单片机的代码是保存在flash中,相当于电脑的固态硬盘或ROM,CPU读取flash的速度虽然慢于内存,但依然是非常快的。因此我们不需要将代码搬移到内存中,直接从flash中读取就行了。


因此单片机的程序执行过程是,根据flash中的代码为函数分配堆栈和静态存储区,然后CPU读取flash中的指令,并读写内存中的数


关键字:单片机  内存  ram  flash  数据存储  启动过程 引用地址:单片机内存(ram)、flash、与数据存储和启动过程说明

上一篇:STC15单片机驱动WS2812B七彩LED(汇编混合编程)
下一篇:分享一个STM8的ADC接口

推荐阅读最新更新时间:2024-11-12 12:30

C51编译器的数据存储格式及编程技巧分享
Data Storage Formats数据存储格式 这一部说明可用的数据类型的存储格式。Cx51提供了几种数据存储格式如下: Data Type Bits Bytes Value Range bit 1 — 0 to 1 signed char 8 1 -128 to +127 unsigned char 8 1 0 to 255 enum 8 / 16 1 or 2 -128 to +127 or -32768 to +32767 signed short 16 2 -32768 to +32767 unsigned short 16 2 0 to 65535 signed int 16 2 -32768 to +3276
[单片机]
C51编译器的<font color='red'>数据存储</font>格式及编程技巧分享
P87LPC767单片机设计剩余电流保护器EMC设计
EMC 是指设备或系统在其电磁环境中能工作且不对该环境中任何物体构成不能承受的电磁骚扰的能力。剩余电流保护器作为电网末端供电线路保护装置(400V以下),必须满足。 EMC 国家标准GB/T17626.5—1999要求,取得3C认证,才能投入电网运行。图1为用P87LPC767单片机设计的智能型剩余电流保护器系统框图,在电路设计、软件设计、PCB板设计等方面同步考虑其EMC设计。剩余电流保护器是一种低压电器设备,内部没有大功率的高频电路,电磁辐射微弱,它产生的电磁骚扰对其他设备影响很小,这方面不是EMC设计的重点。剩余电流保护器 EMC 设计的重点是其在受到其他设备产生的电磁干扰时能保持稳定工作的能力,也即抗干扰能力。剩余电流 保
[电源管理]
P87LPC767<font color='red'>单片机</font>设计剩余电流保护器EMC设计
AVR单片机语音识别电路模块设计
  基于AVR单片机的语音识别系统设计,系统以 AVR 单片机为控制核心,实现对人的语音的识别控制。系统采用的主控芯片为Atreel公司的ATMEGAl28,语音识别功能采用 ICR  oute公司的单芯片LD3320。LD3320内部集成语音识别算法,无需外部 FLASH , RAM 资源,可以很好地完成非特定人的语音识别任务。同时该芯片内部集成了MP3播放功能,支持MPEG等格式,可实现语音提示或 MP3 歌曲的播放功能。由于内部含有16位A/D、D/A转换器和功放电路,所以不需要外接功放电路就可以产生清晰的声音。该系统已经预留好各种接口,具有良好的扩展性。    控制器电路   控制器选用Atmel公司生产的ATMEGA1
[电源管理]
AVR<font color='red'>单片机</font>语音识别电路模块设计
stm32 移植cJson 注意free释放内存
关于怎么移植的网上有很多参考文档,也很简单,因为cjson只有2个文件,一个cJSON.c 一个cJSON.h文件。 我用的是原子的stm32 工程文件 测试 ,他们有自己定义的malloc.c malloc.h,很方便可以直接用。 需要修改的就是下面:把原本的json malloc 和free替换成我们自己的,如下代码 static void *(*cJSON_malloc)(size_t sz) = malloc; static void (*cJSON_free)(void *ptr) = free;---------------------------------------- void *(*cJSON_m
[单片机]
stm32 移植cJson 注意free释放<font color='red'>内存</font>
PIC单片机进行AD转换的设计
AD转换 我们先看看R1和R2,R2是个可调电阻如果我们将R2变大RA1这个管脚上的电压就越大。R2变小RA1这个管脚上的电压就越小。那单片机是怎么知道电压变化的。这就需要AD转换。就是将模拟量转换成数字量。 PIC单片机如何表示电压 PIC用十位二进制位的数来表示电压,也就是数值0~1023来表示电压。那比如现在这个数值是400那这代表多少的电压?这就要根据参考电压来确定了。 比如我们设置正参考电压为3.3V ,当输入的电压为0时,数值就为0。当输入的电压为3.3V时,数值就是1023. 那如果输入的电压是1.2V代表多少电压。 首先,先算出一个数值代表多少的电压 3.3V除以1023 约等于 0.003V 。
[单片机]
PIC<font color='red'>单片机</font>进行AD转换的设计
NAND Flash报价 短线喊涨
    SK海力士无锡厂月初火灾,已规划将韩国厂NAND Flash产能移转,NAND Flash最新报价应声而涨;研调机构集邦科技指出,SK海力士韩国厂Flash产能全球市占率仅2%,顶多纾解供过于求的市况,不至于造成明显缺货。 NAND Flash控制芯片厂群联(8299)董事长潘健成表示,原本预期第4季NAND Flash需求较疲软,海力士大火后可能转为持平,「价格可能小涨,但没有大涨机会」。 集邦科技评估,SK海力士的Flash产能全球市占约11%,其中韩国厂约占五分之一,所以等于最多移转约全球2% Flash产能去填补DRAM产能。现货市场对于移转产能的反应较大,但长期不太有影响。 SK海力士无锡厂于9月4日火灾后,标准型
[手机便携]
什么是单片机AD的精度
定义:AD精度 AD精度指的是AD实际转换的结果和理想的计算结果之间的误差,也叫做积分非线性误差,符号是(INL) 单位是LSB LSB=基准/2^AD位数 例如3V的基准 12位AD 那LSB=3/4096 一般芯片的数据手册上都有写明,例如 这个手册写的典型值就是正负4个LSB,这就是衡量AD误差的一个标准 上述有些词或者某些描述或许不当,但我能确定的就是了LSB就是衡量一个AD误差最重要指标,若有不当之处还请各位路过高手指出。。。
[单片机]
什么是<font color='red'>单片机</font>AD的精度
如何通过GD32 MCU内部ADC参考电压通道提高采样精度?
ADC采样精度受很多因素影响,比如电源波动、参考电压波动、输入信号波动等,GD32 MCU内部提供了一个参考电压通道,理论上可以优化由于电源和参考电压较大波动引入的采样误差。 如下图所示,GD32F303 ADC内部17通道为VREFINT参考电压通道,内部参考电压的典型数值为1.2V。 当外部参考电压波动较大的情况下,如何通过内部参考电压通道提高ADC采样精度呢? 比如我们采样ADC_IN0通道的电压VIN0,那么采样的数值为: $$Rin0=(VIN0/VREF)*4096.----公式1$$ 其中,Rin0为通道0的采样数值,VIN0为通道0的输入电压,VREF为参考电压。 采样完通道0后,我们可以立即采样VREFIN
[单片机]
如何通过GD32 <font color='red'>MCU</font>内部ADC参考电压通道提高采样精度?
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved