【Linux 移植 】——2、移植 u-boot-2012.04.01指分析启动过程
来源:互联网 发布:尖头高跟鞋淘宝 编辑:程序博客网 时间:2024/06/06 02:15
(韦东山毕业班视频)
一、移植 u-boot-2012.04.01指分析启动过程
a、获取源代码:
从 ftp://ftp.denx.de/pub/u-boot/ 下载u-boot-2012.04.01.tar.bz2,下载交叉编译链arm-linux-gcc-4.3.2.tar.bz2。
b、将 u-boot-2012.04.01.tar.bz2 解压到 PC 上,并建立 Source Insight 工程。
将 u-boot-2012.04.01.tar.bz2 放到 Ubuntu 上面 进行解压,同时安装 arm-linux-gcc-4.3.2.tar.bz2。
c、建好Source Insight 工程后添加相应文件便可以分析 u-boot-2012.04.01 的启动过程:
根据链接过程,打开 start.S 进行代码分析:
1、设置 CPU 为管理模式 set the cpu to SVC32 mode
2、关看门狗 turn off the watchdog
3、屏蔽中断 mask all IRQs by setting all bits in the INTMR
4、设置分频时钟比例
5、设置内存控制控制器 (CPU 底层初始化)
6、设置栈,调用 C 函数 board_init_f
7、调用函数数组 init_sequence 里的各个函数
7.1 board_early_init_f : 设置系统时钟、设置GPIO
... ...
8、 重定位代码
8.1 从NOR FLASH把代码复制到SDRAM
8.2 程序的链接地址是0,访问全局变量、静态变量、调用函数时是使"基于0地址编译得到的地址"
现在把程序复制到了SDRAM
需要修改代码,把"基于0地址编译得到的地址"改为新地址
8.3 程序里有些地址在链接时不能确定,要到运行前才能确定:fixabs
9、clear_bss
10、调用C函数board_init_r:第2阶段的代码
- 【Linux 移植 】——2、移植 u-boot-2012.04.01指分析启动过程
- 【Linux 移植 】——4、移植 u-boot-2012.04.01 之 支持NAND启动
- OK6410之uboot移植(2)——U-Boot启动过程完全分析
- U-Boot移植(二)——U-Boot编译过程分析(2)
- TQ2440 学习笔记—— 30、移植U-Boot【U-Boot 的启动过程第一阶段源码分析】
- TQ2440 学习笔记—— 31、移植U-Boot【U-Boot 的启动过程第二阶段源码分析】
- u-boot启动过程分析——基于lpc2210的移植代码
- u-boot启动过程分析——基于lpc2210的移植代码[转]
- u-boot启动过程分析——基于lpc2210的移植代码
- 11u-boot启动过程分析——基于lpc2210的移植代码
- U-BOOT全线移植分析系列之四——U-boot如何引导Linux内核启动
- U-Boot移植(二)——U-Boot编译过程分析(1)
- U-Boot移植(二)——U-Boot编译过程分析(3)
- U-Boot移植(二)——U-Boot编译过程分析(4)
- 【Linux 移植 】——5、移植 u-boot-2012.04.01 之 支持Nor Flash
- U-boot移植过程
- U-boot移植过程
- 移植u-boot学习笔记2-----分析启动过程之内存分布
- C++缺省参数和函数重载
- 2015腾讯校招后台开发类内推电话面试(技术工程事业群TEG内推面试分享)
- 又见拦截导弹
- C语言函数指针变量
- 弱校联萌十一大决战之如日中天GGadget Hackwrench
- 【Linux 移植 】——2、移植 u-boot-2012.04.01指分析启动过程
- 自己练习一之对象的访问和对象的存储和指针
- 2015/10/04 阴雨天纪事
- android中listview 异步加载防止图片移位
- IMS技术
- iOS按钮的使用和动画的实现
- leetcode_258_Add Digits
- MMD_4b_SVD
- HDOJ 5498 Tree