嵌入式Linux开发相关概念总结

嵌入式Linux 移植要点:

1.搭建交叉编译环境

2.bootloader的选择与移植(uboot)

3.kernel的配置、编译、移植、调试

4.制作根文件系统

1.搭建交叉编译环境

什么是交叉编译:(Kernel、Uboot、文件系统、用户app)代码在PC上开发、编译、链接出的可执行二进制文件下载(网络等多种方式)到开发板运行。

为什么需要交叉编译:

  1. 嵌入式系统资源有限,没有能力自己编译自己的工程再运行
  2. 嵌入式系统MCU体系结构和指令集不同,不同编译器生成的可执行文件需要在相应构架的设备上运行。编译器一般运行在PC机上(X86构架),需要编译出适合arm构架的程序

交叉编译环境:PC机Linux虚拟机,gnu工具集,gcc

GNU工具集:

  1. 编译工具:gcc
  2. 调试工具:gdb
  3. 软件工程工具:多人协助,make、CVS、Subversion
  4. 其他工具:用于把多个目标文件链接成可执行文件的链接器,或者格式转换工具(bin,erf等格式)

GCC编译器:

  1. 全称GNU GCC,可为多种硬件平台编译出可执行程序,效率高
  2. 是一个交叉平台编译器,适合在嵌入式领域开发编译
gcc所支持的后缀名解释
.cC源程序
.C/.cc/.cxxC++源程序
.mObjective-C源程序
.i已经过预处理的C源程序(预处理:头文件包含,宏展开,条件编译。)
.ii已经过预处理的C++源程序
.s/S汇编语言源程序
.h头文件
.o目标文件(二进制文件,但不可运行,需要链接后才可运行)
.a/.so静态库/共享库文件

GCC的编译流程:

1.预处理(Pre-Processing):

       将.c文件预处理成为.i文件,是将头文件包含进来,将宏展开,进行条件编译。结果还是C的代码

2.编译(Compiling):

       生成汇编文件

3.汇编(Assembling)

       将汇编文件转为目标文件(是二进制文件,但不可运行)

4.链接(Linking):

       将所有目标文件链接为可执行文件,

       定位(将代码段、数据段放到不同的位置),

       链接一些库文件

参考资料:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值