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

华清远见25072班单片机基础学习day1

重点内容:

一、单片机相关概念

机器码

        硬件能够识别的以0和1组成的编码格式 

汇编指令

        汇编指令:就是一条具备特殊格式+特殊功能的指令

        由多条汇编指令组成的文件就是汇编文件 

汇编指令集

        汇编指令集就是多条不同功能的汇编指令组成的集合 汇编指令集的分类:ARM汇编指令集、x86汇编指令集、Mips汇编指令集、RISC-V汇编指令集...

架构

        架构:就是汇编指令集的别名,不同的汇编指令集对应了不同的架构

        架构的分类:ARM架构、x86架构、RISC-V架构....

内核

        内核就是通常意义上的CPU

        ARM公司设计的内核/CPU/处理器:

                Cortex-M系列的内核:低功耗内核,一般应用在低功耗设备上 Cortex-R系列的内核:实时性的内核,一般应用在对实时性处理要求比较高的设备

                Cortex-A系列的内核:高性能内核,一般应用在手机/电脑上

                Cortex-X系列的内核:超高性能内核,一般应用在手机/电脑上

        CPU:中央处理单元(中央处理器)

        MCU:微控制单元(微控制器)

        MPU:微处理单元(微处理器)

        SOC(system on-chip):片上系统

        MCU:微控制单元(微控制器) 低性能处理器,处理器的主频一般控制在以MHz为单位,主要应用在嵌入式设备中 MCU可以理解为就是单片机,MCU一般无法搭载大型的操作系统

        MPU:微处理单元(微处理器) 高性能处理器,处理器的主频一般控制器在以GHz为单位,主要应用在高端电子产品中 MPU一般可以搭载大型的操作系统 

二、精简指令集和复杂指令集

        复杂指令集中指令的周期和指令的宽度是不固定的

         x86汇编指令集属于复杂指令集

        指令的周期:执行一条汇编指令需要的时间

        指令的宽度:一条汇编指令在内存空间中的大小(单位为字节) 精简

        指令集中指令的周期和指令的宽度是固定的

        ARM汇编指令集、RISC-V汇编指令集、Mips汇编指令集、PowerPC汇编指令集....都是精简指令集

        ARM汇编指令集的范围很广,包含了不同版本的ARM汇编指令集,也存在很多不同版本的子集

        Thumb汇编指令集是ARM汇编指令集下的一种子集

        Thumb汇编指令,也属于精简指令集,每条指令的宽度默认为2个字节

        ARM汇编指令集,也属于精简指令集,每条指令的宽度默认为4个字

三、ARM处理器的工作模式

Cortex-M系列处理的工作模式

        Cortex-M系列处理的工作模式: 1、线程模式(运行主函数逻辑) 2、异常模式

Cortex-A系列处理的工作模式

        Cortex-A系列处理的工作模式:

        ARM-v7架构设计的处理器:

                1、非特权模式:User模式(用户模式)

                2、特权模式:

                        2.1 非异常模式:SYS模式(系统模式)

                        2.2 异常模式:

                                2.2.1 IRQ模式(普通中断异常模式)

                                2.2.2 FIQ模式(快速中断异常模式)

                                2.2.3 SVC模式(超级管理异常模式)

                                2.2.4 ABT模式(访问中止异常模式)

                                2.2.5 UND模式(未定义异常模式)

        ARM-v8架构设计的处理:

                多两种工作模式:MON模式(安全监管模式)、HYP模式(虚拟化技术模式)

四、寄存器组织(核内)

        1、每个小方块都是一个核内寄存器,每个内核寄存器占4个字节的大小

        2、R0-R12、R13(SP)、R14(LR)、R5(PC)、CPSR、SPSR都是寄存器的编号

        3、白色底的寄存器是公有寄存器,蓝色底的寄存器是私有寄存器

                公有寄存器在不同工作模式下,都可以访问

                私有寄存器只有在对应工作模式下,才可以被访问

        4、实体黑色编号的寄存器是实际存在的寄存器,虚体灰色编号的寄存器是不存在寄存器

        5、公有寄存器有17个、私有寄存器有26个 = 人为可以访问并操纵的寄存器数量为43个

五、特殊功能寄存器

SP寄存器

        R13 --- SP --- 栈指针寄存器 --- the stack pointer register

        作用:用于保存栈空间的某片内存空间地址 

LR寄存器

        R14 --- LR --- 链接寄存器 --- the linking register

        作用:用于保存函数的返回地址 

PC寄存器

        R15 --- PC --- 程序计数寄存器 --- the program counting register

        作用:用于程序的执行顺序计数(用于保存下一条需要执行汇编指令的地址)

小总结

        SP栈指针寄存器 - 用于保存栈空间的某片内存空间地址 - 可以通过指针进行压栈/出栈操作

        LR链接寄存器 - 用于保存函数的返回地址 - 可以实现函数的返回

        PC程序计数寄存器 - 用于保存下一条需要执行汇编指令的地址 - 可以实现程序的顺序执行

       上述三个寄存器结合到一起使用,才可以实现c语言语句的正常执行

CPSR寄存器

        CPSR --- 当前程序状态寄存器 --- the current program state register

        作用:用于保存当前程序的状态

        程序的状态:程序处于哪种工作模式下执行、程序的运行状态是否合法、程序导致变量进行+-运算是否出现进位/借位........

SPSR寄存器

        SPSR --- 备份程序状态寄存器 --- the saved program state register

        作用:用于备份当前程序的状态 CPSR和SPSR寄存器就是为了实现不同工作模式之间的切换

SPSR寄存器

        SPSR --- 备份程序状态寄存器 --- the saved program state register

        作用:用于备份当前程序的状态 CPSR和SPSR寄存器就是为了实现不同工作模式之间的切换

CPSR寄存器的高4位和低8位

        N[31]位:负数标志位(做减法操作时)

                当汇编指令的执行结果为负数时,硬件会将N位置1;否则,硬件会将N位清0

        Z[30]位:零标志位(做比较操作时)

                当汇编指令的执行结果为0时,硬件会将Z位置1;否则,硬件会将Z位清0

        C[29]位:进位/借位标志位

                (做加法操作时)当汇编指令的执行结果产生进位时,硬件会将C位置1;否则,硬件会将C位清0

                (做减法操作时)当汇编指令的执行结果产生借位时,硬件会将C位清0;否则,硬件会将C位置1

        V[28]位:符号位

                当汇编指令的执行结果对符号位产生影响时,硬件会将V位置1;否则,硬件会将V位清0

        I[7]位:IRQ屏蔽位

                I = 0时,IRQ普通中断异常模式不被屏蔽(当前处理器可以进入到IRQ模式下)

                I = 1时,IRQ普通中断异常模式被屏蔽(当前处理器无法进入到IRQ模式下)

        F[6]位:FIQ屏蔽位

                F = 0时,FIQ快速中断异常模式不被屏蔽(当前处理器可以进入到FIQ模式下)

                F = 1时,FIQ快速中断异常模式被屏蔽(当前处理器无法进入到FIQ模式下)

        T[5]位:状态位

                T = 0时,当前处理器处于ARM状态(当前处理器使用ARM汇编指令集,Cortex-A/X系列的内核)

                T = 1时,当前处理器处于Thumb状态(当前处理器使用Thumb汇编指令集,Cortex-M系列的内核)

        M[4:0]位:模式位


作业:

1、思维导图:

2.牛客网刷题

http://www.dtcms.com/a/594641.html

相关文章:

  • 「C++」vector的使用及接口模拟详解
  • 企业网站建设案例有哪些公司西峡微网站开发
  • 国外设计网站大全附近做广告招牌的
  • NLP入门——文本表示概述
  • HYPE分布式水文模型建模方法:基本输入文件制备、驱动数据制备、HYPE模型运行与手动调参、自动率参等
  • FreeBSD14.3中ZFS文件系统与samba设置仅指定用户可编辑的共享
  • 超酷个人网站商务网站建设考试题库
  • C++之内联变量(Inline Variables)
  • 学校网站下载零基础学it从哪方面学起
  • 自己建设淘宝客网站需要备案么东莞seo网络推广
  • 杭州广告公司网站建设wordpress 插件作用
  • 做微信用什么网站wordpress 去掉80previous与 next81
  • 做名片去哪个网站it行业公司排名
  • 合肥网站建设团队网站制作实例教程
  • 博达网站建设流程中国新闻社招聘公示
  • GEE SCL掩膜高精度 NDVI 提取教程(10 米分辨率 + SCL 掩膜)——免费提供完整代码
  • 网站群建设公司排行榜网站后端用什么语言
  • 网站域名是网站架构吗邯郸网站建设怎么开发
  • 网站栏目一般有哪些广州市建设局网站
  • 代码随想录 Q88.跳跃游戏
  • 网站开发制作步骤图微信公众号的微网站怎么做的
  • 策略梯度与值函数方法进行联合能解决什么问题
  • 无锡网站推广$做下拉去118cr广元 网站建设
  • 公司网站域名到期了去哪里缴费做刀网站
  • 爱站网排行榜wordpress用户角色权限管理
  • 网校网站毕业设计的方案毕设给学校做网站
  • 企业三要素验证API——企业数字化业务开展的保障
  • 专业系统网站百度产品推广
  • Android/Linux的FEC浅析
  • 网站开发好还是app好百度问答seo