摘要:2.1U-Boot Makefile分析2.1.1U-Boot编译命令对于mini2440开发板,编译U-Boot需要执行如下的命令:$makemini2440_config$makeall使用上面的命令编译U-Boot,编译生成的所有文件都保存在源代码目录中。为了保持源代码目录的干净,可以使用如下命令将编译生成的文件输出到一个外部目录,而不是在源代码目录中,下面的2种方法都将编译生成的文件输出到/tmp/build目录:$exportBUILD_DIR=/tmp/build$makemini2440_config$makeall或$makeO=/tmp/buildmini2440_confi
阅读全文
摘要:1.内存分配图(引用网络图片)2.u-boot映像的地址0并非指物理地址0,由不同的启动方式映射到不同的地址。例如v210是映射到0xD0000000处的irom。3.TEXT_BASE等指向SDRAM的地址均为虚拟地址。4.TEXT_BASE为顶层Makefile中定义的,例如三星官方BSP中定义的是0xC3E00000,它是程序实际的链接首地址。5.SDRAM_BASE被MMU映射在0xC0000000。6._end和__bss_start为链接脚本文件中最后定义的bss段,在链接时确定,并与u-boot映像编译在一起。7.在bl1段运行时,u-boot映像被复制到TEXT_BASE开始的
阅读全文
摘要:1.上电启动位于地址空间0xD0000000的是irom和iram。由于地址0为Mirrored region depending on the boot mode. 所以启动后直接进入0xD0000000运行。irom中存储的是三星固化的一段64k的启动代码,这段代码又称bl0,完成基本的初始化后读取启动选取引脚设置,将相应存储器的8k的bl1段代码复制到iram中并运行。2.运行bl1bl1为用户编写的启动代码。此处使用u-boot,即u-boot的最开始运行的启动代码。这段代码位于u-boot的开始,完成clk、dram、nand、MMU、串口等基本的初始化,并将完整的u-boot复制到
阅读全文
摘要:1.进入管理模式2.禁用cache3.清空cache4.使能cache5.禁止TLB6.禁止指令cache7.禁止MMU和cache8.读取启动信息9.将启动信息分析后写入reg中10.进入lowlevel.s11.读取复位标志,如果是唤醒跳过硬件初始化12.关闭看门狗13.配置sram引脚14.配置PMIC引脚15.判断是否在ram中运行,是的话跳过16-1816.PMIC初始化17.系统时钟初始化18.dram控制器初始化cpu_init.s19.串口汇编初始化,打印'O'20.取消存储保护区域21.onenand初始化22.nand初始化23.关闭ABB24.打印'
阅读全文