1.x210_usb.bin :通过USB下载到内存0xd0020010 地址处,初始化DDR(DRAM0、DRAM1)控制器,为下载 u-boot.bin 到DDR中做准备。
2.下载完 x210_usb.bin 后,x210_usb.bin程序就对T-PAD的DRAM做好了初始化,就可以通过USB将 u-boot.bin 下载到T-PAD的内存中了,下载地址为0x23e00000。
3.u-boot.bin 加载完成后,执行,进入 shell 或者 引导内核启动。
4.通过内存中运行的 u-boot.bin 的tftp命令下载 u-boot.bin到内存中,再通过Nand Write命令下载u-boot.bin到Nand Flash中。
===========================================
S5PV210处理器特性
·64KB 内部ROM(iROM)
·96KB 内部SRAM
-------------------------------------------
S5PV210_iROM手册:内置SRAM中的分配给BL1的大小为16KB,给BL2的大小为80KB(16+80=96KB)
1.iROM做最初的启动(x210_usb.bin):初始化系统时钟,特定设备的控制器和booting设备。
/* iROM启动步骤:
1.关看门狗
2.初始化指令缓存单元
3.初始化栈区域
4.初始化堆区域
5.初始化块设备拷贝功能
6.初始化PLL并设置系统时钟
7.拷贝BL1到内置 SRAM
8.核实BL1中的checksum,如果checksum失败了,iROM将尝试second boot(SD/MMC 通道2)。
9.检查是不是安全模式启动
如果S5PV210中写入了security key value,将会是安全模式启动
如果是安全模式启动,核实BL1的完整性
10.跳转到BL1的起始地址 */2.iROM中的启动代码能加载 bootloader 到SRAM。这一步被加载的bootloader称作BL1。
3.接着BL1执行:BL1将会加载SRAM中的bootloader(称作BL2),接着BL1将核实BL2以判断是否为安全模式启动。(链接:bootloader)
4.接着BL2执行:BL2初始化DRAM控制器然后加载OS到SARM中。
5.最后,跳到OS的开头地址。 给操作系统提供了良好的运行环境。
===========================================
交叉编译器环境变量的添加于"/ectc/environment"(对所有用户全有效)。
交叉编译:
arm-linux-gcc hello.c
file ./a.out /* LSB小端、ELF执行与链接 */
arm-linux-as -o hello.o hello.s /*汇编生成目标文件 */
arm-linux-ld -o hello hello.o /*链接 */
arm-linux-objcopy -o binary hello do_sub.bin /*ELF文件转化成纯二进制文件 */
arm-linux-objdump -S hello.o >hello.asm /*将二进制文件或者目标文件反汇编成汇编文件 */
arm-linux-readelf -a hello /*查看ELF格式文件的信息 */