bootloader
文章平均质量分 85
kerneler_
做一个有技术追求的人
ps:目前公司太忙,暂没时间更新博客,,大家评论我尽量回复,望大家谅解
展开
-
uboot中raise:Signal #8 caught的根本原因
在移植uboot时编译一切正常,但uboot启动中加载自己写的网卡驱动出现问题,一直在打印raise:Signal #8 caughtgoogle 百度了一番,也有很多人遇到了这个问题,大家都说出了解决问题的办法,就是自己编写的驱动中有出现除以0的误操作,就会一直打印raise:Signal #8 caught将除操作改为位移操作,或者避免除数为0,就可以解决这个问题。那为什么有原创 2014-07-02 15:42:37 · 6425 阅读 · 0 评论 -
uboot环境变量解析
(基于smdk2410) 1.相关文件 common/env_common.c 供u-boot 调用的通用函数接口,它们隐藏了env 的不同实现方式,比如dataflash, epprom, flash 等 common/env_dataflash.c env 存储在dataflash 中的实现 common/env_epprom.c env 存储在转载 2014-06-14 10:51:49 · 4230 阅读 · 0 评论 -
uboot环境变量实现分析
uboot中env的整个架构可以分为3层:(1) 命令层,如saveenv,setenv editenv这些命令的实现,还有如启动时调用的env_relocate函数。(2) 中间封装层,利用不同静态存储器特性封装出命令层需要使用的一些通用函数,如env_init,env_relocate_spec,saveenv这些函数。实现文件在common/env_xxx.c(3) 驱动层,实现不同静态存储器的读写擦等操作,这些是uboot下不同子系统都必须的。原创 2014-09-02 14:30:24 · 23289 阅读 · 3 评论 -
uboot向kernel的传参机制——bootm与tags
uboot如何启动kernel以及uboot与kernel之间的传参机制详解原创 2014-07-04 15:27:32 · 36227 阅读 · 10 评论 -
uboot的relocation原理详细分析
所谓的relocation,就是重定位,uboot运行后会将自身代码拷贝到sdram的另一个位置继续运行,这个在uboot启动流程分析中说过。但基于以前的理解,一个完整可运行的bin文件,link时指定的链接地址,load时的加载地址,运行时的运行地址,这3个地址应该是一致的,relocation后运行地址不同于加载地址 特别是链接地址,ARM的寻址会不会出现问题?原创 2014-07-11 10:06:58 · 31844 阅读 · 27 评论 -
powerpc uboot链接脚本大改造
uboot中bss段的生成过程可以分为如下步骤:(1)链接脚本中定义bss段地址范围__bss_start __bss_end。(2)编译链接elf时,根据链接脚本确定下__bss_start __bss_end的绝对地址,记录在elf文件的段表中。(3)elf objcopy生成u-boot.bin时,去掉bss段。(4)加载u-boot.bin启动运行,根据__bss_start __bss_en原创 2015-10-01 16:40:50 · 5372 阅读 · 0 评论 -
2014.4新版uboot启动流程分析
2014.4最新版本uboot启动过程详解在网上搜索讲uboot启动过程的文章,大多都是比较老的版本,于是决定将新版uboot启动过程记录下来,以备后用。2014.4版本uboot启动至命令行几个重要函数为:_start,_main,board_init_f,relocate_code,board_init_r。原创 2014-05-14 16:10:40 · 90087 阅读 · 28 评论 -
uboot下netconsole的原理及使用方法
kernel下也有netconsole机制,不过由于内核下的console只有write功能(因为内核启动是没有交互的,只有输出信息),因此kernel下netconsole机制其实就是向内核注册提供网络发送数据功能的console_device,具体实现代码在drivers/net/netconsole.c中。原创 2016-03-17 18:54:43 · 8738 阅读 · 3 评论