新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT > 程序开发 > 百科

如何搭建嵌入式linux开发环境?

时间:2019-06-14 10:49:21  来源:  作者:

对于初学者,只需要一台安装有Linux操作系统(比如Ubuntu)的PC即可,或者在windows下安装一个虚拟机软件(Vmware),虚拟一个Linux系统的主机,但是我建议还是安装真机,这样会迫使你必须在Linux环境下做任何事情,能让你更快的熟悉Linux操作系统。

那么当我们进入进阶阶段的学习时,需要在硬件设备上跑程序的时候,那我们就需要继续搭建交叉开发环境了。交叉开发模式即编译和运行不在同一台主机上,在PC机上编辑、编译,在目标机(开发板或者产品)上运行程序。

如何搭建嵌入式linux开发环境?

 

在主机上开发完程序,通常使用nfs网络挂载或者tftp将目标代码通过网线下载到目标板进行验证,但是,像我们当前项目的驱动开发,驱动都是集成在内核中的,所以每次都是在Ubuntu上将整个内核代码进行编译,然后通过usb将整个内核镜像产物进行烧写。

gcc(GNU C Compiler),大名鼎鼎的GNU的C/C++/Obj-C编译器

gcc一般Linux系统自带,不用自己安装,下面简单说下gcc编译的过程,GCC的编译流程分为四个步骤:

  1. 预处理(Pre-Processing):gcc -E hello.c -o hello.i
  2. 编译(Compiling):gcc -E hello.c -o hello.i
  3. 汇编(Assembling):gcc -c hello.s -o hello.o
  4. 链接(Linking):gcc hello.o -o hello

链接时有时候会加如下参数:

  • -I: 指定头文件的路径
  • -L: 指定库的路径

安装交叉编译工具链

当我们初学的时候仅仅在Linux主机下编译运行我们的程序,gcc就够了,但是如果交叉运行时,就必须安装交叉编译工具链,交叉编译工具链可以自己制作,但是我还是建议大家通过以下方式安装:

  • 在~目录下创建一个文件夹
如何搭建嵌入式linux开发环境?

 

  • 下载交叉编译工具链gcc-4.6.4.tar.xz(根据你需要的版本下载)cp到toolchain目录下进行解压
如何搭建嵌入式linux开发环境?

 

  • 添加环境变量

修改配置文件/etc/bash.bashrc,在最后一行添加:

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

改为:

如何搭建嵌入式linux开发环境?

 

-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工具进行烧写。
 



Tags:开发   点击:()  评论:()
声明:本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
对于初学者,只需要一台安装有Linux操作系统(比如Ubuntu)的PC即可,或者在windows下安装一个虚拟机软件(Vmware),虚拟一个Linux系统的主机,但是我建议还是安装真机,这样会迫使你必须在L...【详细内容】
2019-06-14 开发  点击:(2)  评论:(0)  加入收藏
Nginx简述Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。Nginx功能丰富,可作为HTTP Web服务器,也可...【详细内容】
2019-06-13 Nginx  点击:(4)  评论:(0)  加入收藏
现在的手机已经离不开我们的生活,我们每个人的手机中都有这样或者那样很多的APP,其中移动Web端APP可谓是占据了霸主的地位,人们也已经知道了HTML5开发语言有很大的优势,本篇文章...【详细内容】
2019-05-09 HTML5  点击:(17)  评论:(0)  加入收藏
凭借着跨平台,实时更新,无需安装,易于分发等众多优点,HTML5受到越来越多企业的青睐。而凭借着入门相对简单的优势,很多人编程初学者都选择学习HTML5。但对于初学者来说,学习HTML5...【详细内容】
2019-05-09 HTML5  点击:(15)  评论:(0)  加入收藏
前言何为技巧,意指表现在文学、工艺、体育等方面的巧妙技能。代码作为一门现代高级工艺,推动着人类科学技术的发展,同时犹如文字一样承托着人类文化的进步。每写好一篇文章,都...【详细内容】
2019-05-08 JavaScript, js  点击:(6)  评论:(0)  加入收藏
整理 | Rachel责编 | 阿司匹林出品 | AI科技大本营(ID: rgznai100)Go是Google开发的一种静态、强类型、编译型、并发型,并具有垃圾回收功能的类C编程语言。2009以开源项目的...【详细内容】
2019-04-30 Go  点击:(9)  评论:(0)  加入收藏
由于智能手机的普及以及越来越流行,html5也开始走向高潮,html5基本上算是一种代码的规范,是专门用来写网页框架结构的,同时它也是较新的规范,有着自己独有的标签和语法,让图片画面...【详细内容】
2019-04-29 HTML5  点击:(8)  评论:(0)  加入收藏
用任何编程语言来开发程序,都是为了让计算机干活,比如编写一篇文章,下载一首MP3等,而计算机干活的CPU只认识机器的指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。理论上任何语言干任何事...【详细内容】
2019-04-17   点击:(7)  评论:(0)  加入收藏
推荐资讯
相关文章
栏目更新
栏目热门
'); })();