毕业已经大概一个月了,鉴于工作不是很忙,想把之前一直想学习的LINUX系统的系统学习一下,作为之后学习ROS的基础。刚刚开始写博客,希望自己能够一直坚持下去,同时也算是对自己每天工作的一个总结,对以往学习过的知识的一个回顾。
今天对之前了解的知识进行了一个简单的回顾。
1.交叉编译:主机PC机上编辑与编译工作。之后的代码放在目标板上执行。
2.linux进行嵌入式开发有三个步骤:
2.1使用JTAG下载bootloder到目标板。
2.2主机编辑linux内核,通过bootloader下载内核到目标板。
2.3主机编译应用程序,通过NFS烧录程序。
烧写,启动bootloader之后,既可以通过bootloader命令来烧写程序,就不每次都需要JTAG烧录程序了。
主机与目标板连接方式:JTAG,串口,网络
PC上的编译工具链gcc,ld,编译之后的代码只能在x86平台上运行。如果编译之后的代码需要在ARM平台上运行的时候,需要安装交叉编译工具,arm-linux-gcc。
源文件到可执行文件可以分为下面几个步骤:
预处理------------编译------------汇编--------------链接
预处理:就是处理#include,#define
编译:源代码到汇编
汇编:汇编带机器码
链接:链接各种库
在使用交叉编译器的时候,可以使用各种不同的选项去控制编译过程的进行。
makefile:目标:依赖
<tab>命令
命令就是把依赖文件转化为目标文件的过程,makefile文件决定了一整个工程的编译工作的进行。
写的东西比较基础,但是这是对自己学习过程的记录,希望自己可以坚持每天一篇!