一、交叉开发模式
1、运行嵌入式Linux开发时分3个步骤:
(i)在主机上编译Bootloader,通过烧写工具烧入开发板
(ii)在主机上编译嵌入式Linux内核,通过串口连接写入单板
(iii)在主机上编译各种应用程序,通过网络连接写入单板
2、主机与目标板的连接分3种:
(i)通过烧写工具连接(JTAG、JLink、OpenJTAG)
JTAG需要插25针的并口接口,比较麻烦
JLink与OpenJTAG需要插USB接口,比较方便
(ii)通过串口连接(串口线)
(iii)通过网络连接(NFS,Samba,TFTP)
NFS提供Linux与Linux之间的共享
Samba提供windows与Linux之间的共享
其中的JTAG、JLink、OpenJTAG与串口线这四种硬件插入电脑前,都需要安装
(1)驱动程序
(2)控制程序(例如:JLink——J-Link ARM、 串口线——SecureCRT)
二、交叉编译工具
1、arm-linux-gcc选项
c文件--->预处理--->i文件--->编译--->s文件--->汇编--->o文件--->连接--->目标文件
(1)-E:预处理
(2)-S:编译
(3)-c:汇编
(4)-o file:生成目标文件
(5)-v:显示制作GCC工具自身时的配置命令
(6)-Wall:打开全部警告信息
(7)-g:生成调试信息供GDB使用
(8)-O、-O0、-O1、-O2、-O3:不同级别的编译优化
(9)静态库连接(.a):-llibrary
(10)动态库连接(so):library.so
(11)制作动态库:-share
(12)-nostartfiles:不连接系统标准启动文件
(13)-nostdlib:不连接系统标准启动文件和标准库文件
(14)-static:只支持静态连接
(15)-I:添加头文件搜索路径
(16)-L:添加库文件搜索路径
2、arm-linux-ld选项
(1)-Ttext:指定代码段的起始地址
(2)-Tdata:指定数据段的起始地址
(3)-Tbss:指定bss段的起始地址
(4)-Tscriptfile:连接脚本文件
3、arm-linux-objcopy选项
可以进行文件格式转换
4、Arm-linux-objdump选项
显示二进制文件信息
三、Makefile
1、格式如下:
目标(target):依赖(prerequiries)
命令(command)
2、常用Makefile函数
四、ARM汇编指令
1、常用ARM汇编指令
2、ATPCS规则(ARM程序和Thumb程序中子程序调用的规则)