您好,欢迎来到硕远科技网站!

最新动态

当前位置:网站首页 > 最新动态 > 正文

嵌入式工控机学习嵌入式Linux的基础有哪些

blog 2021-01-13 10 0

  汇编语言:阅读、编写Bootloader和Linux内核源代码(包括驱动程序)

  C语言:阅读、编写Bootloader和Linux内核源代码(包括驱动程序),阅读、编写Linux应用程序

  设计一个ARM+Linux设备,分为硬件设计和软件设计。硬件设计不用多说,软件设计是我们讨论的重点。基于ARM的嵌入式设备,实际上就是一种简化版的电脑加上特定功能的硬件。通用的PC在开机启动时,首先会运行主板上的BIOS,然后才启动操作系统;对应于ARM设备,开机时首先启动 Bootloader,初始化硬件,然后Bootloader将Linux内核(2MBytes左右)搬到内存中,然后Linux在内存中运行,接管整个设备的管理运行。所以学习嵌入式Linux,首先要学习Bootloader。

  Linux用的Bootloader种类比较多,都是开放源代码的,现在比较流行用u-boot。Bootloader的源代码是用汇编语言和C语言编写的,所以要有汇编语言和C语言基础,汇编语言代码在全部代码中仅占1%的比例,绝大部分代码是C语言代码。Bootloader代码经过编译器编译成ARM可执行的映像文件,大小在几十kBytes至几百kBytes。这个映像文件通过专用的接口(JTAG)和专用的软件烧写到ARM的 FlashROM上。在网上可以下载Bootloader源代码,因为每一种嵌入式设备的硬件不尽相同,嵌入式工控机,所以下载来的源代码不一定完全适用于当前的硬件,要根据硬件的配置对Bootloader源代码进行一些修改,这一步叫做Bootloader的移植。

  学完Bootloader移植,下一步就是Linux内核的移植和驱动程序的编写。与Bootloader类似,Linux内核的移植也是根据硬件情况对Linux内核源代码进行修改,让Linux内核能在硬件开发板上运行起来。Linux内核源代码可到相关网站下载,移植的过程主要是针对核心硬件(MPU、内存、FlashROM)修改Linux内核源代码,让Linux内核能在开发板上运行起来。Linux内核源代码修改完成后,经过编译生成 Linux内核映像文件,可在开发板的内存中运行;Linux内核映像文件并不大,一般在2MBytes左右。Linux内核移植完成后,虽然Linux 已可在硬件上运行,但是很多外围硬件(如LCD、键盘、鼠标等)并没有被驱动起来,所以下一步就是外围硬件的驱动程序编写。与PC上常用的Windows 操作系统不同,Linux的驱动程序是在内核里面的,不能像Windows那样方便地安装硬件驱动程序。Linux硬件驱动程序代码写好后,放在内核源代码中,再重新编译Linux内核,重新运行内核后才能在Linux上操作对应硬件。

  Linux的文件系统与Windows也不相同。Windows的内核和文件系统是一体的,在WIndows的资源管理器中可查看全部内核文件和应用程序文件。Linux内核是一个单独的文件,而所有应用程序却都放在一个称为文件系统的文件包内,这样做的好处是内核和应用程序是分割开的,利于内核的稳定,即使应用程序崩溃了,也不会影响到内核,在文件系统中处理应用文件时也不会误删除内核,所以Linux比Windows稳定得多。类似于 Windows中的磁盘分区,Linux内核映像占一个单独分区,文件系统必须在别的分区上。Linux内核运行以后,会寻找文件系统对应的那个包(分区),并挂载这个包,称作文件系统挂载。文件系统挂载上以后,可以用与Windows资源管理器类似的方法管理应用程序,但管理不了内核的任何细节。文件系统里的所有文件都是通过目录和文件方式管理的。

  再下来就是应用程序的编写了。Linux的应用程序分有图形显示的应用程序和无图形显示的应用程序。无图形显示的应用程序运行起来就像在 Windows的“命令提示符”界面中运行,不需要在显示屏上显示任何内容,或仅需要显示一些简单字符,这类程序在嵌入式领域用途广泛,因为很多嵌入式设备是没有LCD显示屏的。有图形显示的应用程序是在有LCD显示屏的嵌入式设备上运行的,例如手机。

  无图形显示的应用程序主要用C语言编写,直接利用Linux内核提供的编程接口完成各种功能。C语言程序可以实现很多功能,就算是多线程、多进程也都可轻松搞定。Linux内核提供的编程接口都是C语言可直接调用的函数,实际上Linux这种操作系统编程就是C语言编程。

  有图形的应用程序编写相对复杂一些。Linux本身的编程是基于C语言的,要想让Linux有图形显示,必须给Linux加上一个图形用户界面(GUI),Linux的GUI现在有很多,桌面Linux用的有Gnome、KDE等,嵌入式Linux用Qt、MiniGUI等。这些GUI实际上都是在内核提供的C编程接口的基础上封装一些图形接口,然后做成图形库供应用程序调用。Linux的GUI多是开放源代码的,也有一些商用GUI不开放源代码。我们可以下载GUI的源代码,然后用编译器编译成库文件,然后将这些库文件放到文件系统的特定目录下。GUI实际上是应用程序的一部分,而不属于 Linux内核。GUI提供的编程接口多为C/C++接口,所以图形应用程序常用C语言或C++语言编写。无风扇工控机,也有特殊的如Android,提供的是Java 编程接口。所以图形应用程序编写需要掌握C/C++编程语言(Java语言)。

  通过上面的介绍,想学嵌入式Linux的朋友们,可以根据自己的情况以及工作的要求,决定自己在嵌入式Linux上的发展方向,或去补充自己的不足,以便进一步学习嵌入式Linux。

  Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服

  概述 通常地,Linux操作系统如下图所示,由四大子系统组成: 用户应用层: 特定Linux系统上使....

  背景介绍 视频处理是人工智能应用中的一个重要方向,对于一款端上部署的AI加速产品,其视频接入能力是产....

  嵌入式Linux下的USB设备驱动技术 Linux以其稳定、高效、易定制、硬件支持广泛、源代码开放等特点,已在嵌入式领...

  Linux: bash: ./create_imx: 权限不够 问题解决

  linux终端在执行文件时,有时候会显示bash: ./create_imx: 权限不够 这是因为该文件没有执行权限 r&nbs...

  Linux: bash: ./create_imx: 权限不够 问题解决

  linux终端在执行文件时,有时候会显示bash: ./create_imx: 权限不够 这是因为该文件没有执行权限 r&nbs...

  在 Linux 上压缩文件的 5 种方法 在 Linux 系统上有很多可以用于压缩文件的工具,但它们的表现并不都是一样的,也不...

  linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的....

  本文档由20多个特聘高手精心撰写而成,近30个实验,100多个程序,韦东山老师花了20天亲自审核,修....

  我买了一本书《Linux网络编程》。 看到第11章高级套接字。有个例子,传递文件描述符。 其中,进程A根据用户输入...

  GDB是一套字符界面的程序集,可以用它在linux上调试C和C++程序,它提供了以下的功能:

  在linux运维(网络安全运维基础入门)中,存储提供了数据的基本保障,在整个架构中是非常重要的环节。....

  交换: 指同网络访问。两台机器连在同一个交换机上,配置同网段的不同ip就可以直接通迅 (这里不讨论三....

  Linux Audit守护进程是一个可以审计Linux系统事件的框架。在本文中,我们一起看看安装、配....

  在每年的年初,似乎都有一股疯狂的寻找提高工作效率方法的热潮。新年决心,渴望以正确的方式开始新的一年,....

  无论是学习编程,还是学习测试,还是学习运维,都少不了要和Linux打交道。但是初学的朋友们却总是卡在....

  现 在 刚 学 习 linux 的 新 手 一 般 都 是 在 windows 系 统 中 安 装 ....

  建设网站可以有多种选择,比如独立服务器,vps,虚拟主机。小型的企业,论坛和博客并没有很大的流量,那....

  我曾经对朋友们说过,我发表的每一篇文章,都会讲解一个c语言的知识点,让大家循序渐进地学习并掌握c这门....

  出现以上结果的原因在于 -name 只要求匹配当前目录中的文件(夹)名称,而 -regex 则是把....

  2020年了,不要再看网上那些老旧的文章还在教你使用手工生成 tags 的,请使用自动代码索引生成工....

  如果你使用过一段时间的 Linux 命令行,那么你可能对名为 less 的文本查看器很熟悉。当然,你....

  做工控2年多了,从51,PIC,到现在ARM一直都是裸奔的,最近要准备上Linux了,所以就想用UCOSIII打打基础...

  五一小长假已经过了一半了,感觉这个天气是格外的热,适合海边旅游。宅家看看关于MYD-YA157C的开...

  此外,用于PowerPC处理器的Linux内核中的KVM实现中的第二个缺陷也需要本地访问,以导致系统....

  因此在 Android Studio 3.6 中,除了引入一小部分功能和完善现有功能,开发团队还花费....

  这个伪设备驱动程序从总线开始查询PCI系统并且定位系统中所有的PCI设备和PCI桥。它建立一个可以....

  仅仅为了测试是否会宕机,所以我的所有的数据结构的hash值均是一样的,这样插入200个项的话,它们会....

  在CPU利用率没有达到100%的时候,利用率基本上等于负载,一旦当CPU利用率达到了100%的时候,....

  dmesg可以在应用程序crash掉时,显示内核中保存的相关信息。如下所示,通过dmesg命令可以查....

  导读: 嵌入式Linux开发大体上可以分为三个部分BSP开发、系统集成、应用开发,一般公司开发会有不....

  FA526是一颗有着广泛用途的32位RISC处理器。它包括一个同步CPU内核(core)、独立的指令....

  由于这是黑客可以很容易利用的一项重大利用,因此,谷歌还没有找到时间对其进行修补,这是一个很大的惊喜。....

  结束进程有很多方法,一般是kill,killall,kill等, 简单地使用kill命令是最安全的。

  本文主要讲述嵌入式Linux启动时间优化的秘密,我们继续上篇没有讲完的嵌入式Linux启动时间优化方....

  本文主要讲述嵌入式Linux启动时间优化的秘密,我们继续上篇没有讲完的嵌入式Linux启动时间优化方....

  本文主要讲述嵌入式Linux启动时间优化的秘密之三-内核,我们继续上篇没有讲完的嵌入式Linux启动....

  Linux系统诞生二十多年了,全球几百万开发者维护并使用Linux,堪称全人类智慧的结晶。为什么却始....

  指实实在在、存在的硬件专用独立主机或服务器设备,性能和稳定性都比较强,因此,价格也相对比较昂贵,需....

  特别说明:第一个步骤和第二个步骤我将直接跳过(查看原理图和芯片手册),因为这两者取决于我们的硬件平台....

  监听端口 ss -tlnp 查看哪些进程使用了监听端口 防火墙 systemctl....

  我们知道 Linux 下有非常多的命令,我们可以通过这些命令在 Shell 环境下与机器进行交互,那....

  SQLite作为一个嵌入式的数据库,主要的是程序小(200多K),速度快,支持ANSISQL-92的....

  第一届openEuler峰会2020在线日,华为服务器操作系统EulerOS正式开源,命名为openEuler,开源社区也正....

  在Windows中,我们经常使用ssh,vnc等工具对Linux操作系统进行远程控制,但是在linu....

  继1月份国产操作系统UOS v20版发布之后,深度的Deepin v20操作系统正式发布了,带来了全....

  前者实际上是一中 amp 架构,freertos 和 linux 是相互独立的两个操作系统,只会进行....

  LINUX下用的各种程序,和WINDOWS一样,开发LINUX本身,以及LINUX下的设备驱动。

  Linux桌面版推广不起来主要是应用生态系统无法构建,就拿国内来讲,安装一个Linux系统里面常见的....

  三月中旬,微软曾通过博客宣布,WSL2 将在 Windows 10 2004 版本中正式进入普遍可用....

  Linux很强大,它是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多....

  系统调用时操作系统的最小功能单位。根据不同的应用场景,不同的 Linux 发行版本提供的系统调用数量....

  Linux普及度不高主要说的是在桌面版里面,在服务器以及移动设备端有些非常大的占比,特别是移动端占比....

  Linux 内核现在已经增加了对 exFAT 的支持,同时它也没有放弃维护原有 FAT 文件系统驱动....

  首先说明:写这个第一个Linux设备驱动程序的目的是熟悉Linux驱动的框架以及编程流程,所以是通过....

  接口总线为一群互相连接的设备提供一种有效的通信方式,它是自动测试系统发展的标志,可以说接口总线技术发....

相关推荐

  • 祝福声声除旧岁��幻灵服务更上一层楼无风扇工控机

    祝福声声除旧岁��幻灵服务更上一层楼无风扇工控机

      ����新的一年中,您最想和谁说句话呢?异乡游子最想对家人报声平安;恋人最想互祝彼此的爱情天长地久;而我们《幻灵游侠》的玩家们则最想对游戏中的GM说声您辛苦了!  ����在给您准备的新年6道大餐中,“偷...

    2021-01-26 1 0

  • 无风扇工控机 5G智能终端发展迅速国产化主板遇发展良机

    无风扇工控机 5G智能终端发展迅速国产化主板遇发展良机

      联智通达自成立以来就专注于网络可视化产品与嵌入式融合计算产品的研发与销售,目前已经成长为行业的领军者。随着5G建设周期的到来以及政企客户对于网络安全的重视,未来5G国产化前途将不可限量。  随着全球安全网...

    2021-01-26 1 0

  • 贵州茅台要换帅 嵌入式工控机?但股价又双��创新高了!

    贵州茅台要换帅 嵌入式工控机?但股价又双��创新高了!

      中新经纬客户端1月6日电(魏薇)有着“股王”之称的贵州茅台又一次令价值投资者欢呼!1月6日盘中触及359.78元/股,这也是贵州茅台自上市以来的历史新高。  2017年的头一周,贵州茅台酒开启了“涨涨涨”...

    2021-01-26 1 0

  • 华硕400系主板已升级BIOS无风扇工控机

    华硕400系主板已升级BIOS无风扇工控机

      1月份对PC玩家来说还有很多惊喜,AMD、NVIDIA、无风扇工控机,Intel都会在CES上推出新一代产品,其中Intel针对桌面端的产品是11代酷睿,代号RocketLake-S。  CPU架构方面...

    2021-01-26 1 0

  • 泡泡堂]��无风扇工控机 ㄗs:下雨鳏 正在热烈招人中

    泡泡堂]��无风扇工控机 ㄗs:下雨鳏 正在热烈招人中

      ┗≡同志们:虽然我们都来自不同的地区,但是我们却都为了游戏带给我们的快乐而来玩游戏,交朋友.  ��ㄗs:下雨鳏是设在MU地区,无风扇工控机,但是我们也玩其它游戏.相信大家也是不只是玩一个游戏的吧!泡泡...

    2021-01-26 1 0

  • 无风扇工控机 产品目录

    无风扇工控机 产品目录

      标准工业级PC/104-Plus嵌入式主板,IE3845低功耗高性能处理器  导读:EPC97A1是一款标准工业级PC/104-Plus嵌入式主板,采用InBayTrail–IE3845低功耗高性能处理...

    2021-01-26 1 0

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论: