提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
一、什么是嵌入式
专用的可裁剪的专用的计算机系统,可裁剪包括硬件软件。
二、计算机系统
(1)
1)概述:内存的类型:RAM/ROM/SOAM/SROM/SDRAM
ROM(read only memory): 只读存储器,掉电保护。
分类:
PROM:可编程的ROM
EPROM:可编程可擦出的ROM
EEPROM:电子擦除的ROM
RAM(read random memory):掉电数据会丢失,一般的计算机就是RAM。
2)RAM分类:
(1)SRAM(static RAM):掉电不丢失
(2)DRAM(dynamic RAM):掉电丢失
分类:-
最常用的DDR RAM(date-rate RAM):也称作DDR SDRAM
优势:
区别:DRAM速度比ROM快,比SRAM慢。价格比SRAM便宜,主要用于计算机内存。
3)什么是FLASH(闪存):
优势:结合了RAM和ROM的长处,不仅具备电子可擦除的性能EEPROM的性能而且有掉电保护,
同时可以快速读取数据
用途:用于存储bootloader以及操作系统或者代码,或者直接当U盘使用
4)FLASH分类:
NOR FLASH的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH 里面的代码,
这样可以减少SDRAM的容量从而节约了成本。生产厂家:Intel、AMD、Fujitsu和Toshiba。
NAND FLASH 没有采取内存的随机读取技术,它的读取是以一次读取512字节,采用这种技术的FLASH比较廉价。
用户不能直接运行NAND FLAH上的代码,因此好多使用NAND FLASH的开发板除了使用NAND FLASH 以外,
还用了一块小的NOR FLASH来运行启动代码。生产厂家:Samsung和Toshiba。
本质区别:NOR连接在cpu的地址总线,直接跟cpu交互,当板子上电之后cpu可以直接读取norfalsh上的数据。
NAND链接在控制总线
三星公司:制造的NAND FLASH可以读取前4k。
(2)有软件系统 和 硬件系统结合
| |
windows cpu:处理数据(执行程序) 寄存器 :硬件操作接口
linux 内存:程序 数据 外接内存掉电会丢失 内存:寄存器无法于FLASH直接进行交流 内存的类型:RAM/ROM/SOAM/SROM/SDRAM
unix 存储器:硬盘掉电数据会保存。 外存(flash) 外存的类型:
固态:提升硬盘的读取数据 NORFLASS
(3)
单片机最小系统:晶振, 复位, 单片机, 电源
| |
提供脉冲信号 程序调试需要
arm最小系统:在单片机最小系统的基础上添加了内存和flash
嵌入式linux系统组成:
bootloader: 加载和引导代码,为整个系统的运行做初始化准备初始化时钟,初始化内存 Uboot-->编译生成bootloader
初始化硬盘,从硬盘拷贝系统到内存,跳转到内存。
1)存储在flash,运行在内核,为内核运行做前期准备
kernal:内核代码
2)进程、设备管理、内存管理、文件管理、网络协议 gnu内核源码: www.kernel.org
rootf:根文件系统(被内核挂载的第一个文件系统)
系统的配置文件:文件系统是一堆文件,文件的组织形式
(ext3 yaffs jiffs):文件存储的标准格式,遵守怎样的协议。
内核自动挂载根文件系统
运行过程:初始化cpu,内存,从flash拷贝代码到内存,跳转到内存执行。 BUSYBOS
嵌入式驱动开发:电路:将电信号转换为数据信号
(4)什么是x86:
区别一个系统是多少位:可以看一下数据类型Long 的大小
在32位系统是4字节,64位系统是8字节
为啥是32位:因为数据和地址是32位
总线系统:
地址总线:
数据总线:
控制总线:
(5)系统的初始化运行:
首先将内核代码加载到内存中,然后cpu运行内存代码,完成系统的运行。
但是刚开始他们三者之间是没有办法进行交互的,在x86平台上需要一个第四方硬件
平台bios(上电之后就会运行)
完成cpu,内存以及硬盘的的以及时钟电路的初始化将内核加载到内存中之后
cpu才可以将系统运行起来
1)x86系统:
引入一个第四方平台;bios固件代码《启动设备的初始化,执行代码,初始化时钟,初始化内存
初始化硬盘,从硬盘拷贝系统到内存,跳转到内存。
bios:为系统的运行做前期的初始化准备
iamge:内核镜像
2)嵌入式系统:
因为x86相对比较成熟,硬件组成比较完善所以会设计一个专用的bios来完成cpu,内存,
硬盘以及时钟电路的初始化,但是嵌入式系统有很多中平台,各种硬件组成也不同,所以
没有办法像x86一样设计一个bios来完成初始化,所以会有一个boradloader。