博主学习Linux也有几个月了,在这里为广大朋友整理出嵌入式linux的学习知识,希望对大家有所帮助,当然博主也只是个初入嵌入式领域的初学者,有问题的地方希望大家指出,在此祝大家学习顺利。

学习准备:

  • 需要 C语言基础
  • VMware下的ubuntu14.04(Linux基础篇-网络篇),博主用的是ubuntu18.04
  • 华清远见FS4412开发板(ARM篇-Linux驱动篇)- 可在 淘宝购买 或者 在 华清远见官网进行租赁

学习建议:

  • 本系列基础篇-网路篇通用,ARM篇-驱动篇可以根据教程方法应用于不同的开发板
  • 可以先看关于Linux的教学视频,在来看本系列
  • Linux学习内容很多,其中一个方面都可以作为一辈子的学习,建议学习时, 先总体在细分 先运行在原理

二、Linux基础篇

本篇讲解linux系统的常用操作以及使用的命令,通过下面5节内容可以对linux系统有一个初步掌握以及应用。

【Linux】基础篇一–linux系统常用命令
【Linux】基础篇二–软件包管理及shell命令
【Linux】基础篇三–linux shell命令
【Linux】基础篇四–shell脚本编程
【Linux】基础篇五–linux C语言高级编程
【Linux】基础篇六–Makefile

学习上面的六篇后,linux的学习算是入门了。

三、数据结构与算法基础

在学习linux应用前,需要对数据结构与算法有一个基础掌握,不仅是为了C语言的提高,因为后面的学习也运用了数据结构与算法的相关知识,当然您如果是这方面的高手可以跳过本篇往下学习。

【数据结构与算法】程序的内修

三、Linux应用篇

本篇讲解Linux上层的知识,学习完本篇可以对Linux上层应用制作有一个初步了解。

【Linux】应用篇一–标准IO
【Linux】应用篇二–标准IO的字符输入和输出
【Linux】应用篇三–流的刷新定位与格式化输入输出
【Linux】应用篇四–文件IO
【Linux】应用篇五–目录与库
【Linux】应用篇六–进程的创建与回收
【Linux】应用篇七–exec函数族和守护进程
【Linux】应用篇八–线程的创建与回收
【Linux】应用篇九–线程的取消与互斥
【LInux】应用篇十–条件变量和线程池
【Linux】应用篇十一–进程间的通信
【Linux】应用篇十二–共享内存
【Linux】应用篇十三–信号机制
【Linux】应用篇十四–消息队列与信号灯

建议学习本篇时,多使用 man手册 ,重点掌握IO、进程、线程的知识。

四、Linux网络篇

linux系统其中一个重要的作用,就是其帮我们实现了TCP、IP、MAC等网络协议,不用我们去实现具体协议内容,而是根据linux系统提供的函数接口,去进行网络开发,这样极大的降低了开发难度。

【Linux】网络篇一–网络基础
【Linux】网络篇二–TCP编程
【Linux】网络篇三–UDP编程
【Linux】网络篇四–IO多路复用
【Linux】网络篇五–编程扩展

以上就是linux系统应用上的编程。

五、ARM篇

在学习linux驱动前,需要了解ARM硬件的知识,因为 操作系统 是需要附着在硬件上,在本篇中,可以学习到嵌入式硬件的相关知识。

【Linux】ARM篇一–计算机基础与RAM处理器概论
【Linux】ARM篇二–寄存器组织与异常处理
【Linux】ARM篇三–汇编基础
【Linux】ARM篇四–简单使用汇编点亮LED灯
【Linux】ARM篇五–C语言寄存器封装与流水灯实验
【Linux】ARM篇六–UART串口通信实验
【Linux】ARM篇七–WDT看门狗实验
【Linux】ARM篇八–中断实验
【Linux】ARM篇九–ADC实验
【Linux】ARM篇十–RTC实验
【Linux】ARM篇十一–PWM实验

这里想说的一点是芯片硬件的很多东西都是通用的,学完本篇在去学stm32或者学完stm32在来学本篇,都会轻松很多。

六、Linux系统移植篇

本篇相当于驱动篇简易版,主要讲解了如何将linux内核放在硬件上跑起来。

【Linux】系统移植篇一–linux系统移植导学
【Linux】系统移植篇二–uboot烧写与使用
【Linux】系统移植篇三–内核安装加载与交叉编译工具链
【Linux】系统移植篇四–uboot移植
【Linux】系统移植篇五–内核、设备、根文件系统移植

七、Linux驱动篇

很多人说驱动学习很难,前期学习确实有些难,但到后面可以发现,很多地方都是相同的套路,因此学习要对配置模板有一个深入的练习,之后相同的地方可以直接复制粘贴。

【Linux】内核驱动篇一–编译方法
【Linux】内核驱动篇二–参数与依赖
【Linux】内核驱动篇三–字符设备驱动基础
【Linux】内核驱动篇四–IO模型
【Linux】内核驱动篇五–资源共享与同步
【Linux】内核驱动篇六–内核定时器与内存管理
【Linux】内核驱动篇七–设备树
【Linux】内核驱动篇八–中断处理
【Linux】内核驱动篇九–设备模型
【Linux】内核驱动篇十–平台总线驱动开发
【Linux】内核驱动篇十一–I2C总线式驱动开发
【Linux】内核驱动篇十二–input子系统

八、Linux特别篇

【Linux】特别篇–GTK界面设计
【Linux】特别篇–sqlite3数据库的使用

九、Linux项目篇

linux在线词典项目
linux下FTP服务器项目

教程 名称: linux 嵌入式 培训视频 教程 课程目录:【】 Linux 视频4-1-3( Linux 内核配置与编译)【】 Linux 视频5-1-3(简单字符设备 驱动 实例分析)【】 Linux 视频5-2-3(阻塞型字符设备 驱动 )【】 Linux 视频5-5-2(CS8900A网卡 驱动 程序分析)【】 Linux 视频培训4-2-2( Linux 进程与内核地址空间)【】 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。 我是1999年上的大学,物理专业。在大一时,我们班里普遍弥漫着对未来的不安,不知道 学习 了物理后出去能做什么。你当下的经历、当下的 学习 ,在未来的一天肯定会影响到你。毕业后我们也各自找到了自己的职业:出国深造转行做金融、留校任教做科研、设计芯片、写程序、创办公司等等,这一切都离不开在校时学到的基础技能(数学、IT、电子电路)、受过煅炼的自学能力。 所以,各位正在迷茫的在校生,各位正在尝试转行的程序员... 目录一、 嵌入式 Linux 开发 有那些内容二、日常工作中的 开发 流程是怎样的?三、搭建 开发 环境需要做那些事情? 一、 嵌入式 Linux 开发 有那些内容 嵌入式 :除了电脑之外,其他可以运行程序的设备都是 嵌入式 设备,所谓嵌入就是将CPU嵌入一个设备,让其具有运行程序的能力、计算能力,比如智能手表。所有的 单片机 开发 都是 嵌入式 设备, 嵌入式 Linux 就是指 嵌入式 设备上运行 Linux 操作系统,类似运行Windows系统的电脑。 嵌入式 Linux 系统,就相当于一套完整的PC软件系统。与Windows不同的是, Linux 的各 该目录下存放的是设备与设备接口的文件,设备文件是 Linux 中特有的文件类型,在 Linux 系统下,以文件的方式访问各种设备,即通过读写某个设备文件操作某个具体硬件。该目录下存放系统命令,即只有系统管理员(俗称最高权限的root)能够使用的命令,系统命令还可以存放在/usr/sbin,/usr/local/sbin目录下,/sbin目录中存放的是基本的系统命令,它们用于启动系统和修复系统等,与/bin目录相似,在挂接其他文件系统之前就可以使用/sbin,所以/sbin目录必须和根文件系统在同一个分区中。 本 教程 涵盖从裸机到 驱动 到应用的 嵌入式 学习 文章,持续更新。本 教程 旨在帮助以后像从事 嵌入式 行业的同学,以及想转行 嵌入式 的朋友快速入门。无论你是干 嵌入式 软件、还是 嵌入式 驱动 ,无论以后从事的具体行业是如何,都可以 学习 教程 内容。......... 一: Linux 基础 1、熟悉:①安装 Linux 操作系统  ② Linux 启动过程详解 ③ Linux 文件系统 ④ Linux 常用命令 2、认识:① Linux 服务能够独立安装 ② Linux 操作系统能够熟练使用  ③ Linux 的基本命令 3、设置:① Linux 的常用服务、安装 Linux 操作系统   ② Linux 基本命令实践 4、使用:① Linux 的环境变 开发 平台: 嵌入式 Linux 开发 通常在计算机上进行,使用主机操作系统(如 Linux 、Windows或Mac)作为 开发 环境。通过系统定制,可以实现系统的最优性能和资源利用。对于嵌入 linux ,了解不多,朴素地理解是将 linux 系统烧录到 嵌入式 设备,如stm32等,使得stm32上能够运行 linux 系统及其相关应用。通常所说的 嵌入式 Linux 开发 是指在 嵌入式 系统中使用 Linux 操作系统进行应用程序 开发 和系统定制的过程。 嵌入式 Linux 系统基于 Linux 内核,但通常会进行定制和裁剪,以适应特定设备的要求。