start.S解析1
来源:互联网 发布:淘宝网商城中年女装 编辑:程序博客网 时间:2024/04/29 12:56
《朱老师物联网大讲堂》学习笔记
学习地址:www.zhulaoshi.org
先来个引子,又因为引子比较短,就直接放下面了,
#include <config.h>#include <version.h>#if defined(CONFIG_ENABLE_MMU)#include <asm/proc/domain.h>#endif
#include<config.h>,
config.h在include目录下,
这个文件是在配置中自动生成的(详见mkconfig脚本文件)的文件,
config.h又包含一个头文件,#include<configs/x210_sd.h>,
start.S包含的“第一个”头文件是config.h,
因为再次包含的缘故,其实包含第一个头文件是include/configs/x210_sd,
x210_sd这个文件是整个uboot移植时的配置文件,里面有好多宏,
宏中为移植进行了很多判断,
突然一看x210_sd,我想大多数人以为我们用的是sd呢,
其实就是因为uboot配置所致,至少在这里不是因为这,
#include<version.h>,本身没什么东西,
这个头文件里面包含了一个include/version_autogenerated.h,
这个头文件就是配置过程中自动生成,里面只包含了一个关于版本号宏,
内容是#define U_BOOT_VERSION “U-Boot 1.3.4",
这个版本信息来自于Makefile中的配置值,还记得之前不久对这个版本的分析吗?
这个版本号的值是有好几个变量结合起来的,不是直接就这样一个变量就定了的,
这个版本信息在启动uboot打印的那串信息中,可以体现出来,
#if defined(CONFIG_ENABLE_MMU)
#include <asm/proc/domain.h>
#endif
这个宏怎么看呢?
在IS中点击这句代码,会提示它的出处,
if判断为真后,
将会包含中间那个头文件<asm/proc/domain.h>,
这个目录不是uboot中的原生目录,
是配置的时候创建的一个符号链接,
实际指向的是asm-arm(详见mkconfig那节),
即include/asm-arm/proc/domain.h,
干嘛要通过符号链接来绕一圈,好急人~
其实这是为了可移植性,要说的是,联系越紧密,可移植性就越差,
比如我们要移植到mips架构,则start.S源代码中所有的头文件就全部要修改,
用了符号链接之后,则start.S中的不用修改,
只需要在配置时修改就可以了,
还记得之前配置中有部分代码是关于不同架构的配置设置了吗?
- start.S解析1
- start.S解析2
- start.S解析3
- start.S解析4
- start.S解析5
- start.S解析6
- start.S解析7
- start.S解析8
- start.S解析9
- start.S解析10
- start.S解析11
- start.s 解析
- S5PV210-uboot解析(二)-start.S解析
- Uboot中start.S源码解析
- S5PV210-uboot解析(二)-start.S解析-lowlevel_init函数分析
- start.S
- start.S
- start.s
- SVN解除控制
- 关于ios linker command failed with exit code 1的处理
- Android实现点击通知栏后,先启动应用再打开目标Activity
- 从实现倒计时谈闭包
- Oracle IMP-00010、IMP-00031的解决
- start.S解析1
- Android TextView加上阴影效果
- Qt 使用QMovie加载gif图片实现动态等待窗口
- 静态内部类和非静态内部类区别
- Java随机数的三种写法
- Android开发权限大全
- 乘法
- 【错误】打开eclipse报错:发现了以元素 ‘d:skin’ 开头的无效内容。此处不应含有子元素。
- SecureCRT 绝佳配色方案, 保护你的眼睛