哈喽大家好,我是咕噜老尼,今天我和大家分享一下关于代码如何运行的五个问题。 问题 1:FLASH中的代码是如何得到运行的呢?比如PC指针是在哪里由谁设置的? 以 ARM 为例 的 单片机 , 该类单片机的代码在 nor flash中,cortex内核可以直接运行,不需要将代码加载到ram中运行。ARM-cortex-A系列的SOC , 该类 SOC更加复杂,通常有内存管理单元,代码存储在nand flash中,程序运行时,需要先将代码加载到ram中运行,该类SOC的启动环节包含了加载程序。就像Windows操作系统存储在硬盘中,开机的时候,操作系统的代码会加载到 RAM 中。 PC指针:无论什么单片机或者SOC,都有一个PC寄存器,这个寄存器保存了下一条待取指令的地址。正常情况下自动加“4”,遇到分支跳转的时候,由跳转指令设置值。那么指针是什么?指针是一个变量的地址,在含有操作系统即硬件层面含有内存管理单元的情况下,指针是虚拟地址,不含操作系统的情况下,是物理地址,虚拟地址和物理地址经过MMU转换。 问题 2:这些代码需要搬到RAM中才能运行吗?不这样做会有什么不妥吗? 上文讲了,大部分单片机的代码直接在 nor flash中运行,少部分需要加载到ram中。nor flash可以直接寻址一个字节,可以找到一个指令的具体地址,因此可以直接运行。nand flash 的存储单元是块,不能对指令直接寻址,因此不能直接运行其中的代码。因此保存在nand flash中的程序不加载到ram中运行不了。即你的硬盘中的Windows不加载到内存条中,运行不起来。 问题 3:如果需要搬到RAM,那是片内还是片外有什么区别吗? 片内片外都可以,具体看是那款 SOC或CPU了。 问题 4:如果用户存在FLASH的实际代码大小(比如1MB),超过了RAM的可用空间(比如512KB),那这个搬移过程是啥样的? 现在实际情况很少遇到这种情况,当然可能会有 RAM很小的系统,可以分时分段的使用,即程序运行一段,加载一段,运行完,加载下一段。很不建议这样玩,现在的RAM很大了,你的实际代码达到1MB的时候,你的内存可能都有1G,2G了。比如Linux操作系统编译完后,实际上只有几MB,实际的Linux系统会有几个G 的内存可用。 问题 5:片外扩展的FLASH和SRAM与片内的想比,除了空间大小有差别,性能速度上会有怎样的差异呢? 具体要看 SOC的总线设计。一般来说片外的性能弱一点。能不能在Flash中直接运行程序代码,取决于Flash的访问特性。Flash存储器是按块组织的,在使用时也倾向于按块访问才更加高效。Flash类似于ROM一类的存储器,但它其实是可读可写的,不同于同样可读可写的RAM,它在写入数据时需要先将你所写位置所属的块擦除,不管你是不是只写几个字节,所以如果要改写Flash中的数据,总是会先将数据所属的块缓存到内存中,然后再在内存中改写好数据后又重新将块写回,这样就不会丢失数据,但是花销太大。读的时候,往往也是先定位块的位置,然后在块中顺序读取,在不同块中间断读取数据是非常低效的,所以按块读按块写是Flash的一大特点,它不能够随意的对存储区域寻址,典型的如NAND Flash。 好啦今天就讲到这了,我是咕噜老尼,我们下次再见
关于代码如何运行的五个问题
来源:这里教程网
时间:2026-03-02 12:54:18
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 家电适老化之战:美的、海尔“各有千秋”
家电适老化之战:美的、海尔“各有千秋”
26-03-02 - 你知道为什么RAID中没有RIAD2,RAID3,RAID4?
你知道为什么RAID中没有RIAD2,RAID3,RAID4?
26-03-02 - 计算机服务器中了mallox勒索病毒如何处理,mallox勒索病毒应对措施
- 怎样调出电脑中directx诊断工具
怎样调出电脑中directx诊断工具
26-03-02 - 计算机服务器中了_locked勒索病毒怎么办,_locked勒索病毒解密数据恢复
- windows电脑怎样设置屏幕保护?
windows电脑怎样设置屏幕保护?
26-03-02 - 计算机服务器中了mallox勒索病毒解密方案计划,勒索病毒解密措施
计算机服务器中了mallox勒索病毒解密方案计划,勒索病毒解密措施
26-03-02 - 如何让老式Console配置线焕发生机
如何让老式Console配置线焕发生机
26-03-02 - 电脑怎样显示文件的扩展名?
电脑怎样显示文件的扩展名?
26-03-02 - 企业计算机服务器中了mallox勒索病毒怎么办,mallox勒索病毒解密流程
