您的位置  > 互联网

嵌入式linux系统应用开发的详细流程及注意事项!

嵌入式linux系统应用开发

一、简介

嵌入式系统开发包括三个部分:内核、驱动程序和应用程序。 今天主要讲应用程序开发,内核和驱动就不多讲了。 嵌入式Linux系统是Linux内核的移植。 使用相应的编译器编译Linux内核并下载到存储芯片中。 然后需要创建一个基本的根文件系统,以便系统可以运行。 与PC机相比系统相对简单。

2、应用开发环境

网上有很多视频教程。 一般来说,第一课会教你如何搭建开发环境。 让我在这里简单地列出它们:

1.安装一个Linux系统的虚拟机,我用的是.

2.然后为虚拟机安装相应的交叉编译工具。

3、安装常用工具并配置:nfs、tftp、ftp、ssh服务、samba服务、vi必要配置。

4. 要在板上使用nfs,还需要为板子的linux内核配置nfs-和nfs文件系统支持。

5.我喜欢在板上移植一些有用的工具,例如:ftp、ssh服务(用于终端登录和文件传输)等。

虚拟机登录:安装了ssh服务后,就可以使用一些终端软件通过ssh登录,这样就不需要在虚拟机的桌面上使用了。

共享文件:我喜欢使用samba和共享目录,将共享目录映射到网盘,使用起来比较方便。 我觉得这种分享非常方便,比使用一些分享软件方便多了。 挂载为网络盘后,和操作本地盘一样,更加直观。

3. 总体开发流程

在一些视频教程中,一般介绍的开发流程是这样的:编辑代码,在虚拟机中使用交叉编译器交叉编译代码,然后通过tftp/ftp下载到板子上,或者用nfs 并运行测试; 刚开始的时候是这样,但是如果你在公司里做实际的产品开发,效率会很低。

这是我通常的流程:

1. 在下载或虚拟机中编辑代码。 代码编辑器一般使用 , , 等。

2. 编写代码时,注意在与底层硬件交互的地方添加编译选项。 这样,编译开关就可以控制是否启用硬件访问的代码。

3、第二步所做的工作将会在这一步中发挥作用。 中,会写成根据不同的编译选项选择不同的编译器。 如果使用中的编译器,那么就把硬件相关的交互屏蔽掉,意味着编译出来的程序可以直接在网上运行。 这样我们就可以在网上做代码单元测试、程序逻辑验证、运行性能测试等。 80%的问题都可以在这里解决。

4、测试没有问题后,交叉编译,通过nfs共享目录,在板子上运行调试。

这实际上减少了下载程序到板子的过程,将逻辑验证和代码单元功能验证放在里面来验证测试,而且在内部使用GDB进行调试比在板子上更方便。

4、调试

最常用、最有效的方法就是添加打印信息并保留日志! 基本上可以解决80%的问题。 如果程序异常挂起(如段错误等),程序挂起时一般没有提示信息,也不确定挂在哪里。 这类问题通常使用GDB来跟踪,或者在代码中添加信息输出代码。 。

嵌入式Linux系统应用程序开发可能比内核和驱动程序开发更容易上手。 毕竟应用层开发并没有那么多高级的东西。 应用层与具体业务密切相关,因此应用开发工作量较大,需求变化频繁。 然而,应用程序开发中有很多技巧可以大大提高工作效率; Linux应用程序可以使用C++开发。 开发时,利用C++的面向对象思想以及C++11之后的新特性和新功能,提供了许多类似于Java中的有用功能,可以大大提高应用程序开发的效率。

综上所述,相信大家已经知道什么是嵌入式Linux系统了。 如果您想了解更多Linux知识,请继续关注中培伟业。