嵌入式系统入门学习1

B站课程https://www.bilibili.com/video/BV18b411L7Zd?p=1

学习进度:

B站课程学习:

第一章:嵌入式系统的概述

众所周知,遥控器、冰箱、门锁、摄像头等等都由嵌入式系统去控制和监控,应用非常广泛,也越来越深化。

1、嵌入式系统相比于桌面系统需要考虑到的问题:

  • 可用资源更少,功耗约束(ivery mportant):开发时,要考虑系统成本、降低功耗!
  • 为特定任务和需求而开发
  • 实时性要求更高,限定响应时间提供可靠服务,(强实时性:μs~ms,一般实时性:ms~s,弱实时性:s以上)
  • 高可靠性保证(压力测试、高低温测试、湿度测试等,比如工业机器人需要忍耐极端环境和工作强度)
  • 综合的计算机应用技术:系统结构(状态控制器、中断控制器处理)+汇编语言(操作外围设备、端口)+操作系统(运行、通讯、互斥)+编译原理(交叉编译、bootloader加载)

2、嵌入式系统构成要素

  1. 嵌入式微处理器:有1000多种,分类:
    1. MCU:嵌入式微控制器,其内部一般集成了某种处理器核、少量的ROM/RAM储存器、总线控制逻辑、各种功能模块、外设接口电路等。
    2. DSP:嵌入式信号处理器,专门用来处理嵌入式系统的数字信号,在嵌入式DSP数字滤波、快速傅里叶变换、频谱分析等仪器上使用较为广泛。
    3. MPU:嵌入式微处理器,也称为嵌入式微处理器单元。一般分为通用微处理器,嵌入式微处理器。
    4. SOC:嵌入式片上系统。随着科技的发展EDA技术的推广和VLSI设计的普及,在一个硅片上实现一个复杂的系统已经成为可能。除了个别的器件外,整个嵌入式系统基本可以集成到一块或几块芯片中。
    5. 常见的嵌入式处理器对比分析! - 知乎 (zhihu.com)
  2. 外围硬件设备
    • 片外总线:连接系统各个部件、进行互连和信息传输的信号线
      • ESIA总线、SCSI总线、PCI总线;
      • AMBA总线:arm研发的总线规范;
      • 专用总线:CompactPCI总线(工业控制)、CAN总线(汽车电子总线,与车载不同)、1553B总线(航空工业总线)
    • 电子盘/电子存储:存储的, 较多采用flash芯片(体积小、功耗低、抗震,读写次数有限,有NOR、NAND的flash芯片)
    • I/O设备:
      • A/D、D/A:电压高低数字化
      • 中断控制:发中断给处理器,从而触发事件处理
      • UART:输入输出调试
      • LCD:显示器
    • 通讯设备:
      • 有线通信:IEEE1394、USB
      • 无线通讯:IrDA、蓝牙(距离近)、802.11b/g(远)
  3. 嵌入式操作系统(RTOS)
  4. 用户应用软件

3、嵌入式系统软件技术(和桌面系统不同):

1、混合编程模式:嵌入式系统经常需要调用外设、控制寄存器等。

2、固定内存地址访问:嵌入式系统中,某一块内存固定给某个模块使用,因此只需固定访问内存地址;

3、存储限定符volatile:代理(而不是变量的所在的程序)可以改变该变量的值。通常,它被用于硬件地址以及在其他程序或同时运行的线程中共享数据。多任务共享变量、中断与任务共享变量时,必须使用volatile,强制读取内存中的值

4、代码共享与可重入

  • 在嵌入式系统中,多个任务使用子程序的一个单一拷贝很正常,这些子程序称为共享代码;
  • 由于实时系统的任务是可抢占的,因此必须保证共享代码同时被几个任务调用而不发生冲突,这是可重入。而在桌面系统中,内存够大,只要拷贝代码就可以不冲突。

5、按位操作:对变量或寄存器进行位操作

C语言位操作 - bit 、byte的清零,置1,提取,判断_c语言中如何判断byte中字节的值-CSDN博客

#define	GET_BIT(x, bit)	((x & (1 << bit)) >> bit)	/* 获取第bit位 */
#define	GET_BIT(x, byte) ((x >> 8*byte) & 0x000000ff)	/* 获取第byte字节,1字节=8位 */

#define CLEAR_LOW_BIT(x, bit) (x &= ~(0x1 << bit))    /* 清零第bit位 */
#define	CLEAR_LOW_BYTE0(x)	(x &= 0xffffff00)	/* 清零第0个字节 */

#define SET_LOW_BIT(x, bit) (x |= (0x1 << bit))   /* 第bit位置1 */
#define	SET_LOW_BYTE0(x)  (x |= 0x000000ff)	    /* 第0个字节置1 */

6、看门狗定时器(WDT):对于要求高可靠性的嵌入式应用场合,系统往往需要提供看门狗(WATCHDOGr)机制,防止用户程序进入死循环;

  • 看门狗是一个定时器电路,给它输入一个信号,也叫喂狗。MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 置位,如果超过规定的时间不喂狗,WDT 定时超过,就会输出一个复位信号到MCU,从而使MCU复位reset, 防止MCU死机。
  • 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
  • 重启WDT,也叫“踢”看门狗。
  • 要求:程序能够生成一个看门狗,并交付执行动作,如果程序在指定时间内不能将看门狗置位,将触发指定程序。
  • 看门狗执行动作包括:系统重启、任务重启、跳出循环。
  • 什么是看门狗-WatchDog - 知乎 (zhihu.com)

第二章:嵌入式系统基本概念

1、嵌入式系统基本组成

2、微处理器基本知识

总线嵌入式常见总线分类总结_嵌入式总线-CSDN博客

总线桥由总线桥说开去 (360doc.com)

3、嵌入式微处理器

分类:第一章->嵌入式系统构成要素->嵌入式微处理器

嵌入式微处理器的发展过程:

  • 晶体管逻辑电路 -> 中小规模IC逻辑电路 -> 大规模IC逻辑电路 -> 微处理器 -> DSP -> 单片机 -> FPGA技术 -> ASIC -> SOC

4、设计工具

硬件设计工具(拓展,嵌入式软件开发工程师不需要掌握,随着时代进步,工具可能也有更新)

  • 系统级设计工具:Cadence的SPW,System View
  • 模拟电路系统仿真工具:Pspice,EWB
  • PCB设计工具:Protel,PADs的Power PCB & Tool Kit,Mentor的Expendition & Tool Kit
  • 可编程逻辑器件设计工具:Mentor FPGA Advantage & ModelSim,Xilinx Foundation ISE & Tool Kit,各种综合和仿真第三方工具

软件开发工具:

  • 开发工具:编译器、调试器、软仿真、集成开发环境
  • 典型的商业开发工具及供应商:Windriver公司的Tornado for VxWorks,MontVisa公司的HardHat Linux开发工具包,AMC公司的SuperTAP调试器
  • 免费开发工具:GNU系列开发工具、Wiggler调试器

5、嵌入式系统的可裁剪性

这一点还是很重要的,一方面,嵌入式系统开发是针对专门需求和产品的,另一方面,可用资源比较少,所以嵌入式系统的可裁剪性就更加必要。

嵌入式系统的可裁剪性,是软硬件可裁剪性,用白话来说,嵌入式系统的功能、性能、子系统等是可配置的,配置是动态变化的。例如,linux系统(软件)最大的特点就是可配置,配置linux系统功能,linux系统可以很庞大到服务器集群,可以很小到一个芯片中,可以参考Kconfig定义(linux/Kconfig at master · torvalds/linux · GitHub)。

可裁剪性的实现有很多种方法,也可以不同层次用不同的方法:

  • 宏开关:静态编译时,通过编译宏来控制;
  • 动态库:各个功能模型分别编译成动态库,根据产品的功能加载需要的动态库;
  • 控制函数流程:主进程启动时,从规格文件中获取特性并加载全局变量,控制函数(业务)流程,达到裁剪目的。

关于嵌入式系统的可裁剪性 - 知乎 (zhihu.com)

6、嵌入式实时操作系统的相关基本知识

实时操作系统的实时性:第一章 -> 嵌入式系统构成要素 -> 3、嵌入式操作系统

实时性操作系统主要的实现形式:事件驱动系统

1、事件驱动的概念:在事件驱动机制中,①对象对于外部事件总是处于“休眠” 状态的,而把对外部事件的检测和监控交给了第三方组件;②一旦第三方检测到外部事件发生, 它就会启动某种机制, 将对象从“休眠” 状态中唤醒, 并将事件告知对象;③对象接到通知后, 做出一系列动作, 完成对本次事件响应,然后再次进入“休眠” 状态,如此周而复始。(很像中断)

2、概念:事件驱动系统是对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等。

3、前后台:应用程序是一个无限循环,循环中调用相应的函数完成相应的操作,这部分堪称后台行为(background);中断服务程序处理异步事件,这部分看成前台行为(foreground)。
后台也可以叫做任务级,前台也可以叫做中断级。

嵌入式开发绝招:状态机+事件驱动框架~ - 知乎 (zhihu.com)【需要耐心点看】

7、RTOS的特征

(后面会深入展开学习,而且确实挺难挺多):

  • 高校任务管理:
    ①支持多任务;
    ②优先级管理;
    ③任务调度:基于优先级的抢占式调度、时间片轮转调度算法;
    支持快速而确定的上下文切换
  • 快速灵活的任务间通信:
    ①信号量:二进制、互斥、计数器;
    ②通信机制:消息队列、管道等;
  • 高度的可裁剪性
  • 快速有效的中断和异常事件处理
  • 动态内存管理
  • 系统时钟和定时器

第三章 ARM体系结构

1、一个典型的机电控制体系结构:

  • 由32位arm处理器和外设接口组成;
  • 通过高速总线,可以和被控对象链接;
  • 通过通讯端口,可以和PC机相连;
  • 通过网络和现场总线,可以远程控制;
  • 还可以连接键盘、LCD显示器、仿真器等。

2、嵌入式的发展新方向:SOC

3、ARM体系结构概述(流行的嵌入式处理器核)Advanced RISC Machine

https://zhuanlan.zhihu.com/p/53075313

1、采用RISC架构的ARM微处理器的特点:

  • 体积小、功耗低、成本低、高性能;
  • 支持Thumb(16位)/ARM(32位)双指令集;
  • 大量使用寄存器,指令执行速度更快;
  • 大多数数据操作都在寄存器中完成,寻址方式灵活简单,执行效率高;
  • 指令长度固定

2、下图是16位Thumb指令的编码结构图,Thumb指令集是32位ARM指令集的子集,按16位重新编码:

  • 32位的数据总线;
  • 如果是16位Thumb指令,数据总线可以存放两条指令,通过Thumb指令检验器中检验,然后送到ARM指令解码器中解码;
  • 如果是32位ARM指令,则直接通过。

4、ARM体系编程模型

1、ARM处理器的三级指令流水:

2、存储器模式:

  • 大端排列模式

  • 小端排列模式

3、ARM7TDMI操作模式
  1. 用户模式(usr):正常的程序执行模式;
  2. 快速中断模式(fiq):支持高速数据传输或通道处理;
  3. 中断模式(irq):用于通用中断处理;
  4. 管理员模式(svc):操作系统的保护模式;
  5. 中止模式(abt):支持虚拟内存/或内存保护;
  6. 系统模式(sys):支持操作系统的特殊用户模式(运行操作系统任务);
  7. 未定义模式(und):支持硬件协处理器的软件仿真

4、ARM7TDMI寄存器模式:

  • 37个寄存器:
    • 31个通用32位寄存器(包括程序计数器PC);
    • 6个状态寄存器;
  • 可见的寄存器取决于处理器的模式
    • 15个通用寄存器(R0 to R14)以及1或者2个状态寄存器核程序计数器在任何时候都可见;
  • 寄存器分配:
    • R0 to R15:可以直接访问;
    • R0 to R14:通用寄存器;
    • R13:兼用堆栈指针(sp),每种处理器操作模式都有单独的堆栈;
    • R14:链接寄存器(lr),存放返回地址;
    • R15:程序指针寄存器(PC);
    • CPSR:当前程序状态寄存器,包括代码标志状态核当前模式位;
    • 5个SPSRs:当异常发生时保存CPSR状态

5、ARM中断模式
  • 异常类型:
    • FIQ(Fast Interrupt reQuest):通过在nFIQ引脚上输入低电平产生,快速处理通道传送数据;
    • IRQ(Interrupt ReQuest):通过nIRQ引脚上输入低电平产生中断;
    • ABORT:用外部abort产生信号,指示当前存储器访问不能被完成;
    • Software interrupt:通过软件中断产生,进行管理员模式中获得,通常要求特殊的管理功能,如操作系统支持;
    • 未定义的指令陷阱;
  • 异常优先级:
    1. Reset
    2. Data abort
    3. FIQ
    4. IRQ
    5. Prefetch abort
    6. 未定义指令,Software interrupt(最低优先级)

时间内容详细反思
2024/04/11B栈视频第1 2课时:嵌入式系统的简介
  • 嵌入式系统开发需要考虑功耗约束、极端环境和实时性等问题
2024/04/13
  • B栈视频第3 4课时:嵌入式系统的简介
  • B栈视频第5 6课时:嵌入式系统的简介
  • 嵌入式系统结构
  • 相关软件技术
  • 微处理器基础知识
  • 熟练位操作(提取、清零、置位)
  • 看门狗的概念:计时器电路,累计超时reset
  • 总线桥概念:
2024/04/13

B栈视频第5 6课时:嵌入式系统的简介

  • 嵌入式系统可裁剪性
  • 事件驱动系统
  • 事件驱动系统和中断比较类似。
2024/04/13

B栈视频第7 8课时:嵌入式系统的简介

  • ARM处理器的特点;
  • ARM处理器的编程模式

专有名词:

SOC/SOPC:系统级芯片/可编程系统级芯片
HAL:硬件抽象层
BSP:板级支持包
嵌入式基础概念(一)_什么是嵌入式的软件可裁剪性-CSDN博客

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值