怎么进行嵌入式linux系统应用开发

技术怎么进行嵌入式linux系统应用开发这篇文章给大家介绍怎么进行嵌入式linux系统应用开发,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1 关于嵌入式系统  平时大家说的嵌入式其实范围比较广的,

本文介绍了如何开发嵌入式linux系统的应用。内容非常详细。感兴趣的朋友可以参考一下,希望对大家有所帮助。

1 关于嵌入式系统

大家平时谈论的嵌入式系统范围很广,是一个可以以应用为中心进行软硬件定制和开发的专用系统。硬件平台可以是单片机或ARM系列处理器。一般都是单片机直接裸奔程序,但是现在基于单片机的系统很多。最近流行的开源系统RT-Thread做得不错。基于ARM架构的处理器大多使用linux系统作为软件平台,部分设备使用Android系统(内核也是Linux)。

2 嵌入式linux系统应用开发

2.1 简介

嵌入式系统开发包括内核、驱动和应用三个部分。今天主要讲应用程序开发,不讲内核和驱动。嵌入式linux系统是移植的linux内核,使用相应的编译器编译下载到内存芯片,然后需要一个基本的根文件系统,这样系统才能运行,相对于PC上的系统来说比较简单。

00-1010现在网上有很多视频教程,第一节课通常教你如何搭建开发环境。我在这里简单列举一下:

安装一个linux虚拟机,我用的是Ubuntu。

然后将相应的交叉编译工具安装到虚拟机上。

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

要在主板上使用nfs,需要将主板的linux内核配置为支持nfs客户端和nfs文件系统;

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

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

共享文件:我喜欢通过samba与windows共享目录,并将共享目录映射到windows下的网络磁盘,使用起来也很方便;我觉得这个分享很方便,比用一些共享软件更方便。作为网络磁盘安装就像操作本地磁盘一样直观。

2.2 应用开发环境

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

以下是我通常的流程:

在windows或虚拟机中,代码编辑器一般使用sourceInsight、VSCode、Eclipse等。

编写代码时,注意在与底层硬件交互的地方增加编译选项,以控制硬件访问的代码是否通过编译开关启用。

第二步做的工作在这一步起到了作用。在Makefile中,会写着要根据不同的编译选项选择不同的编译器。如果使用Ubuntu中的编译器,会屏蔽掉硬件相关的交互,这样编译好的程序就可以直接在Ubuntu上运行,这样我们就可以在Ubuntu上做代码单元测试、程序逻辑验证和运行性能测试。80%的问题可以在Ubuntu中解决。

在Ubuntu中测试后,交叉编译,通过nfs共享目录,在板上运行调试。

其实这是为了减少程序下载到板卡的过程,把逻辑验证和代码单元功能验证放在Ubuntu中验证测试。此外,在Ubuntu中用GDB调试比在板上调试更方便。

00-1010最常见最有效的方法就是打印信息,做好日志!基本上80%的问题都能解决。如果程序异常挂起(如段落错误等。),程序通常在没有任何提示信息的情况下挂起,不确定挂在哪里。对于这样的问题,通常使用GDB跟踪,或者将回溯信息输出的代码添加到代码中。

2.3 一般开发流程

嵌入式linux系统应用开发,相比内核和驱动开发,可能更容易上手。毕竟应用层开发没有那么多高级的东西。应用层与具体业务紧密相关,导致应用开发工作量大,需求变化频繁的风险。但是应用开发中有很多技巧,可以大大提高工作效率。Linux应用程序可以使用C进行开发,并且通过使用C的面向对象思想和C 11之后的新特性和新功能,提供了许多类似于Java中的有用功能,可以大大提高应用程序的开发效率。

如何开发嵌入式linux系统应用就分享到这里了,希望。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/40180.html

(0)

相关推荐

  • 晋陶渊明独爱菊,虽艳无俗姿太皇真富贵的完整诗句

    技术晋陶渊明独爱菊,虽艳无俗姿太皇真富贵的完整诗句爱国诗人一心想着报效祖国,杀敌立功晋陶渊明独爱菊。但南宋小朝廷不容许他这样的爱国将士的积极抗战活动。当时王炎因之调离川陕,陆游也被解除成都安抚使参议官之职,正是“渭水岐山

    生活 2021年10月29日
  • awk常用选项有哪些

    技术awk常用选项有哪些小编给大家分享一下awk常用选项有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.awk 的语法 awk

    攻略 2021年11月23日
  • 2019年上映的电影,最近一两年有哪些好看的电影

    技术2019年上映的电影,最近一两年有哪些好看的电影《美人皮》是由韩栋、张予曦、王艺曈、李若天、肖向飞、陶慧敏主演的悬疑奇幻电影,由蒲松龄原著《聊斋志异.连城》改编2019年上映的电影。谁应了谁的劫谁又变成了谁的执念。一

    生活 2021年10月29日
  • sparksql查询的数据保存(sparksql命令行怎么保存数据)

    技术Spark SQL数据加载和保存的实例分析今天就跟大家聊聊有关Spark SQL数据加载和保存的实例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、前置

    攻略 2021年12月17日
  • 简述namenode工作机制(namenode的重要性是什么)

    技术Namenode HA 知识点有哪些这篇文章主要介绍“Namenode HA 知识点有哪些”,在日常操作中,相信很多人在Namenode HA 知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法

    攻略 2021年12月23日
  • 如何用MEGA构建进化树

    技术如何用MEGA构建进化树如何用MEGA构建进化树,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。年引用量超大的 MEGA软件,今天小编就先

    攻略 2021年12月10日