iMX6ULL学习(一)

以下部分资料和硬件参考于韦老师的百问网

嵌入式linux启动流程

宏观上:
Windows:BIOS -> 启动windows-> 识别C盘 -> 运行APP
Linux:bootloader(常用u-boot) -> 启动Linux内核(内核本身+驱动程序) -> 识别根文件系统(系统必备APP+用户APP) -> 运行APP

微观上:
Reset(硬件复位) -> ROM(内部只读存储器) -> U-boot(bootloader引导程序,设置环境变量,启动kernel) -> Kernel+dtb(内核+设备树) -> Rootfs(根文件系统) -> APP(系统应用+用户应用/usr/bin/)

编译流程

一个C/C++文件需要经过预处理(preprocessing)、编译(compilation)、汇编(assembly)、链接(linking)才能变成可执行文件。

gcc -E -o hello.i hello.c(预处理,获取文件所需要的库,展开宏定义,.c->.i)
gcc -S -o hello.s hello.i(编译,生成汇编指令,检测语法,.i->.s)
gcc -c -o hello.o hello.s(汇编,生成机器码,.s->.o)
gcc -o hello hello.o(链接生成app,.o->.elf)

下列是gcc指令常用的选项

常用选项 描述
-E 预处理
-c 把预处理、编译、汇编都完成,但不进行链接
-o 指定输出文件
-I(大写i) 指定头文件目录
-L 指定链接时库文件目录
-l(小写L) 指定链接哪一个库文件,如-labc 链接的是libabc.so文件
-v 显示编译细节

#include <…>:工具链所指定的目录LIBRARY_PATH下查找,可通过-I添加路径

链接库的创建使用

(一)、制作和使用动态链接库(.so,share object)

gcc -c -o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值