当前位置: 首页 > news >正文

微控制器及应用/嵌入式微控制器 期末复习指南

        本指南服务于课上老师画的知识点范围,基于授课PPT内容

        期末复习看这一篇就够了,考试不考的不写,写的就是考试内容

PPT章节总览: 

 


一、诸论

1、嵌入式微控制器及嵌入式系统

基本概念:控制、监视或者辅助操作机器和设备的装置

基本组成:嵌入式处理器、输入/输出接口,外部设备,被控设备,人机接口

嵌入式处理器:

包括:

1)嵌入式微控制器(MCU)

     中央处理器存储器定时器/计算器各种输入/输出接口等都集成在一块集成电路芯片上的微型计算机。

2)嵌入式数字信号处理器(DSP)

    专用于(通常为实时的)数字信号处理的微处理器。

3)嵌入式微处理器(MPU)

    具有较高的性能,32位以上的处理器。

4)嵌入式片上系统(SoC)

    将计算机或其他电子系统集成为单一芯片,实现软硬件的无缝结合(目的低功耗/低时延高/稳定性)


2、嵌入式处理器的技术指标

1)字长:嵌入式处理器内部参与运算的数据最大位数。

2)主频:嵌入式处理器内核工作的时钟频率。单位是MHz,GHz

3)运算速度:采用单位时间内各类指令的平均执行条数的表示方法。通常是单字长定点指令平均执行速度(MIPS,DMIPS)

4)指令集:复杂指令集CISC 精简(快速)指令集RISC

        CISC:处理复杂功能、指令码长、多种内存寻址方式、微程序结构使用微指令控制

        RISC:定长指令、指令流水线、简化的内存管理(寄存器)、硬布线、单周期执行指令、编译复杂(根据微控制器结构优化编译)

5)体系架构:

        冯.诺依曼:数据和指令都存储在一个存储器中

        哈佛:数据和程序独立存储

6)流水线:

        别的科目学烂的知识点,po个图就行了

7) 寻址能力:由地址总线决定,32位AB寻址能力为4GB。

8)功耗:有工作功耗、待机功耗等指标。单位为mW/Hz,W/Hz

9)工作温度:民用(0~70℃)、工业用(-40 ~85℃)、军用(-55~125℃)、航天(范围更宽)

3、ARM Cortex-M3微控制器组成


二、ARM嵌入式微处理器

1、指令执行过程

2、ARM处理器特点

1)更能效:花小钱干大事,省电性能高

2)更代码:高密度指令集,功能完备,ROM/RAM/闪存要求低

3)使用:厂商都写好了,直接调包即可

4)更性能:参考苹果的MacBook或者手机的骁龙/天玑

5)更有竞争力的产品:黑鲨、小米、华为、OPPO、VIVO等等......

了解:

3、ARM 处理器

1)工作状态:

        ARM状态:处理32位指令

        Thumb状态:处理16位指令

        调试状态:停机调试

2)工作模式:

        特权模式:除用户模式以外

        异常模式:除用户与系统模式以外

        (码掉的是未定义模式-und)

4、ARM 寄存器

总共有37个寄存器,可以分为以下两类:

1)通用寄存器:

其中:        

① 未分组寄存器:

        — R0 ~R7(8 个) 

        — 所有模式共用这8个通用寄存器。

② 分组寄存器:

        — R8 ~R12(10 个)

                ∗ 每个寄存器对应2个不同的物理寄存器

                ∗ 处理器使用 FIQ模式时,使用 R8_fiq~R12_fiq

                (发生 FIQ 中断后,可以加 速 FIQ 的处理速度)

                ∗ 其他模式下使用 R8_usr~R12_usr

        — R13 ~R14(12 个)

                ∗ 用户模式与系统模式共用 R13_usr,R14_usr

                ∗ 5 种异常模式各有各自的 R13和 R14

                ∗ R13 常作为堆栈指针(SP)

                ∗ R14 为链接寄存器(LR),在结构上有两个特殊功能:

                        (a) 每种模式下,模式自身的 R14版本用于保存子程序返回地址;

                        (b) 发生异常时,将 R14 对应的异常模式版本设置为异常返回地址(有些异常 有一个小的固定偏移量)

③ 程序寄存器(PC)R15

        — 用于控制程序中指令的执行顺序。正常运行时,PC指向CPU运行的下一条指令

        — PC 的值可以改变CPU的执行流向

2)状态寄存器:

补充:

        — 32 位的微处理器,ARM体系支持的最大寻址空间为4GB(2^{32}字节)

        — 程序正常执行时,每执行一条ARM指令,当前PC加4个字节,每执行一条Thumb 指令,当前PC加2个字节

例题:

5、判断立即数是否合法

如何判断立即数的合法性?


三、ARM指令集

1、汇编指令格式

2、寻址方式(精简版)

 


四、ARM 编程

分支、循环、子程序设计(大题)

牢记常用条件码

1、条件与分支

2、子程序设计

例题全部看一遍,考试就出例题改参数 :

答案:

看懂每个操作符的意义,先分解,再翻译。


五、C语言与汇编语言混编

考察:嵌入式C语言与C语言编程的不同(六点),使用文字及代码解释

速记:

        (a) 数据类型尽量考虑整型

        (b) 计算符号多使用加减,少使用乘法,不使用除法。尽量采用移位运算代替乘法和除法

        (c) 变量尽量用局部变量,少使用全局变量;

        (d) 子程序嵌套越少越好

        (e) 循环体多用do-while,少用for、while等结构;

        (f) 子程序参数个数受限制(根据混合编程规范,不多于四个参数)。

解释:

(a)其余类型会增加代码尺寸,产生额外开销(写上int和short例子)

(b) 指令集一般不支持除法,或者没有专门指令或者乘法器,乘除法会进一步转换,增加性能开销,且移位运算比乘除法运算要快

(c)全局变量会单独申请一个地址存放数据,访问变量使用间接寻址效率低且翻译出来的指令会变多;局部变量则存放在函数堆栈中,使用SP指针+偏移量访问,效率更高

(d)调用子程序会开辟堆栈空间,嵌套层次越多堆栈空间越大

(e)while和for循环需要两个空间存放判断和循环子程序的入口地址,而do-while循环只需要一个空间存放循环/退出子程序的地址,后者开销更小

(f) 用于传递参数的寄存器数量有限,可使用R0-R3四个寄存器传递参数,更多参数则需要使用堆栈传递会增加函数调用开销


六、STM32输入输出

出两个大题考察:八种GPIO工作模式和GPIO应用:控制点亮LED灯(库函数/寄存器版)

1、GPIO工作模式

四种输入(从外部IO端口进来)

        模拟输入:用于外部模拟新号输入

        浮空输入:用于不确定的电平新号输入

        上拉输入:上拉至高电平输入

        下拉输入:下拉至低电平输入

四种输出(从片上外设模块出去再等待返回数据输入)

        开漏输出:无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动

        开漏复用输出:可开漏亦可切换为输入模式或者其他功能

        推挽(wan)式输出:可以真正能真正的输出高电平和低电平,在两种电平下都具有驱动能力

        推挽复用式输出:可推挽亦可切换为输入模式或者其他功能

 

 

 

 

 

背图,考试画图。

补充记忆(方便记忆并不代表实际本意)

开漏输出的漏指的是MOS管的漏级

P-MOS代表Positive管,是积极的管,输出高电平

N-MOS代表Negative管,是消极的管,输出低电平

开漏输出不能输出高电平,所以没有P-MOS积极的管

推挽输出高低电平都可以输出,所以两个管都有

2、GPIO应用:点亮LED灯或者跑马灯

题干给出头文件、常用固件库函数及枚举对象,让你写出代码

其实就是一个套路:

设置系统时钟、配置IO引脚、初始化配置、IO赋值(使能高低电平)

跑马灯加个while循环和delay_ms就好了,剩下的抄题干代码即可


① 库函数版:点亮LED灯

② 库函数版:LED 跑马灯

 

③ 寄存器版: LED 跑马灯

补充:

注意题干给出的硬件连接图,LED必须保证电平一高一低才能亮,不要死背,灵活运用

此时IO端口PC0置低电平LED灯亮

若3V3部分变成接地(接地代表电流流向大地,则为低电平)

那么IO端口PC0则需要置高电平LED灯才能亮

SetBits为置高电平,ResetBits为置低电平

寄存器版中 (|=)为置高电平,(&=~)为置低电平


七、异常中断及编程

七种异常模式概念考其中一种,解释含义

1、异常和中断含义

2、中断类型 


八、总结

大题题型(分值在60-80分):

        分支、循环、子程序汇编程序设计(20分):

               ① 给出C代码或者需求写出汇编代码

               ② 给出汇编指令让对应C代码进行解释

        嵌入式C语言与C语言编程的不同(文字结合必要代码解释)

        GPIO八种工作模式选一种结合图示说明(需要画图并解释流程)

        GPIO应用——LED灯(库函数版或者寄存器版)

        七种异常模式选一种进行解释说明

小题题型:前两章

多寄存器寻址不考

        

        

http://www.lqws.cn/news/511813.html

相关文章:

  • Flask(六) 数据库操作SQLAlchemy
  • order、sort、distribute和cluster by(Spark/Hive)
  • HarmonyOS开发基础 --面向鸿蒙的TypeScript基础语法一文入门
  • SpringBoot | 越权和数据权限控制的一种实现方案
  • spring01-简介
  • “苏超”拉动周末消费,抖音生活服务:比赛城市迎来普遍消费上涨
  • 鸿蒙 FolderStack 组件全解析:折叠屏悬停布局开发指南
  • 【源码】Reactive 源码
  • c++ 空指针,悬挂指针(悬空指针),野指针
  • 总结汇报思路
  • 重点解析(软件工程)
  • 使用markRaw实例化echarts对象
  • RAG实战 第三章:知识库构建与管理
  • OSS安全合规实战:金融行业敏感数据加密+KMS自动轮转策略(满足等保2.0三级要求)
  • 宝塔服务器调优工具 1.1(Opcache优化)
  • 跟着chrome面板优化页面性能
  • 中断控制与实现
  • 《C++》命名空间简述
  • AutoGPT,自主完成复杂任务
  • 安卓9.0系统修改定制化____安卓9.0修改 默认开启开发者选项与usb调试的操作步骤解析 十一
  • 2025.6.24总结
  • # Python中等于号的使用
  • 创建首个 Spring Boot 登录项目
  • Linux零基础快速入门到精通
  • 大模型本地部署,拥有属于自己的ChatGpt
  • Vue 英雄列表搜索与排序功能实现
  • Verilog基础:编译指令`default_nettype
  • Harmony状态管理@Event
  • ubuntu16编译paho.mqtt.c 及 paho.mqtt.cpp编译问题
  • 屠龙刀策略