对于初学者,只需要一台安装有linux操作系统(比如Ubuntu)的PC即可,或者在windows下安装一个虚拟机软件(Vmware),虚拟一个Linux系统的主机,但是我建议还是安装真机,这样会迫使你必须在Linux环境下做任何事情,能让你更快的熟悉Linux操作系统 。
那么当我们进入进阶阶段的学习时,需要在硬件设备上跑程序的时候,那我们就需要继续搭建交叉开发环境了 。交叉开发模式即编译和运行不在同一台主机上,在PC机上编辑、编译,在目标机(开发板或者产品)上运行程序 。

文章插图
在主机上开发完程序,通常使用nfs网络挂载或者tftp将目标代码通过网线下载到目标板进行验证,但是,像我们当前项目的驱动开发,驱动都是集成在内核中的,所以每次都是在Ubuntu上将整个内核代码进行编译,然后通过usb将整个内核镜像产物进行烧写 。
gcc(GNU C Compiler),大名鼎鼎的GNU的C/C++/Obj-C编译器gcc一般Linux系统自带,不用自己安装,下面简单说下gcc编译的过程,GCC的编译流程分为四个步骤:
- 预处理(Pre-Processing):gcc -E hello.c -o hello.i
- 编译(Compiling):gcc -E hello.c -o hello.i
- 汇编(Assembling):gcc -c hello.s -o hello.o
- 链接(Linking):gcc hello.o -o hello
- -I: 指定头文件的路径
- -L: 指定库的路径
- 在~目录下创建一个文件夹

文章插图
- 下载交叉编译工具链gcc-4.6.4.tar.xz(根据你需要的版本下载)cp到toolchain目录下进行解压

文章插图
- 添加环境变量
export PATH=$PATH:/home/linux/toolchain/gcc-4.6.4/bin/
- 重启配置文件
source /etc/bash.bashrc
- 工具链测试
arm-none-linux-gnueabi-gcc -v、如果可以看到版本号,说明安装配置成功 。
tftp服务器的安装及配置tftp是用来下载远程文件的最简单网络协议,基于UDP来实现的,嵌入式linux的tftp开发环境包括两个方面:
一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持 。因为u-boot(bootloader的一种)本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了 。
- 修改文件(/etc/default/tftpd-hapa),开启tftp服务
sudo vi /etc/default/tftpd-hpa改为:

文章插图
-l:以standalone/listen 模式启动TFTP服务,而不是从inetd启动 ,standalone/listen模式是一次启动,运行期间一直驻留在内存中,优点是反应快,缺点是损耗了一定的系统资源,通常用于对实时性要求较高的地方,inetd启动方式相反,只在外部发出连接请求时才调用tftp进程,不占用系统资源 。
-c:可创建新文件,默认情况下,TFTP只允许覆盖原有文件,不能创建新文件 。
-s:改变TFTP启动的根目录,加了-s之后,客户端端在使用TFTP时,不再需要输入指定的目录 。
- 重启tftp服务器
sudo service tftpd-hpa restart
- 创建/tftpboot目录(在根目录下创建),并修改权限
sudo mkdir tftpbootsudo chmod 777 tftpboot
- 登录本机进行测试
tftp localhost //登录tftp > get xxx //xxx为你想要从服务器(/tftpboot目录)下载的文件tftp > put xxx //xxx为你想要往服务器(/tftpboot目录)发送的文件tftp > q //q表示退出如果采用烧写整个Linux kernel镜像的方法,通常使用usb将主机和目标板连接,然后根据不同的芯片厂商提供的烧写工具进行烧写,比如高通芯片使用Qfile工具进行烧写 。
推荐阅读
- 如何分析一条sql的性能?
- 如何给电脑硬盘设置密码
- 如何从单个服务器扩展到百万用户的系统?
- 程序员应该如何管理自己的电脑?
- 如何冲泡滇红茶 冲泡滇红茶方法要点和注意事项完整版
- 蒲公英根红茶如何做 蒲公英根红茶的制作方法过程
- 在一个千万级的数据库查寻中,如何提高查询效率?
- 八字合婚不好如何化解 合八字算婚姻
- 如何辨别滇红茶 鉴别滇红茶把握四要素
- 贵州遵义红红茶产地在哪,制作工艺怎么样及其滋味如何
