1 电脑程序运行过程与单片机的区别
由于电脑中的程序是存储在磁盘中的,而磁盘的读取速度非常慢,因此我们不可能从磁盘中直接读取当前要执行的代码,这样必然导致程序阻塞。好在,电脑的内存非常大,所以在程序执行之前,先把整个代码copy到内存中,然后CPU从内存中读取一条条指令,并运行。
为了合理利用和规划内存资源,除了操作系统的内存管理外,最重要的是内存的分段。对每一个进程,操作系统都会为其分配一片内存,同时将其分段为代码段、数据段、堆栈段等等,不同的段具有不同的属性,比如代码段一般是只读的,如下图所示。(参考博客:https://blog.csdn.net/iostream1001001/article/details/77112455)
单片机首先没有磁盘,其次内存非常小,显然这种方式运行程序是不可能的。但好的一点是,单片机的代码是保存在flash中,相当于电脑的固态硬盘或ROM,CPU读取flash的速度虽然慢于内存,但依然是非常快的。因此我们不需要将代码搬移到内存中,直接从flash中读取就行了。
因此单片机的程序执行过程是,根据flash中的代码为函数分配堆栈和静态存储区,然后CPU读取flash中的指令,并读写内存中的数
上一篇:STC15单片机驱动WS2812B七彩LED(汇编混合编程)
下一篇:分享一个STM8的ADC接口
推荐阅读最新更新时间:2024-11-12 12:30
设计资源 培训 开发板 精华推荐
- LTC1728ES5-3.3 使用与 DC/DC 反馈分压器相连的 VCCA 的电源监视器的典型应用
- AD9238-40PCB,用于评估 AD9238、2 通道、10 位、65 MSPS 模数转换器的评估板
- DC383B,基于 LTC1930ES5/LTC1931ES5 1.2 MHz DC/DC 转换器的演示板
- ADR391B 2.5 Vout 微功率、低噪声精密电压基准的典型应用
- TCR2BF29、200mA、2.9V 输出电压 CMOS 低压降稳压器的典型应用,在 SMV(SOT-25) 中具有自动放电功能
- 基于51单片机的低频功率放大
- RSO-4815DZ ±15V、34mA输出DC/DC转换器典型应用电路
- 使用 ON Semiconductor 的 CS5203A-1 的参考设计
- 使用 NXP Semiconductors 的 TL431AI 的参考设计
- ADR423 超精密、低噪声、3.00 Vout XFET 电压基准作为可编程电流源的典型应用
- 看我72变,倪飞盛赞努比亚X化身各大手机品牌
- 大兴区2018年年底前将建成8KM自动驾驶测试道路
- 都是第一?荣耀与小米都说自己是双十一手机冠军
- 重掌个人数据使用权? 互联网发明者力推Solid开放软件
- 破电荒!阳光电源携手法国布依格共建越南201MW光伏项目
- 支持QC4快充之后,Pocophone F1测试Android9.0跑分成绩曝光
- 大屏幕+双卡助力,分析师看好iPhone XR/iPhone XS Max的销量
- 网传三星下月新品叫做Galaxy A9 Star Pro,拥有后置四摄像头?
- 推进AI产业发展上海再出新政,或引导设立千亿元规模AI产业
- 40亿元收购雷士光电,德豪润达协同打造LED全产业链布局