嵌入式linux小项目实例 嵌入式开发项目实例

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

然后当我们进入高级学习阶段,需要在硬件设备上运行程序时,就需要继续构建交叉开发。交叉开发模式是指编译和运行不在同一台主机上,编辑和编译在PC上,运行程序在目标机器(开发板或产品)上。

嵌入式linux小项目实例 嵌入式开发项目实例

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

gcc(GNU C Compiler),大名鼎鼎的GNU的C/C++/Obj-C编译器 GCC通常自带Linux系统,不需要自己安装。让我们简单谈谈gcc的编译过程。gcc编译过程分为四个步骤:

预处理:gcc-ehlo.c-o hello.i编译:gcc-ehlo.c-o hello.i组装:gcc-ehlo.s-o hello.o链接):gcc hello.o -o hello有时候

-I:指定头文件的路径-L:指定库安装交叉编译工具链的路径。当我们第一次学习时,我们只在Linux主机下编译和运行我们的程序。gcc就够了,但是如果我们交叉运行,必须安装交叉编译工具链,交叉编译工具链,可以自己做。但是,我仍然建议您通过以下方式安装:

在~目录中创建一个文件夹嵌入式linux小项目实例 嵌入式开发项目实例

下载交叉编译工具链gcc-4.6.4.tar.xz(根据你需要的版本下载)cp到工具链目录解压嵌入式linux小项目实例 嵌入式开发项目实例

添加一个环境变量来修改配置文件/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工具进行烧写。

以上是老韩关于嵌入式Linux开发环境搭建的知识分享,欢迎大家再下方留言讨论!

本文来自胡巴网投稿,不代表胡巴网立场,如若转载,请注明出处:https://www.hu85.com/24946.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxxxx@qq.com 举报,一经查实,本站将立刻删除。