目录

一,嵌入式系统

二,嵌入式系统开发在物联网开发中的作用

三,嵌入式系统组成结构

1,硬件和软件

2,硬件层

3,中间层

4,软件层

5, 功能层与执行装置

四,嵌入式系统特点

五,嵌入式处理器

1,分类

2,嵌入式微处理器

3,微控制器

4,DSP(digital signal processor

5,SOC

六,嵌入式Linux操作系统

1,概念

2. Linux的主要特点

4,设备驱动

5,Arch-体系结构

6,MMU:内存管理单元

7,VFS-虚拟文件系统

8,基本概念

七, Linux内核目录结构

八,嵌入式系统

1,嵌入式Linux操作系统的优势

2,嵌入式系统开发流程

3,生成代码阶段

4,交叉编译与链接

九,软件获取


一,嵌入式系统

嵌入式系统是为满足某些特定功能需要而内嵌在设备、装置、机器内部的一种专用的计算机系统

三大件:处理器,存储器,IO+外设

USB:UNIVERASL SERIAL BUS通用串行总线。

以华为华为NB-IoT智能停车方案为例

 二,嵌入式系统开发在物联网开发中的作用

应用层:JAVA、C/C++;HTTP、HTTPS、MQTT、Coap、异步IO、内存数据库、大数据、云计算

网络层: LoRA、NB-IOT、5G公众移动通信网(第三层硬件);TCP/IP

边缘层:边缘计算(雾计算)

感知层:MCU(微控制器)+(EOS)embeded operation system+海量传感器+通信模块(LoRA、NB-IOT、5G)+电源管理芯片(电池供电、低功耗)+在线升级OTA+信号采集、处理、控制软(嵌入式软件)

三,嵌入式系统组成结构

 1,硬件和软件

(1)硬件:嵌入式处理器、存储系统、(由IO连接)外设、时钟、复位、电源

三大件全部集成:嵌入式微控制器(单片机);

三大件部分集成:嵌入式微处理器+IO集成在一个芯片内部,存储外置

(2)软件:嵌入式操作系统(可裁剪移植的、定制开发)、应用软件(专用性、固化)

嵌入式系统通常由嵌入式处理器、外围设备、嵌入式操作系统和应用软件等几大部分组成。

 2,硬件层

  硬件层由嵌入式处理器、存储器系统、通用设备接口和I/O接口(A/DD/AI/O)组成。在一片嵌入式微处理器基础上增加电源电路、时钟电路和存储器电路(ROMSDRAM),就构成了七个嵌入式核心控制模块。其中,操作系统和应用程序都可以固化在ROM中。

3,中间层

中间层也称为硬件抽象层或板极支持包,它把系统软件与底层硬件部分隔离。板极支持包对上具有操作系统相关性,对下具有硬件相关性。设计一个完整的中间层需要完成两部分工作:
  
嵌入式系统的初始化,它包括片级初始化、板级初始化和系统级初始化。
  
设计硬件相关的设备驱动

4,软件层

软件层由多任务操作系统(OS)、文件系统、图形用户接口(GUI)、网络系统及通用组件模块组成。OS是嵌入式应用软件的基础和开发平台;是一段嵌入式目标代码中的程序,系统复位后首先执行,相当于用户的主程序,用户的其他应用程序都建立在OS之上;是一个标准的内核,它将CPU时钟、中断、I/O、定时器等资源都封装起来,留给用户的是一个标准的API函数接口。

5, 功能层与执行装置

 功能层由基于OS开发的应用程序组成,用来完成对被控对象的控制功能。功能层是面向被控制对象和用户的,为方便用户操作,往往需要提供一个友好的人机界面。执行装置是指那些可以接受嵌入式计算机系统发出控制命令,执行所规定的操作或任务的设备和装置。在不同应用领域中,嵌入式系统的执行装置一般是不同的,应该根据具体的应用场合和系统所要求实现的功能选择不同的设备和执行装置。

四,嵌入式系统特点

①专用、软硬件可剪裁可配置

②低功耗、高可靠性、高稳定性

③软件代码短小精悍

④代码可固化

⑤实时性

软件开发需要专门的开发工具和开发环境

五,嵌入式处理器

1,分类

嵌入式微处理器(Embedded Microprocessor Unit, EMPU)  高主频(高性能)、低功耗(UI)、集成处理器+IO ;ARM体系结构
微控制器(Microcontroller Unit, MCU)
DSP处理器(Digital Signal Processor, DSP)
FPGA(现场可编程门阵列) 大规模集成电路
片上系统(System On Chip,SOC)
7nm,5nm

2,嵌入式微处理器

来源于通用处理器;
更高的集成度:CPU+外设控制器;
更低的功耗:低电压供电,部分外设可通过程序关闭;
完备的电源管理方案;
大多基于RISC结构,满足高性能计算需求;RISC:Instruction sets computer;指令条数少、指令简单
部分采用多核及big.little架构;
超低线宽;高集成度、低功耗
去除冗余外设、满足应用需要即可;
面向工业应用的高可靠性;
内置MMU(内存管理单元),支持实时多任务操作系统;
内置安全区,满足联网应用的安全需求;

3,微控制器

即单片机;
性能逐渐提升:8位  16位  32位
高集成度:CPU+外设控制器+片内存储(RAM、ROM);
更低的功耗:超低功耗模式;
去除冗余外设、满足应用需要即可;
面向工业应用的高可靠性;
部分支持操作系统;
内置安全区,确保基于互联网应用的安全性。

4,DSP(digital signal processor

DSP处理器是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,在数字滤波、FFT、谱分析等各种仪器上DSP获得了大规模的应用;
通信信号处理、多媒体处理领域使用广泛;
DSP处理器比较有代表性的产品是TI公司的TMS320系列、ADI公司的ADSP21XX系列和Motorola公司的DSP56000系列。

5,SOC

SoC就是System on Chip,SoC是一种基于IP(Intellectual Property)核嵌入式系统设计技术;
ARM+DSP、ARM+FPGA等架构;
当前主流DSP、FPGA均采用这种架构;
嵌入式片上系统设计的关键是IP核的设计。IP核分为硬核、软核和固核,是嵌入式技术的重要支持技术;

六,嵌入式Linux操作系统

1,概念

Linux最初是专门为基于Intel处理器的个人计算机而设计的。Linux的前身是指由Linus Torvald维护开发的开放源代码的类Unix操作系统的内核。

2. Linux的主要特点

开源:
多用户:
多任务:
良好的用户界面:
设备独立性:
丰富的网络功能:
可靠的安全系统:
良好的可移植性;
3.  Linux的组成

4,设备驱动 

Linux 内核中有大量代码都在设备驱动程序中,它们能够运转特定的硬件设备。Linux 源码树提供了一个驱动程序子目录,这个目录又进一步划分为各种支持设备,例如 Bluetooth、I2C、serial 等。设备驱动程序的代码可以在 ./linux/drivers 中找到

5,Arch-体系结构

不同体系结构处理器的专用支持
linux/arch 子目录定义了内核源代码中依赖于体系结构的部分,其中包含了各种特定于体系结构的子目录(共同组成了 BSP)。对于一个典型的桌面系统来说,使用的是 i386 目录。每个体系结构子目录都包含了很多其他子目录,每个子目录都关注内核中的一个特定方面,例如引导、内核、内存管理等。这些依赖体系结构的代码可以在 ./linux/arch 中找到。

6,MMU:内存管理单元

内存映射:就是将虚拟内存地址映射到物理内存地址。为了完成内存映射,内核为每个进程都维护了一张页表(页表实际上存储在 CPU 的内存管理单元 MMU 中),记录虚拟地址与物理地址的映射关系。

7,VFS-虚拟文件系统 

Linux :“一切皆文件”

在 VFS 上面,是对诸如 open、close、read 和 write 之类的函数的一个通用 API 抽象。在 VFS 下面是文件系统抽象,它定义了上层函数的实现方式。它们是给定文件系统(超过 50 个)的插件。文件系统的源代码可以在 ./linux/fs 中找到。

文件系统层之下是缓冲区缓存,它为文件系统层提供了一个通用函数集(与具体文件系统无关)。这个缓存层通过将数据保留一段时间(或者随即预先读取数据以便在需要是就可用)优化了对物理设备的访问。缓冲区缓存之下是设备驱动程序,它实现了特定物理设备的接口。

8,基本概念

文件 一组在逻辑上具有完整意义的信息项的系列。在Linux中,除了普通文件,其他诸如目录、设备、套接字等 也以文件被对待。总之,“一切皆文件”。

目录 目录好比一个文件夹,用来容纳相关文件。因为目录可以包含子目录,所以目录是可以层层嵌套,形成 文件路径。在Linux中,目录也是以一种特殊文件被对待的,所以用于文件的操作同样也可以用在目录上。

目录项 在一个文件路径中,路径中的每一部分都被称为目录项;如路径/home/source/helloworld.c中,目录 /, home, source和文件 helloworld.c都是一个目录项。

索引节点 用于存储文件的元数据的一个数据结构。文件的元数据,也就是文件的相关信息,和文件本身是两个不同 的概念。它包含的是诸如文件的大小、拥有者、创建时间、磁盘位置等和文件相关的信息。

超级块 用于存储文件系统的控制信息的数据结构。描述文件系统的状态、文件系统类型、大小、区块数、索引节 点数等,存放于磁盘的特定扇区中

七, Linux内核目录结构

● arch :包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如i386、arm、arm64、powerpc、mips 等。Linux 内核目前已经支持30 种左右的体系结构。在arch目录下,存放的是各个平台以及各个平台的芯片对Linux 内核进程调度、内存管理、中断等的支持,以及每个具体的SoC 和电路板的板级支持代码。

● block:块设备驱动程序I/O 调度。

● crypto:常用加密和散列算法(如AES、SHA 等),还有一些压缩和CRC 校验算法。

● documentation:内核各部分的通用解释和注释。

● drivers :设备驱动程序,每个不同的驱动占用一个子目录,如char、block、net、mtd、i2c 等。

● fs:所支持的各种文件系统,如EXT、FAT、NTFS、JFFS2 等。

● include:头文件,与系统相关的头文件放置在include/linux 子目录下。

● init:内核初始化代码。著名的start_kernel() 就位于init/main.c 文件中。

● ipc:进程间通信的代码。

● kernel :内核最核心的部分,包括进程调度、定时器等,而和平台相关的一部分代码放在arch/*/kernel 目录下。

● lib:库文件代码。

● mm:内存管理代码,和平台相关的一部分代码放在arch/*/mm 目录下。

● net:网络相关代码,实现各种常见的网络协议。

● scripts:用于配置内核的脚本文件。

● security:主要是一个SELinux 的模块。

● sound:ALSA、OSS 音频设备的驱动核心代码和常用设备驱动。

● usr:实现用于打包和压缩的cpio 等。

● include:内核API 级别头文件。

八,嵌入式系统

1,嵌入式Linux操作系统的优势

利用Linux搭建嵌入式操作系统是近年来最令人振奋的方案之一,Linux将来可能会成为嵌入式系统主流操作系统。嵌入式Linux是按照嵌入式操作系统的要求而设计的一种小型操作系统。由一个内核及一些根据需要进行定制的系统模块组成。

(1) 支持多种体系结构。
(2) 多任务,内核稳定,可定制,源代码开放。
(3) 强大的网络支持功能。
(4) 支持多文件系统。
(5) 驱动丰富,支持大量的外设。
(6)  Linux具备一整套工具链

2,嵌入式系统开发流程

系统需求分析:根据需求,确定设计任务和设计目标,指定设计说明书。
体系结构设计:描述系统如何实现所述的功能需求,包括对硬件、软件和执行装置的功能划分以及系统的软件、硬件选型。
硬件/软件协同设计:基于体系结构的设计结果,对系统的硬件、软件进行详细设计。一般情况下嵌入式系统设计的工作大部分都集中在软件设计上,现代软件工程经常采用的方法是面向对象技术、软件组件技术和模块化设计。
系统集成:把系统的硬件、软件和执行装置集成在一起进行调试,发现并改进设计过程中的不足之处。

3,生成代码阶段

生成代码阶段需要完成的工作包括应用程序代码生成、交叉编译和链接、交叉调试和测试等。

 4,交叉编译与链接

嵌入式软件开发编码完成后,要进行编译和链接以生成可执行代码。但是,在开发过程中设计人员普遍使用Intel的x86系列CPU的计算机进行开发,而目标环境的处理芯片却是多种多样的,如ARM,DSP,PowerPC,DragonBall系列等,这就要求开发机上的编译器能支持交叉编译

嵌入式集成开发环境都支持交叉编译、链接,如WindRiver公司的TornadoⅡ以及GNU套件等。交叉编译链接生成两种类型的可执行文件:调试用的可执行文件和固化的可执行文件

九,软件获取

https://pan.baidu.com/s/1p_GyXy-4uI2zrNHdSqgZhg 
提取码:muyo

嵌入式Linux开发的前世与今生——基本概述相关推荐

  1. 嵌入式linux编译环境搭建,嵌入式Linux开发环境搭建

    整理下嵌入式Linux开发环境搭建过程笔记. 一.制作u-boot.bin文件: tar xjf u-boot-1.1.6.tar.bz2 cd u-boot-1.1.6 patch -p1 < ...

  2. 嵌入式linux开发环境搭建——VirtualBox虚拟机网络环境解析

    嵌入式linux开发环境搭建--VirtualBox虚拟机网络环境解析 本博文转自:Pandoras Box http://blog.csdn.net/yxc135/article/details/8 ...

  3. 嵌入式linux开发课程设计,嵌入式Linux开发课程设计指导书

    嵌入式Linux开发课程设计指导书 课程编码: 适应专业:计算机专业.电子信息工程专业 学时:3周(计算机专业),2周(电子信息工程专业) 学分: 3(计算机专业),2(电子信息工程专业)时间安排:分 ...

  4. 嵌入式开发linux工具,嵌入式Linux开发入门之MfgTool工具的使用

    介绍嵌入式linux开发的环境搭建: 一.PC端环境搭建 2.Ubuntu装好后,在终端安装minicom工具,安装命令:sudo apt-get install minicom 注:该工具在后面烧录 ...

  5. C语言到嵌入式Linux开发项目指导

    C语言到嵌入式Linux开发项目指导 第一阶段C语言 1.常量与变量,数据类型,数据类型转换,数据输入与输出: 2.C语言运算符,C语言操作符,C语言表达式,表达式优先级: 3.C语言流程控制,分支, ...

  6. Linux学习之云服务器搭建嵌入式Linux开发环境

    Linux学习之云服务器搭建嵌入式Linux开发环境 第一步:购买云服务器 进入腾讯云官方网站腾讯云官方网站 选择云+校园云+校园 进入控制台 将云服务器系统设置为Ubuntu系统 使用Xshell6 ...

  7. linux 嵌入式 交叉 环境搭建 实验原理,实验三 嵌入式Linux开发环境的搭建

    南京邮电大学通达学院 实 验 报 告 实验 实验三题目 嵌入式Linux开发环境的搭建 课程名称 嵌入式驱动开发实验 学院 专业 班 实验者学号同做者学号 08002210 姓名 毛骏超 同做者学号 ...

  8. 假设linux分配给u盘设备名是,嵌入式linux开发基础试卷-应用物理A答案

    试 卷 考试科目: 嵌入式 linux 开发基础 姓名: 试卷适用专业(班) : 09 应用物理 套别:A 套(√)B 套( ) 五 20 六 七 总计 100 考核方式:开卷( )闭卷(√) 了多达 ...

  9. 嵌入式Linux开发环境搭建-4-嵌入式编程基础知识

    嵌入式Linux开发环境搭建-4-嵌入式编程基础知识 1.安装代码编辑器 2.交叉编译工作使用 1.安装代码编辑器 参考文档 ubuntu几款好用的代码编辑器_百度经验 安装sublime text ...

  10. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(一) 嵌入式Linux开发基本概念以及开发流程介绍

    文章目录 1.linux开发初了解 1.1 嵌入式Linux开发的基本概念 1.1.1关于Git的背景介绍 1.1.2关于repo的背景介绍 1.1 3 一些关于此背景知识的介绍 1.1.4关于Lin ...

最新文章

  1. mysql 控制台操作命令
  2. Activity调用栈的分析
  3. Windows系统帮助中心程序的0day漏洞
  4. mysql手注_php+mysql手注拿shell教程【朋友给的】
  5. 解决eclipse中java代码注释变成乱码的问题
  6. jakarta ee_在等待Jakarta EE时
  7. Qt工作笔记-QVector与QMap查找效率实战
  8. php获取模型错误,php – 解析错误,期望activecollab模型类中出现“T_PAAMAYIM_NEKUDOTAYIM”错误...
  9. 模板三连击:树状数组+线段树+主席树
  10. 501.二叉搜索树中的众数
  11. 论一种迫不得已用全中文数据库的情景
  12. 网络设备更换、域架构项目小结
  13. EasyRecovery易恢复文件数据恢复软件详解介绍安装
  14. 【ATSC】【OTT】Netflix将作为美国有线机顶盒界面中的一个频道
  15. Spring blunder
  16. Mangos地区代码
  17. 下列python语句的输出结果是_下列Python语句的输出结果是
  18. 「会员卡管理系统」 · Java Swing + MySQL JDBC开发
  19. linux文件前面多两个点,Linux 学习笔记
  20. 软件工程职业方向有哪些

热门文章

  1. Visual Leak Detector(vld)无法显示内存泄露行号
  2. Qt echarts 教程(3):qml echarts 的使用方法
  3. 手把手系列--华邦W25Q64JV Flash操作指南
  4. 游戏反编译工具dnSpy
  5. 啊哈C语言——让计算机多彩的开口说话
  6. 北理珠计算机与科学就业去向,2019届我国大学毕业生就业情况:计算机类专业领跑薪酬榜...
  7. 关于NLPIR在MAC上的使用
  8. Git 头像修改 原
  9. NVIDIA驱动重装经历
  10. 1小时学会不打代码制作一个网页精美简历(1)