嵌入式中的CPU和外部存储器

一、一些存储类相关的概念

1、ROM (read only memory)只读存储器,一般作为外部存储器,类似于硬盘、Flash、光盘等。

2、RAM (ramdam access memory)随机访问存储器,内部存储器,用来存储程序,比如DRAM、SRAM、DDR等。

RAM又可分为DRAM(dynamic ram)动态RAM和SRAM(static ram)静态RAM,其各自的特点为:

DRAM容量大、造价低,缺点就是上电后不能直接使用,而需要软件初始化后才能使用。

SRAM容量小、造价高,优点就是上电后能够直接使用,而不用进行软件初始化。

3、IROM (internal rom)内部ROM,指的是集成到SoC内部的ROM。

4、IRAM (internal ram)内部RAM,指的是集成到SOC内部的RAM。

二、SoC常用的外部存储器

1、NorFlash 特点:容量一般很小,造价高,但是可以和CPU总线式相连,CPU在上电后可以直接读取,所以一般常用作启动介质。

2、NandFlash 特点:分为SLC和MLC,类似于硬盘,容量一般很大,造价也低,但是不能够使用总线式访问,当CPU上电后,需要运行一下相应的初始化程序后,通过时序接口读写。

3、eMMC/iNand/moviNand moviNand是三星公司生产的eMMC

4、oneNand 三星公司生产的一种Nand

5、SD卡/TF卡/MMC卡等

三、CPU连接内存和外存的方式

CPU连接内存和外存的方式是不同的,内存需要直接地址访问,所以采用总线式连接,其特点就是可以直接、随机访问,但是需要占用CPU地址空间。外存是通过CPU外存接口连接的,特点就是不占用CPU的地址空间,访问速度相对总线式较慢,访问时序比较复杂。

四、一般系统的存储结构

一般的单片机:小容量的NorFlash + 小容量的SRAM

嵌入式系统:外接大容量Nand + 外接大容量DRAM + SoC内置SRAM

PC机:小容量的NorFlash(也就是BIOS) + 大容量的硬盘(类似于NandFlash) + 大容量的DRAM

时间: 2024-10-17 21:46:40

嵌入式中的CPU和外部存储器的相关文章

第九章 C语言在嵌入式中的应用

上章回顾 编码的规范和程序版式 版权管理和申明 头文件结构和作用 程序命名 程序注释和代码布局规范 assert断言函数的应用 与0或NULL值的比较 内存的分配和释放细节,避免内存泄露 常量特性 [email protected]:Kevin-Dfg/[email protected]:Kevin-Dfg/Data-Structures-and-Algorithm-Analysis-in-C.git 第九章 第九章 C语言在嵌入式中的应用 C语言在嵌入式中的应用 [email protecte

嵌入式中通讯协议的设计(转)

源:嵌入式中通讯协议的设计 说得太精彩了! 公司里做项目,嵌入式系统大大小小,到处都是.因为都是一个系统里的,所以都需要通讯,既然通讯就涉及到协议问题. 谈及协议,很多工程师觉得协议的设计相对简单,主要是报文的设计.大多数时候,协议的应用场景简单,没有复杂的交互.这么做的确也是没什么太大的问题.然而,就是这么简单的场景,仍有一些协议会在实际中发生意想不到的问题.归根结蒂,还是没有把握协议涉及的规律.下面我们简单的聊聊协议设计的规律. 协议设计中面临的问题: 1.设计者大多数情况下,从应用出发,仅

Android中获取CPU负载和进程cpu时间

android系统中有一个ProcessStats类,我们可以使用它来获取系统的负载情况及进程时间. 实现原理是读取/proc目录下的.linux系统运行时,内核会去更新 /proc目录下的文件,将PID的运行情况写入相应的文件中.我们主要关注以下文件 1. /proc/stat 该文件包含了从系统启动开始累积到当前时刻的CPU活动信息. 看下我手机的情况,如下 cat /proc/stat cpu  14869 5121 19794 156065 3114 0 26 0 0 0 cpu0 10

Linux中查看CPU信息 (转)

cat /proc/cpuinfo中的信息 processor       逻辑处理器的id. physical id    物理封装的处理器的id. core id        每个核心的id. cpu cores      位于相同物理封装的处理器中的内核数量. siblings       位于相同物理封装的处理器中的逻辑处理器的数量. 1 查看物理CPU的个数#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc –l 2. 

定位JVM中占CPU较高的堆栈

疑问: 在linux中,使用top命令,发现某java进程占用CPU较高,如何定位到是那个线程,执行哪些代码导致的呢? 第一步:找到占用CPU较高的进程号,使用top命令查看. 从上图可以看到,java进程号为759的进程占用cpu特别高. 第二步:查看当前进程759所有线程占用cpu情况 使用top –Hp pid 来查看,shift + t命令展示或关闭线程情况. 从上图,可以看出760的java线程占用CPU较高. 第三步:查看760线程的堆栈信息. 使用命令 jstack 759 | g

如何获取多核、多cpu系统中指定cpu的序列号

如何获取多核.多cpu系统中指定cpu的序列号作者:SkyJacker(转贴请保持完整并注明作者和出处)http://www.cnpack.orgCnPack IV  QQ Group: 1309702007-01-23 感谢:Passion,Bahamut,早安,空气,SkyJacker...没有Bahamut的奇思妙点,就没有这片文章. 在多cpu.多核中,会随机的获得不同的序列号.这就为我们根据cpu序列号来制作注册机带来了很大的麻烦.Windows 2000/xp允许设置进程和线程的亲缘

kvm中的cpu配置

在QEMU/KVM中,qemu提供对cpu的模拟,展现给客户机一定的cpu数目和cpu特性:在KVM打开的情况下,客户机中cpu指令的执行有硬件处理器的虚拟化功能来辅助执行,具有非常高的效率. Qemu/kvm为客户机提供一套完整的硬件系统环境,在客户机看来其所拥有的cpu即是vcpu(virtual CPU).在KVM环境中,每个客户机都是一个标准的Linux进程(qemu进程),而每一个vCPU在宿主机中是Qemu进程派生的一个普通线程. 在普通的Linux系统中,进程一般有两种执行模式:内

Linux中查看CPU信息【转】

[转自]:http://blog.chinaunix.net/uid-23622436-id-3311579.html cat /proc/cpuinfo中的信息 processor       逻辑处理器的id. physical id    物理封装的处理器的id. core id        每个核心的id. cpu cores      位于相同物理封装的处理器中的内核数量. siblings       位于相同物理封装的处理器中的逻辑处理器的数量. 1 查看物理CPU的个数#cat

如何识别SQL Server中的CPU瓶颈

原文:如何识别SQL Server中的CPU瓶颈 原文出自: http://www.mssqltips.com/sqlservertip/2316/how-to-identify-sql-server-cpu-bottlenecks/ 问题: 如果经常遇到CPU瓶颈而导致的SQLServer宕机,那如何去发现并解决这些相关的问题? 解决方案: 导致CPU成为SQLServer性能问题的原因有很多,比较明显的原因是因为资源不足.但是,CPU的利用率可以通过配置的更改和查询的优化来降低,所以当你想买