NanoPC-T2
文章平均质量分 74
Spinlock_hys
无知的本科生一名。。。
展开
-
NanoPC-T2 Uboot启动过程分析- 1 上电启动
NanoPC-T2 Uboot启动过程分析- 1 上电启动本文分析以NanoPC-T2平台为主。NanoPC-T2使用的是三星的S5P4418为主CPU。系统上电时,S5P4418 会将位于 0x3400_0000 上的 Internal ROM 代码映射到 0x0000_0000 上进行执行。该代码将 SD 卡上从 0x0000_0200 开始的数据复制到内部 RAM 中,目标位置为 0xFFFF原创 2016-07-29 10:21:41 · 1470 阅读 · 2 评论 -
NanoPC-T2 Uboot启动过程分析 - 2-1 初始启动
从上一章的分析可看到,UBoot已经从SD卡或Flash被复制到 0x42C0_0000 内存上,并开始从这里开始执行。为了方便说明,以下将UBoot源码的根目录位置表示为 /uboot-root 。首先,先找到 /uboot-root/u-boot.lds,这是uboot编译时的链接文件,打开后重点关注以下内容:ENTRY(_stext)SECTIONS{ . = 0x00000000; . =原创 2016-07-29 10:24:45 · 1303 阅读 · 2 评论 -
NanoPC-T2 Uboot启动过程分析 - 2-2 board_init_f
在本节继续之前,先回顾相关寄存器的内容与内存空间的使用情况:寄存器:r13 = &( bl mmu_turn_on ) @ /uboot-root/arch/arm/cpu/slsiap/s5p4418/start.Ssp = 0x42C0_0000lr = &( bl mmu_on ) @ /uboot-root/arch/arm/cpu/slsiap/s5p4418/mmu_asm.S内存空原创 2016-07-29 10:25:55 · 1293 阅读 · 3 评论 -
NanoPC-T2 Uboot启动过程分析 - 2-3 init_sequence_f[] part 1
在继续分析之前,先回顾一下当前相关寄存器的值与内存空间的使用情况。Registers:r0 = 0r9 = 0x42BF_FF60 @ &gdr13 = &( bl mmu_turn_on ) @ /uboot-root/arch/arm/cpu/slsiap/s5p4418/start.Ssp = 0x42BF_FF60lr = &( bl board_init_f ) @ /uboot-roo原创 2016-07-29 10:27:17 · 1781 阅读 · 0 评论 -
NanoPC-T2 Uboot启动过程分析 - 2-4 init_sequence_f[] part 2
在继续分析之前,先回顾一下当前相关寄存器的值、内存空间的使用情况和相关变量的值的情况。Registers:r0 = 0r9 = 0x42BF_FF60 @ &gdr13 = &( bl mmu_turn_on ) @ /uboot-root/arch/arm/cpu/slsiap/s5p4418/start.Ssp = 0x42BF_FF60lr = &( bl board_init_f ) @原创 2016-07-29 10:28:19 · 849 阅读 · 0 评论 -
NanoPC-T2 Uboot启动过程分析 - 2-5 board_init_r() part 1
在继续分析之前,先回顾一下当前相关寄存器的值、内存空间的使用情况和相关变量的值的情况。 r0 = 0x42BF_FF60 @ &gdr1 = 0x42C0_0000r2 = 0x42BF_FF10 @ &spr9 = 0x42BF_FF60 @ &gdr13 = &( bl mmu_turn_on ) @ /uboot-root/arch/arm/cpu/slsiap/s5p4418/start.原创 2016-07-29 10:29:33 · 1317 阅读 · 0 评论 -
NanoPC-T2 Uboot启动过程分析 - 2-6 board_init_r() part 2
在继续分析之前,先回顾当前 gd 的内容:bd_t *bd = 0x42BF_FF10{unsigned long bi_memstart = 0phys_size_t bi_memsize = 0unsigned long bi_flashstart = 0unsigned long bi_flashsize = 0unsigned long bi_flashoffset = 0unsigned原创 2016-07-29 10:30:21 · 1382 阅读 · 0 评论 -
NanoPC-T2 Uboot启动过程分析 - 3-1 main_loop()初认识
main_loop()是uboot的主循环,位于\/uboot-root\/common\/main.c中。其代码如下:void main_loop(void){ const char *s; bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop"); modem_init(); cli_init(); run_preboot_environ原创 2016-07-29 10:31:10 · 2201 阅读 · 1 评论 -
NanoPC-T2 Uboot启动过程分析 - 3-2 启动命令的执行
回忆上一节,UBoot当前要解析和执行启动命令。该启动命令存储在环境变量bootcmd中。回忆环境变量的内容:baudrate=115200bloader=ext4load mmc 0:1bootcmd=$bloader 0x48000000 $kernel;$bloader 0x49000000 root.img.gz;bootm 0x48000000bootdelay=0bootfile=uI原创 2016-07-29 10:31:51 · 1491 阅读 · 0 评论