Android_UBOOT分析(二)执行顺序
来源:互联网 发布:性 婚姻 知乎 编辑:程序博客网 时间:2024/06/05 01:13
--作者:赖玉平(Peter Lai)aulyp@163.com
6410的板子一上电,,首先跑的是uboot-ARMEasy6410/cpu/s3c64xx下的start.S,它生成了start.o文件。在这里进行一系列的初始工作,例如内存控制器,MMU等,就像WINCE里的EBOOT下面的startup.s所做的工作,如果是要加入IROM启动,NOR启动等,都是要在这里就开始做切换。例如,要从IROM启动,cpu_init_crit就要调用到nand_asm_init函数,这个函数是由start_irom.s文件提供。
接下来进入到Bootloader Stage 2即C语言代码部分,入口是start_armboot,对应的源文件是lib_arm/board.c,
从lib_arm/board.c的源码不难分析出系统的启动流程:首先初始化全局数据表,然后顺序执行函数指针数组init_sequence中的一系列初始化函数——由其在本文件中的相关定义可得知初始化流程:
init_fnc_t *init_sequence[] = {
cpu_init, /* basic cpu dependent setup */
board_init, /* basic board dependent setup */
interrupt_init, /* set up exceptions */
env_init, /* initialize environment *///这个函数受存储界面不同而不同!
init_baudrate, /* initialze baudrate settings */
serial_init, /* serial communications setup */
console_init_f, /* stage 1 init of console */
display_banner, /* say that we are here */
#if defined(CONFIG_DISPLAY_CPUINFO)
print_cpuinfo, /* display cpu info (and speed) */
#endif
#if defined(CONFIG_DISPLAY_BOARDINFO)
checkboard, /* display board info */
#endif
dram_init, /* configure available RAM banks */
display_dram_config,
NULL,
};
若一切顺利,接下来就调用
要学好嵌入式,还是建议买一个开发板,这样学习来会更快!
推荐下面4款,你可以根据你的经济能力来选一个
1、高级嵌入式开发板 ARM-A8内核,价格在2200~2700
X-210开发板(代码开放度高,XBOOT很牛)
Mini210开发板 (友善的板子,有沉淀)
2、入门级嵌入式开发板 ARM11内核 ,价格在500~650之间
Tiny6410 (友善之臂经典之作)
OK6410 (特点是支持WINCE7.0)
可以去风火轮团队的店里看一下,在他们那里买开发板有个好处,他们提供更周到的技术支持
风火轮技术开发团队 www.arm-cn.com
官方淘宝店:smartfire.taobao.com
- Android_UBOOT分析(二)执行顺序
- javascript执行顺序(二)
- T-SQL执行顺序(二)
- Tsql查询执行顺序(二)
- T-SQL查询执行顺序(二)
- shell执行命令顺序 二
- oracle分析函数执行顺序
- SQL语句执行顺序分析
- SQL语句执行顺序分析
- SQL语句执行顺序分析
- SQL 的执行顺序分析
- 深入浅出JavaScript (二) 代码放置位置与执行顺序
- 【深入浅出】JavaScript (二) 代码放置位置与执行顺序
- 深入浅出JavaScript (二) 代码放置位置与执行顺序
- T-SQL查询处理执行顺序(二)
- KVC/KVO 进阶(二)KVC方法执行顺序
- Java核心代码(二)构造+语句执行顺序
- netty(二):事件执行分析
- vs2008+cuda配置
- uboot搬运代码以及uboot.lds
- [Android][清水笔记]多个Activity跳转时其状态方法的调用顺序
- MIPS u-boot 中code Relocate流程分析
- AOP技术
- Android_UBOOT分析(二)执行顺序
- 写文章 标题
- 重要的技术文章
- 截取文件名
- LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
- test
- C# 添加右键菜单
- 如何创建新 Silverlight 项目
- stl hash_map原理