【北京迅为】iTOP-4412全能版使用手册-第十二章 Linux系统编程简介

iTOP-4412全能版采用四核Cortex-A9,主频为1.4GHz-1.6GHz,配备S5M8767 电源管理,集成USB HUB,选用高品质板对板连接器稳定可靠,大厂生产,做工精良。接口一应俱全,开发更简单,搭载全网通4G、支持WIFI、蓝牙、陀螺仪、CAN总线、RS485总线、500万摄像头等模块,稳定运行Android 4.0.3/Android 4.4操作,系统通用Linux-3.0.15+Qt操作系统(QT支持5.7版本),Ubuntu版本:12.04,接口智能分配 方便好用。


第三部分 嵌入式Linux系统编程教程

本部分结合视频,通过制作最小Linux文件系统和介绍基本概念来帮助初学者了解Linux,然后介绍了嵌入式Linux调试方法,文件IO编程,串口编程,进程操作,网络编程(TCP和UDP)等基础知识,为学习驱动和Qt做铺垫。

用到的软件工具如下

1)Ubuntu12.04.2 以及虚拟机

2)arm-2009q3 编译器

3)Notepad++编辑器超级终端

4)vim 编辑器

5)最小 linux 系统

视频资源:

ITOP-4412开发板视频教程\02-迅为电子Linux系统编程视频教程

第十二章 Linux系统编程简介

Linux的系统编程,也就是基于Linux内核之上的应用程序的编程。一般是使用 C 语言来开发,通过"系统调用"或 Linux 之上的库函数来直接调用 Linux 的内核资源,从而实现具体的业务逻辑和功能。

Linux的系统编程应用广泛,很多产品都是直接在 Linux 之上开发应用程序来完成的。当然我们也可以在 Linux之上运行 QT 或者 Android 等系统,然后在 QT 或者 Android 之上再开发对应的应用。相比而言,Linux内核之上的应用开发,也就是 Linux 系统编程则更加普遍,它也是 Linux 程序员必须掌握的技术。

通过 Linux 系统编程技术的学习,使得我们对 Linux 系统本身有着更加深入的认识,也为以后学习 Linux 驱动打下基础。

笼统来说,Linux 系统编程就是 Linux 上层应用的编程,而 Linux 驱动属于底层的技术。

另外,任何一个操作系统编程都需要对系统本身有一定的了解。

前面最基础的实验中,介绍了搭建 linux 环境,linux 命令行,gcc 编译,各种开发工具等等,都是必须掌握和熟悉使用的。

它们都是工具,俗话说"磨刀不误砍柴工",跟着手册走通一遍,以后新的环境就没有什么问题了。

Linux 系统编程的学习中,我们也会给大家介绍 Linux 的一些编程思想以及 Linux 中相关的 API 用法。

比如,Linux 最核心的思想是"一切皆文件",我们需要在学习过程中逐步理解这一重要思想。

Linux 中 API 包括:

ü 1)各种对文件的操作函数

ü 2)进程的 API(作为操作系统,学习多任务是必须的)

ü 3)Linux 的内部通信,进程以及线程间通信等

ü 4)网络通信(常规的 socket,udp,tcp 等等)

ü 5)Linux 的时间函数(Linux 有一套自己的时间接口)

C语言的基础很重要,很多用户就是因为 C 语言基础薄弱而难以入门,学习 C 语言主要是学习编程思想,而这需要一段时间的编程训练。计算机语言的编程思想都是一样的,掌握了一种其他也会触类旁通。

本章包括 60 个左右的实验,大家可以对照手册的目录来了解一下。下面简单做一下说明:

1)介绍最小 Linux 系统和 helloworld 小程序。也就是先来看一下这个最小操作系统是怎么来的,大概有一个了解,然后运行一下小程序,熟悉一下 Linux 系统编程的编译和运行。

2) Linux 中基本的概念。用户、用户组、权限等等,这些可能是大家在其它操作系统中不怎么注意到,但是在 Linux 中需要理解的概念。

3) Linux 中的文件部分。这部分贯穿整个手册,包括各种普通文件的基本操作,设备节点文件的操作,目录文件等等,几乎占了一半篇幅。

4) 串口应用的编程。这个实在太重要了,对于任何一份针对新手程序员的工作,几乎一半以上都会接到串口编程的任务!这个和单片机串口开发完全不一样!和其它任何操作系统的串口编程是类似的,好好学习这部分内容,新工作中绝对会直接用到!

5) 进程以及进程通信。实现多任务就靠这部分知识了,主要是一些系统接口。如果手册中提到系统函数或者系统接口或者系统 API,都是同一个意思。

6) 网络通信。Linux 下几乎支持所有的网络通信协议,非常强大!手册中选取了包括TFTP 服务器以及客户端,NFS 文件启动,TCP 以及 UDP,WEB 服务器等。

7) man 命令。授人以鱼不如授人以渔!程序员的基础修养中,看文档是必须的。Linux中的文档,内容很全面,我们可以使用 man 命令查看相关文档,类似于 window 和 Android的开发文档。

相关推荐
w2005122421 分钟前
K8S控制器管理
linux·云原生·容器·kubernetes
Dream Cosmos25 分钟前
Linux 多线程——线程互斥:从抢票问题到 Mutex 底层原理
linux·c++
玖石书43 分钟前
Ubuntu 更换 USTC 镜像源完整指南(AMD64 / AARCH64)
linux·运维·ubuntu
zbyyd1 小时前
Linux 进程间通信(IPC):信号、消息队列、共享内存与信号量详解
linux·运维·c语言
单片机仿真设计1 小时前
【proteus仿真设计】基于 STM32 单片机火灾监测报警系统设计(仿真图+程序)
stm32·单片机·嵌入式硬件·proteus·毕设
闲云野鹤在人间2 小时前
KVM虚拟化实战|CentOS‑Stream8 两种安装方式+模板制作+基础使用
linux·运维·服务器·centos
小张同学a.2 小时前
Docker 容器实战 2—— docker 仓库
linux·运维·服务器·docker·容器
Mount2562 小时前
STM32CubeIDE使用教程(自用)
stm32·嵌入式硬件
Android系统攻城狮2 小时前
Linux PipeWire深度解析之pw_core_get_registry调用流程与实战(九十一)
linux·运维·服务器·音频进阶·pipewire音频实战进阶
ACP广源盛139246256732 小时前
端侧 AI 硬件架构实践@ACP#中端边缘整机 PCIe 扩展与 IX7012 器件分析
大数据·数据库·人工智能·嵌入式硬件·开源·硬件架构