目录
一、最小系统
二.操作系统
三.操作系统的启动
四.linux启动准备工作
五.安装nfs和tftp环境
六.总结
设备驱动:驱使设备行动的程序。
裸机程序:没有和操作系统结合的驱动程序pwm.c,uart.c,adc.c
有操作系统的时候,应用层不能直接操作硬件,由底层写驱动的人写好驱动,加到操作系统里面,然后应用层去调用。
静态的驱动:就是操作系统在一块的
动态的驱动:就是操作系统起来之后,后续加载进去的
1.首先我们要知道什么是操作系统?
2.操作系统是怎么启动的?
3.最小系统是什么?
一、最小系统
bus:总线,一组线。
可线性访问:有专门的地址、数据总线
内存:程序在内存里面运行,就是程序在运行的时候数据都是和内存做交互的,实际上程序cpu上运行。
速度快,但是掉电会丢失数据,可线性访问。
1.这里的地址总线是从LADDR2开始的,不是从0和1开始的,说明是按照四字节对其来访问的。
7654 3210位
0000 0x00
这里没有0和1位,最小的单位就是4字节,所以只能四字节访问。
2.地址总线是相同的,数据位不同,高16位和低16位放在俩个内存里,刚好32位的数据总线,4字节访问刚好是32位。
Norflash:速度慢,掉电数据不丢失,可线性访问。
1.地址位从1开始,俩字节对齐,数据位是16位,俩个字节访问刚好是16位的数据。
Nandflash:速度慢,掉电数据不丢失,不可线性访问。
二.操作系统
Linux启动:
1.bootloader
2.kernel(linux内核)
3.rootfs(根文件系统)
1.bootloader(一个逻辑程序)
先导的启动程序,为内核的启动准备运行环境(初始化内存),并引导内核启动(将内核放在内存里,pc指向内存)。具备该功能的程序都叫bootloader。
具体的工作:
关闭Cache(缓存),直接从内存读取值
关闭看门狗:关闭自动复位,就是cpu会循环给一个信号,看门狗收到信号的时候会重新计数,当看门狗没有收到这个信号的时候会认为cpu出错了,就会给出一个复位的信号。
搬移内核到内存:这里无论从哪搬移内核都可以,不一定要在nandflash中搬移。
存放的位置: