pcDuino系统启动过程
- 检测update按钮,如果有按下,进入USB启动
- 如果检测到SD卡,读SD卡上的启动信息
- 如果检测到Nand启动芯片上有启动信息,读取启动。
uboot
kernel
- 获得内核源码文件kernel.tar.bz2
- 解压后进行编译
- tar xjvf kernel.tar.bz2
- cd kernel
- mkdir linux-sunxi/.git
- mkdir u-boot-sunxi/.git
- make u-boot
- sudo cp build/pcduino-u-boot/tools/mkimage /usr/sbin
- make linux
- 编译成功后测试
- 将编译结果拷贝到nfs共享目录
1.cp build/sun4i_defconfig-linux/arch/arm/boot/uImage ~/nfsroot
2.cp -r build/sun4i_defconfig-linux/output/lib ~/nfsroot - 将目标板上系统相关文件替换成自己编译的
1.sudo mount /dev/nanda /boot
2.cp /boot/uImage ~/
3.cp /mnt/uImage /boot
4.cp -r /mnt/lib /lib
5.sync
6.reboot
7.cat /proc/version - 测试失败后的处理办法
1.插入可以正常启动开发板的TF卡
2.开机启动,等待系统进入命令行
3.mount /dev/nanda /boot
4.mount /dev/nandd /mnt
5.cp /mnt/home/ubuntu/uImage /boot
6.sync
- 将编译结果拷贝到nfs共享目录
filesystem
- u-boot-spl
- 初始化CPU外部的RAM
- 读取u-boot.bin到RAM并执行
- u-boot.bin
- 读取Nand上的分区表,找到分区nanda
- 从nanda分区内读取Linux内核所需要的启动信息sprite.bin,uImage,uEnv.txt
- 为uImage(linux kernel)运行准备环境
- 运行uImage
- uImage
- init
- 运行级别