硬件驱动---linux内核驱动 启动
linux启动流程:
初始化CPU—工作模式
初始化异常向量表------用于处理系统异常情况
初始化栈------为函数调用等准备空间
关看门狗------防止系统意外重启
初始化时钟-----设置系统时钟
初始化内存------准备好内存空间
关闭cache------D-Cache必须关 I-Cache ----确保数据的一致性;
关闭 MMU
初始化相关外设(flash/串口);
集成相关协议
搬移内核到内存--------把操作系统内核加载到内存中
向内核传输参数(根文件系统类型/位置/控制台/init进程)
引导内核启动;
booloader 不再控制CPU,CPU的控制权彻底移交给内核;
nandflash: 不可线性寻址,访问需要专用的
0地址就是整个内存(寻址空间)的起点,第一个位置,就像一条街道的门牌号从0开始一样。
对硬件而言,0地址是“起点”,是故事的开始。
对操作系统和应用程序而言,0地址是“雷区”,碰了就会炸(程序崩溃)。
在虚拟机上检查配置是否成功
sudo minicom 点复位,然后检查是否和window串口输出一样;
sudo minicom -s检查信息配置