x86架构下的系统是由bios引导的,linux系统引导顺序是
bois->linux内核-> init进程
我们所使用的arm的系统是由uboot(bootloard)引导的,当我们需要裸机开发的时候,就不引导系统,可以不恰当的理解为是一个“死循环”;我们可以在裸机中进行开发;
在选择开发芯片的时候,要考虑两点:
1.芯片是否符合功能:查看芯片手册
2.芯片开发工具是否完整
搭建前准备好:
1.tiny2440开发板;
2.8G sd大卡;
解压uboot压缩包
(uboot安装包芯片生产公司一般都会提供)
将解压后目录改名为uboot
cd uboot/
make tiny4412_config
修改MMU(内存管理单元)起始地址,tiny2440起始地址为0x43e00000 所以需要修改
vim board/samsung/tiny4412/config.mk
修改为 CONFIG_SYS_TEXT_BASE = 0x43e00000
#原来为0xc3e00000
关闭mmu(Memory Management Unit)内存管理单元 用以物理地址向虚拟地址映射
vim include/configs/tiny4412.h
将311#define CONFIG_ENABLE_MMU 注释掉
执行make
make
指定 烧sd卡启动的程序 的目录为:
make -C sd_fuse/
插入sd卡,检查sd卡是否被电脑识别
fdisk -l
出现Disk /dev/sdb: 7744 MB, 7744782336 bytes即为成功。
切到执行配置sd卡启动程序
sdfuse/samsung/tiny2440/sd_fusing.sh /dev/sdb
(这个程序所在目录记不清了,自己找一下)
出现下面就成功
U-boot image is fused successfully.
Eject SD card and insert it again.
将sd卡插入开发板 拨到sd卡启动
启动minicom 启动开发板
开发板启动后minicom窗口下会响应回车,如果不响应回车,即使安装错误,检查uboot压缩包是否完整,以及版本是否合适。