这些地址数据都是我从debug log中找出来的,然后按地址大小绘制的。debug log数据可以参考我昨天的博客内容TQ2440成功移植uboot2016.11解决Using dm9000 device卡死问题--Apple的学习笔记这样的话,我首先对内存分布有了一个全局观。这属于我的个人分格,喜欢先了解大框架,再了解具体细节。画个图还蛮花费时间的哦,不过画...
一. 方法一 在文件<file>.c的首行加入以下内容: #defineDEBUG#undefCONFIG_LOGLEVEL#defineCONFIG_LOGLEVEL 8 二.方法二 在文件<file>.c对应的Makefile文件中加入以下内容: CFLAGS_<file>.o+= -DDEBUG -DCONFIG_LOGLEVEL=8
根本原因,我没有copy u-boot.img到fat32的boot文件夹。 问题2:在include/log.h中添加#define DEBUG后,编译出错,说超过了sram定义的空间大小 image.png 想要快速看懂linux框架代码,不方便像单片机这样单步走或者打断点看callstack,当然linux可以通过gdb,但是最常用的方法还是通过打印信息。并且debug函数早已经添加入了...
initr_serial,// 串口初始化initr_announce,// 打印uboot运行位置的loginitr_logbuffer,// logbuffer的初始化power_init_board,#ifdefCONFIG_CMD_NANDinitr_nand,// 如果使用nand flash,那么这里需要对nand进行初始化#endif#ifdefCONFIG_GENERIC_MMCinitr_mmc,// 如果使用emmc,那么这里需要对nand进行初始化#endif...
打开DEBUG宏之后,可以通过log观察哪些init函数被调用: uboot log中有如下log: initcall: 23e005a4 根据u-boot.map可以发现对应 .text.print_cpuinfo 0x23e005a4 0x8 arch/arm/cpu/armv7/built-in.o 0x23e005a4 print_cpuinfo 也就是说print_cpuinfo被initcall调用了。 所以uboot relocate之前的arch级初始化的...
2)u-boot所使用的DRAM,主要分为三类:各种特殊功能所需的空间,如log buffer、MMU page table、LCD fb buffer、trace buffer、等等;u-boot的代码段、数据段、BSS段所占用的空间(就是u-boot relocate之后的执行空间),由gd->relocaddr标示;堆栈空间,从gd->start_addr_sp处递减。
在U-Boot中,Denx(U-Boot的开发商)针对常见的DDR内存故障进行了严格的检测处理,下图描述了该检测处理过程的三个步骤:检测数据线、地址线和DDR物理存储部件,主要涉及这三个步骤的处理过程和方法,对于DDR子系统,是很容易出故障并且是很难debug检测出来的,而Denx所针对 DDR内存故障设计的检测方法是非常严谨,值得学习研究...
2)u-boot所使用的DRAM,主要分为三类:各种特殊功能所需的空间,如log buffer、MMU page table、LCD fb buffer、trace buffer、等等;u-boot的代码段、数据段、BSS段所占用的空间(就是u-boot relocate之后的执行空间),由gd->relocaddr标示;堆栈空间,从gd->start_addr_sp处递减。 3)特殊功能以及u-boot所需空间...
rockchip_show_logo // 显示开机 log soc_clk_dump // 打印 clk tree rk_board_late_init run_main_loop //最终通过run_main_loop启动os前会进入uboot命令行窗口。 main_loop main_loop函数 这个函数主要是用来解析Uboot命令行启动kernel main_loop //main.c ...
Loading Environment from MMC... OK In: serial Out: serial Err: serial Net: eth1: ethernet@20b4000 [PRIME]Could not get PHY for FEC0: addr 2 Hit any key to stop autoboot: 0 => 谎又看子uboot橘托聋舱襟钧铺趁匣便掌计怪,包括CPU、织贬刮反息。