嵌入式 Linux C 原生应用程序开发

嵌入式 Linux 是将日益流行的 Linux 操作系统进行裁剪与修改,使之能在嵌入式硬件上运行的一种操作系统,拥有许多开源的参考与移植,也出现了 RTLinux 等实时性更强的发行版本。嵌入式 Linux 应用开发过程当中,会大量运用到 C 语言去开发原生的 Linux 应用程序,从而获得较小的存储空间占用,以及更高的执行效率,并且能够兼顾较好的代码维护效率。

本文首先会介绍文件 IO进程与进程间通信多线程网络编程等 Linux 原生应用程序开发的内容,然后分门别类的对串口GPIOSPII2C 等常用的协议开发进行了介绍。阅读本文前需要具备 C 编程语言基础,并且理解 GNU 编译器、链接器、调试器的相关概念。

Kernel

Linux 是一款由C语言编写,符合POSIX可移植操作系统接口,Portable Operating System Interface)标准,并遵循GPL开源协议的多任务多用户类UNIX操作系统,其内核源代码使用Git托管在作者 Linus 创建的Linux Kernel 官方仓库当中,Linux 内核采用一体化的宏内核架构(VxWorks 和 Windows 属于微内核架构),集成了大量的设备驱动;同时采用模块化设计,可以在内核运行时进行模块的热加载/卸载。嵌入式开发当中,Linux 内核移植大致分为:体系结构级别、处理器级别、板级移植 3 个层次,其中板级移植较为常见。

内核版本

Linux 内核版本号通常由三段数字组成,以 2019 年 3 月 27 日释出的4.19.32版本内核为例,其中4为主版本号,6为次版本号(奇数表示开发版,偶数表示稳定版),28为修订号。

文件结构

文件 IO

进程

进程间通信

多线程

网络编程

GPIO

串口

SPI

I2C

嵌入式 Linux C 原生应用程序开发

http://www.uinio.com/Linux/Native/

作者

Hank

发布于

2018-07-13

更新于

2018-07-15

许可协议