嵌入式交叉编译环境
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
住 (3)当程序停止时,检查程序的状态 (4)动态地改变程序的参数,可以避过bug,继续
查找其他的问题
2021/3/8
信息工程学院
6 GDB调试器
• gdb <program> program也就是你的执行文件,一般在当前目录下
2021/3/8
信息工程学院
6 GDB调试器
• Gdb的命令可以使用help命令来查看,help命令只是列出 gdb的命令种类。
数据进行压缩后再传输。 (1)PuTTY (2)Secure Shell Client
2021/3/8
信息工程学院
4 Windows和Linux混合开发模式
(3)Windows下的文本编辑工具
① UltraEdit-32 ② Source Insight
2021/3/8
嵌入式交叉编译环境
1 1嵌入式交叉编译环境
GNU C 的使用 • 基本语法
gcc [options] [filenames] • 说明:
– 在gcc后面可以有多个编译选项,同时进行多个编译 操作。
• 当你不用任何选项编译一个程序时,GCC将会建立(假定 编译成功)一个名为a.out的可执行文件。
2021/3/8
信息工程学院
5 GCC编译器
序编译、连接成可执行文件。是GNU推出的功能 强大、性能优越的多平台编译器,可以在多种硬 体平台上编译出可执行程序,其执行效率与一般 的编译器相比平均效率要高20%~30%。
2021/3/8
信息工程学院
5 GCC编译器
• gcc的执行过程 使用gcc由C语言源代码文件生成可执行文件的过程要 经历四个相互关联的步骤∶
2021/3/8
嵌入式交叉编译环境
1 1嵌入式交叉编译环境
信息工程学院
2 2NFS服务
3 3Samba服务
4 4Windows和Linux混合开发模式
5 5GCC编译器
6 6GDB调试器
7 7Make工具的使用
2021/3/8
8 8嵌入式交叉编译环境的搭建
信息工程学院
4 Windows和Linux混合开发模式
➢NFS客户端 (1)设置客户端IP地址 (2)挂载共享目录
➢mount -t nfs 主机ip:共享目录 挂载点
➢mount -t nfs –o nolock 主机ip:/arm2410s /host
注意事项:关闭防火墙,主机与客户端在同一ip段
2021/3/8
2 NFS服务
具体配置步骤 • 服务器端 1)关闭防火墙
嵌入式交叉编译环境
1 1嵌入式交叉编译环境
信息工程学院
2 2NFS服务
3 3Samba服务
4 4Windows和Linux混合开发模式
5 5GCC编译器
6 6GDB调试器
7 7Make工具的使用
2021/3/8
8 8嵌入式交叉编译环境的搭建
信息工程学院
1嵌入式交叉编译环境简介
交叉开发环境:宿主机+调试通道+目标机 “在谁的上面编写运行在谁上的程序的问题”
2021/3/8
信息工程学院
5 GCC编译器
• -include file 功能相当于在代码中使用#include 例子用法: gcc -o example example.c -include /usr/include /stdio.h
• -I 用来指定头文件目录. /usr/include目录一般是不用指定的,但是如果头文件不在 /usr/include里我们就要用-I参数指定了,比如头文件放在 /myinclude目录里,那编译命令行就要加上 - Imyinclude参数了,如果不加你会得到一个“xxxx.h: No such file or directory”的错误。
➢ 服务器端提供共享的文件系统,必须把文件系 统输出(export)出去
➢ 客户端则要把文件系统载入到自己的系统下
➢ 使用NFS,需要在服务器端设置输出,在客户 端设置载入
2021/3/8
2 NFS服务
信息工程学院
➢NFS服务器端配置 (1)关闭防火墙 (2)配置共享目录 ----客户端主机IP范围 (3)主机IP (4)启动NFS服务
信息工程学院务
2)配置NFS服务器
信息工程学院
2021/3/8
2 NFS服务
2-1)设置共享目 录和主机范围
信息工程学院
2021/3/8
2 NFS服务
2-2)设置其他选项
信息工程学院
2021/3/8
2 NFS服务
2-3)设置其他选项
信息工程学院
2021/3/8
2 NFS服务
嵌入式交叉编译环境
1 1嵌入式交叉编译环境
信息工程学院
2 2NFS服务
3 3Samba服务
4 4Windows和Linux混合开发模式
5 5GCC编译器
6 6GDB调试器
7 7Make工具的使用
2021/3/8
8 8嵌入式交叉编译环境的搭建
2 NFS服务
信息工程学院
• NFS服务可以使网络上的同为Linux或Unix系统主 机共享文件系统。
• NFS可以将远程文件系统载入在本地文件系统下。 远程的硬盘、目录和光驱都可以变成本地主机 目录树中的一个子目录。载入后与处理自己的 文件系统一样使用即可。不只方便,也节省了 重复保存文件的空间、传输文件的时间及网络 带宽。
2021/3/8
2 NFS服务
信息工程学院
• NFS特点
➢ NFS系统也是使用C/S体系结构,就是有服务器 端与客户端
• 可以使用help<class>命令,显示class种类中的所有命令。 • 可以使用help<command>命令,查看command命令的帮
2021/3/8
嵌入式交叉编译环境
1 1嵌入式交叉编译环境
信息工程学院
2 2NFS服务
3 3Samba服务
4 4Windows和Linux混合开发模式
5 5GCC编译器
6 6GDB调试器
7 7Make工具的使用
2021/3/8
8 8嵌入式交叉编译环境的搭建
6 GDB调试器
信息工程学院
• Gdb(GNU debugger)是GNU开发组织发布的一 个强大的Unix/Linux下的程序调试工具。
4)启动Samba 服务
信息工程学院
2021/3/8
3 Samba服务
客户端 1)配置Windows 的IP 只要和你开的服务器 IP在同一网段就行
信息工程学院
2021/3/8
3 Samba服务
2)在Windows 上访问共享
信息工程学院
2021/3/8
3 Samba服务
3)访问成功
信息工程学院
信息工程学院
2 2NFS服务
3 3Samba服务
4 4Windows和Linux混合开发模式
5 5GCC编译器
6 6GDB调试器
7 7Make工具的使用
2021/3/8
8 8嵌入式交叉编译环境的搭建
信息工程学院
5 GCC编译器
• gcc(GNU C Compiler) ➢ 能将C、C++语言源程序、汇编语言程序和目标程
2021/3/8
信息工程学院
5 GCC编译器
gcc的执行过程(ESc)
• 四个相互关联的步骤∶源文件.c – 1、.c源文件
预处理 -E
-E
– 2、生成.i文件
编译
-S
– 3、生成文件.s
汇编
-c
– 4、生成.o的文件
链接
-S -c
– 5、生成可执行程序
2021/3/8
42
信息工程学院
5 GCC编译器
2021/3/8
信息工程学院
交叉编译就是在一个平台上生成另一个平台上的 可执行代码。
这里说的平台分别指的是主机平台Host和目标平 台Target。
就我们在ARM平台上移植Linux来说,Host是一台 一般的PC机,它通过串口或网络接口与Target通信 ;Target是arm-linux平台(这里说的arm指的是平台 所使用的CPU是ARM9处理器,linux指的是运行的 操作系统是Linux)。
混合开发模式的必要: 由于初学者对Linux系统不是很熟悉,通常会采 用Windows下强大的编辑工具,通过共享再在 Linux系统下进行编译、调试等工作。
(1)VMware虚拟机设置共享 (2)SSH客户端软件 (3)Windows下的文本编辑工具
2021/3/8
信息工程学院
4 Windows和Linux混合开发模式
信息工程学院
2021/3/8
3 Samba服务
信息工程学院
2021/3/8
3 Samba服务
2-4)服务器设置
信息工程学院
2021/3/8
3 Samba服务
2-4)服务器设置
信息工程学院
2021/3/8
3 Samba服务
3)配置Samba 服务器主机ip
信息工程学院
2021/3/8
3 Samba服务
• 是一个命令行的调试器,但gdb具有比很多图形 化调试器更强大的功能。
• 可以调试各种程序,包括C,C++,JAVA,PASCAL等
• 具有远程调试功能-对嵌入式非常有用
2021/3/8
信息工程学院
6 GDB调试器
• Gdb主要可以完成下面任务: (1)启动程序,并可以指定某些参数控制程序的
运行 (2)可让被调试的程序在用户所指定的断点处停
3 Samba服务
具体设置步骤 • 服务器端 1)关闭防火墙 (同NFS)
信息工程学院
2021/3/8
3 Samba服务
2)配置Samba 服务器
信息工程学院
2021/3/8
3 Samba服务
2-1)设置共享目录 和访问权限
信息工程学院
2021/3/8
3 Samba服务
2-2)设置共享目录 和访问权限
1、预处理(也称预编译,Preprocessing) ——对头文件(include)、预编译语句(如define等)进行分析[预 处理器cpp] 2、编译(Compilation) ——将预处理后的文件转换成汇编语言,生成文件.s[编译器ccl] 3、汇编(Assembly) ——由汇编变为目标代码(机器代码),生成.o的文件[汇编器as] 4、连接(Linking) ——连接目标代码,生成可执行程序[链接器ld]
gcc选项 • -o选项
你能用 -o 编译选项来为将产生的可执行文件指定一个文件 名来代替 a.out。 例:gcc –o count count.c • -c选项:告诉GCC仅把源代码编译为目标代码, 而取消连接 的步骤。缺省时GCC建立的目标代码文件有一个.o的扩展 名。 例:gcc –c test2.c • -E 只运行 C 预编译器。 • -S 编译选项告诉 gcc 在为 C 代码产生了汇编语言文件后停 止编译。
我们在Host上开发程序,并在这个平台上运行交 叉编译器Cross Complier,编译我们的程序,而由 Cross Complier生成的程序将在Target上运行。
信息工程学院
需要交叉编译的原因: 首先,在项目的起始阶段,目标平台尚未建 立,因此需要做交叉编译,以生成我们所需要 的Boot loader以及kernel(因为Bootloader和 kernel的源码需要经过交叉编译后才可以在目标 平台上运行); 其次,当目标平台能启动之后,由于目标平 台上资源的限制,当我们编译大型程序时,依 然可能需要用到交叉编译。
(1)VMware虚拟机设置共享-1
2021/3/8
信息工程学院
4 Windows和Linux混合开发模式
(1)VMware虚拟机设置共享-2
➢ 解压缩文件 tar zxvf VMwareTools-5.0.0-13124.tar.gz –C /home
➢ 安装文件 进入解压缩后的文件夹:cd vmware-tools-distrib/ 安装:./vmware-install.pl
3)设置NFS 服务器的IP
信息工程学院
2021/3/8
2 NFS服务
4)启动NFS服务
信息工程学院
2021/3/8
2 NFS服务
• 客户端 1)配置ip
信息工程学院
2021/3/8
2 NFS服务
2)挂载NFS
信息工程学院
2021/3/8
嵌入式交叉编译环境
1 1嵌入式交叉编译环境
信息工程学院
2 2NFS服务
3 3Samba服务
4 4Windows和Linux混合开发模式
5 5GCC编译器
6 6GDB调试器
7 7Make工具的使用
2021/3/8
8 8嵌入式交叉编译环境的搭建
信息工程学院
3 Samba服务
• Samba服务可实现Windows和Linux不同系统间 交换文件共享。
2021/3/8
2021/3/8
信息工程学院
4 Windows和Linux混合开发模式
(1)VMware虚拟机设置共享-3 ➢ 设置共享
2021/3/8
信息工程学院
4 Windows和Linux混合开发模式
(2)SSH客户端软件
SSH的英文全称:Secure Shell SSH把所有传输的数据进行加密,并且SSH客户端软件可将传输的
查找其他的问题
2021/3/8
信息工程学院
6 GDB调试器
• gdb <program> program也就是你的执行文件,一般在当前目录下
2021/3/8
信息工程学院
6 GDB调试器
• Gdb的命令可以使用help命令来查看,help命令只是列出 gdb的命令种类。
数据进行压缩后再传输。 (1)PuTTY (2)Secure Shell Client
2021/3/8
信息工程学院
4 Windows和Linux混合开发模式
(3)Windows下的文本编辑工具
① UltraEdit-32 ② Source Insight
2021/3/8
嵌入式交叉编译环境
1 1嵌入式交叉编译环境
GNU C 的使用 • 基本语法
gcc [options] [filenames] • 说明:
– 在gcc后面可以有多个编译选项,同时进行多个编译 操作。
• 当你不用任何选项编译一个程序时,GCC将会建立(假定 编译成功)一个名为a.out的可执行文件。
2021/3/8
信息工程学院
5 GCC编译器
序编译、连接成可执行文件。是GNU推出的功能 强大、性能优越的多平台编译器,可以在多种硬 体平台上编译出可执行程序,其执行效率与一般 的编译器相比平均效率要高20%~30%。
2021/3/8
信息工程学院
5 GCC编译器
• gcc的执行过程 使用gcc由C语言源代码文件生成可执行文件的过程要 经历四个相互关联的步骤∶
2021/3/8
嵌入式交叉编译环境
1 1嵌入式交叉编译环境
信息工程学院
2 2NFS服务
3 3Samba服务
4 4Windows和Linux混合开发模式
5 5GCC编译器
6 6GDB调试器
7 7Make工具的使用
2021/3/8
8 8嵌入式交叉编译环境的搭建
信息工程学院
4 Windows和Linux混合开发模式
➢NFS客户端 (1)设置客户端IP地址 (2)挂载共享目录
➢mount -t nfs 主机ip:共享目录 挂载点
➢mount -t nfs –o nolock 主机ip:/arm2410s /host
注意事项:关闭防火墙,主机与客户端在同一ip段
2021/3/8
2 NFS服务
具体配置步骤 • 服务器端 1)关闭防火墙
嵌入式交叉编译环境
1 1嵌入式交叉编译环境
信息工程学院
2 2NFS服务
3 3Samba服务
4 4Windows和Linux混合开发模式
5 5GCC编译器
6 6GDB调试器
7 7Make工具的使用
2021/3/8
8 8嵌入式交叉编译环境的搭建
信息工程学院
1嵌入式交叉编译环境简介
交叉开发环境:宿主机+调试通道+目标机 “在谁的上面编写运行在谁上的程序的问题”
2021/3/8
信息工程学院
5 GCC编译器
• -include file 功能相当于在代码中使用#include 例子用法: gcc -o example example.c -include /usr/include /stdio.h
• -I 用来指定头文件目录. /usr/include目录一般是不用指定的,但是如果头文件不在 /usr/include里我们就要用-I参数指定了,比如头文件放在 /myinclude目录里,那编译命令行就要加上 - Imyinclude参数了,如果不加你会得到一个“xxxx.h: No such file or directory”的错误。
➢ 服务器端提供共享的文件系统,必须把文件系 统输出(export)出去
➢ 客户端则要把文件系统载入到自己的系统下
➢ 使用NFS,需要在服务器端设置输出,在客户 端设置载入
2021/3/8
2 NFS服务
信息工程学院
➢NFS服务器端配置 (1)关闭防火墙 (2)配置共享目录 ----客户端主机IP范围 (3)主机IP (4)启动NFS服务
信息工程学院务
2)配置NFS服务器
信息工程学院
2021/3/8
2 NFS服务
2-1)设置共享目 录和主机范围
信息工程学院
2021/3/8
2 NFS服务
2-2)设置其他选项
信息工程学院
2021/3/8
2 NFS服务
2-3)设置其他选项
信息工程学院
2021/3/8
2 NFS服务
嵌入式交叉编译环境
1 1嵌入式交叉编译环境
信息工程学院
2 2NFS服务
3 3Samba服务
4 4Windows和Linux混合开发模式
5 5GCC编译器
6 6GDB调试器
7 7Make工具的使用
2021/3/8
8 8嵌入式交叉编译环境的搭建
2 NFS服务
信息工程学院
• NFS服务可以使网络上的同为Linux或Unix系统主 机共享文件系统。
• NFS可以将远程文件系统载入在本地文件系统下。 远程的硬盘、目录和光驱都可以变成本地主机 目录树中的一个子目录。载入后与处理自己的 文件系统一样使用即可。不只方便,也节省了 重复保存文件的空间、传输文件的时间及网络 带宽。
2021/3/8
2 NFS服务
信息工程学院
• NFS特点
➢ NFS系统也是使用C/S体系结构,就是有服务器 端与客户端
• 可以使用help<class>命令,显示class种类中的所有命令。 • 可以使用help<command>命令,查看command命令的帮
2021/3/8
嵌入式交叉编译环境
1 1嵌入式交叉编译环境
信息工程学院
2 2NFS服务
3 3Samba服务
4 4Windows和Linux混合开发模式
5 5GCC编译器
6 6GDB调试器
7 7Make工具的使用
2021/3/8
8 8嵌入式交叉编译环境的搭建
6 GDB调试器
信息工程学院
• Gdb(GNU debugger)是GNU开发组织发布的一 个强大的Unix/Linux下的程序调试工具。
4)启动Samba 服务
信息工程学院
2021/3/8
3 Samba服务
客户端 1)配置Windows 的IP 只要和你开的服务器 IP在同一网段就行
信息工程学院
2021/3/8
3 Samba服务
2)在Windows 上访问共享
信息工程学院
2021/3/8
3 Samba服务
3)访问成功
信息工程学院
信息工程学院
2 2NFS服务
3 3Samba服务
4 4Windows和Linux混合开发模式
5 5GCC编译器
6 6GDB调试器
7 7Make工具的使用
2021/3/8
8 8嵌入式交叉编译环境的搭建
信息工程学院
5 GCC编译器
• gcc(GNU C Compiler) ➢ 能将C、C++语言源程序、汇编语言程序和目标程
2021/3/8
信息工程学院
5 GCC编译器
gcc的执行过程(ESc)
• 四个相互关联的步骤∶源文件.c – 1、.c源文件
预处理 -E
-E
– 2、生成.i文件
编译
-S
– 3、生成文件.s
汇编
-c
– 4、生成.o的文件
链接
-S -c
– 5、生成可执行程序
2021/3/8
42
信息工程学院
5 GCC编译器
2021/3/8
信息工程学院
交叉编译就是在一个平台上生成另一个平台上的 可执行代码。
这里说的平台分别指的是主机平台Host和目标平 台Target。
就我们在ARM平台上移植Linux来说,Host是一台 一般的PC机,它通过串口或网络接口与Target通信 ;Target是arm-linux平台(这里说的arm指的是平台 所使用的CPU是ARM9处理器,linux指的是运行的 操作系统是Linux)。
混合开发模式的必要: 由于初学者对Linux系统不是很熟悉,通常会采 用Windows下强大的编辑工具,通过共享再在 Linux系统下进行编译、调试等工作。
(1)VMware虚拟机设置共享 (2)SSH客户端软件 (3)Windows下的文本编辑工具
2021/3/8
信息工程学院
4 Windows和Linux混合开发模式
信息工程学院
2021/3/8
3 Samba服务
信息工程学院
2021/3/8
3 Samba服务
2-4)服务器设置
信息工程学院
2021/3/8
3 Samba服务
2-4)服务器设置
信息工程学院
2021/3/8
3 Samba服务
3)配置Samba 服务器主机ip
信息工程学院
2021/3/8
3 Samba服务
• 是一个命令行的调试器,但gdb具有比很多图形 化调试器更强大的功能。
• 可以调试各种程序,包括C,C++,JAVA,PASCAL等
• 具有远程调试功能-对嵌入式非常有用
2021/3/8
信息工程学院
6 GDB调试器
• Gdb主要可以完成下面任务: (1)启动程序,并可以指定某些参数控制程序的
运行 (2)可让被调试的程序在用户所指定的断点处停
3 Samba服务
具体设置步骤 • 服务器端 1)关闭防火墙 (同NFS)
信息工程学院
2021/3/8
3 Samba服务
2)配置Samba 服务器
信息工程学院
2021/3/8
3 Samba服务
2-1)设置共享目录 和访问权限
信息工程学院
2021/3/8
3 Samba服务
2-2)设置共享目录 和访问权限
1、预处理(也称预编译,Preprocessing) ——对头文件(include)、预编译语句(如define等)进行分析[预 处理器cpp] 2、编译(Compilation) ——将预处理后的文件转换成汇编语言,生成文件.s[编译器ccl] 3、汇编(Assembly) ——由汇编变为目标代码(机器代码),生成.o的文件[汇编器as] 4、连接(Linking) ——连接目标代码,生成可执行程序[链接器ld]
gcc选项 • -o选项
你能用 -o 编译选项来为将产生的可执行文件指定一个文件 名来代替 a.out。 例:gcc –o count count.c • -c选项:告诉GCC仅把源代码编译为目标代码, 而取消连接 的步骤。缺省时GCC建立的目标代码文件有一个.o的扩展 名。 例:gcc –c test2.c • -E 只运行 C 预编译器。 • -S 编译选项告诉 gcc 在为 C 代码产生了汇编语言文件后停 止编译。
我们在Host上开发程序,并在这个平台上运行交 叉编译器Cross Complier,编译我们的程序,而由 Cross Complier生成的程序将在Target上运行。
信息工程学院
需要交叉编译的原因: 首先,在项目的起始阶段,目标平台尚未建 立,因此需要做交叉编译,以生成我们所需要 的Boot loader以及kernel(因为Bootloader和 kernel的源码需要经过交叉编译后才可以在目标 平台上运行); 其次,当目标平台能启动之后,由于目标平 台上资源的限制,当我们编译大型程序时,依 然可能需要用到交叉编译。
(1)VMware虚拟机设置共享-1
2021/3/8
信息工程学院
4 Windows和Linux混合开发模式
(1)VMware虚拟机设置共享-2
➢ 解压缩文件 tar zxvf VMwareTools-5.0.0-13124.tar.gz –C /home
➢ 安装文件 进入解压缩后的文件夹:cd vmware-tools-distrib/ 安装:./vmware-install.pl
3)设置NFS 服务器的IP
信息工程学院
2021/3/8
2 NFS服务
4)启动NFS服务
信息工程学院
2021/3/8
2 NFS服务
• 客户端 1)配置ip
信息工程学院
2021/3/8
2 NFS服务
2)挂载NFS
信息工程学院
2021/3/8
嵌入式交叉编译环境
1 1嵌入式交叉编译环境
信息工程学院
2 2NFS服务
3 3Samba服务
4 4Windows和Linux混合开发模式
5 5GCC编译器
6 6GDB调试器
7 7Make工具的使用
2021/3/8
8 8嵌入式交叉编译环境的搭建
信息工程学院
3 Samba服务
• Samba服务可实现Windows和Linux不同系统间 交换文件共享。
2021/3/8
2021/3/8
信息工程学院
4 Windows和Linux混合开发模式
(1)VMware虚拟机设置共享-3 ➢ 设置共享
2021/3/8
信息工程学院
4 Windows和Linux混合开发模式
(2)SSH客户端软件
SSH的英文全称:Secure Shell SSH把所有传输的数据进行加密,并且SSH客户端软件可将传输的