码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ARM体系结构基础知识--大纲


    初步了解ARM体系结构,并用作复习、回顾。这一部分MCU工程师必学,结合开发板、芯片手册去学并且要编程实践

    文章目录

        • ARM
          • 一个公司名称
          • 一类微处理器
          • 一种技术
          • ARM产品系列丰富
          • 芯片选型的一般原则
          • ARM的基本数据类型
          • 内核工作模式
          • 存储管理单元MMU
          • 高速缓冲存储器Cache
          • 程序状态寄存器
          • ARM汇编指令和寻址方式
          • ARM汇编程序设计
          • GPIO
          • ARM处理器中断与异常
          • 串行通信
            • 异步串行和同步串行的数据格式
          • PWM定时器
          • 看门狗定时器
          • RTC时钟
          • A/D转换器
          • MCU与外围设备常用的通信协议
            • 串口
            • IIC
            • SPI

    ARM

    一个公司名称
    	从事基于RISC技术的芯片设计开发
    	知识产权供应商
    
    • 1
    • 2
    一类微处理器
    	高性能
    	低功耗
    	低成本
    
    • 1
    • 2
    • 3
    一种技术
    	RISC
    		精简指令集
    			计算机结构更简单
    			处理速度更快速
    			一个周期一条指令,长度固定
    			通用寄存器更多
    				40个寄存器
    					33个通用寄存器
    					6个状态寄存器
    					1个程序计数器
    			通过指令进行寄存器和外部存储器之间的数据传输
    	CISC
    		复杂指令集
    			侧重于硬件执行指令的功能性
    			硬件结构较复杂、成本、芯片体积增加
    			多个周期一条指令,长度不固定
    			有特定目的的专用寄存器
    			直接处理外部存储器中的数据
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    ARM产品系列丰富
    	cortex系列
    		A:高性能
    		R:高实时性
    		M:轻量型、低功耗、低成本
    
    • 1
    • 2
    • 3
    • 4
    芯片选型的一般原则
    	功能
    	性能
    	价格
    	熟悉程度、开发资源
    	操作系统支持
    	升级
    	供货稳定
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    ARM的基本数据类型
    	32位架构
    		字节:8位
    		半字:16位
    		字:32位
    	支持大端、小端两种内存模式
    
    • 1
    • 2
    • 3
    • 4
    • 5
    内核工作模式

    决定哪些寄存器可以操作

    	用户模式
    	特权模式
    		系统模式
    		异常模式
    			快速中断模式
    			外部中断模式
    			特权模式
    			数据访问中止模式
    			未定义指令中止模式
    			监控模式
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    存储管理单元MMU
    	是较高级操作系统移植的前提
    	提供虚拟地址访问
    
    • 1
    • 2
    高速缓冲存储器Cache
    	提升存储性能,当执行写操作时,将数据写入缓存区,等待CPU空闲时,再写入主存储器中对应的位置
    流水线
    	取指令
    	译码
    	取操作数
    	计算
    	写回寄存器
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    程序状态寄存器
    	低八位为控制位,反映处理器工作状态
    
    • 1
    ARM汇编指令和寻址方式
    ARM汇编程序设计
    GPIO
    通用IO接口
    查引脚数据寄存器
    查看地址映射表
    用结构体封装
    通过成员变量访问寄存器
    
    • 1
    • 2
    • 3
    • 4
    • 5
    ARM处理器中断与异常
    7种异常
    复位异常优先级最高
    异常向量表,一般以0x0地址开始
    
    • 1
    • 2
    • 3
    串行通信
    串行
    	一根线,一位一位传输数据
    并行
    	多根线,数据的各个位同时传输
    
    • 1
    • 2
    • 3
    • 4
    异步串行和同步串行的数据格式
    	异步串行
    		指的是字符与字符之间异步,单个字符的每一个二进制位之间是同步的
    		一个信息帧分为四个部分
    			1起始位
    			5~8数据位
    			1奇偶校验位
    			1~2停止位
    	同步串行
    		数据与数据之间的发送,有先后顺序
    		一个信息帧分为三部分
    			2个字符表示起始标志
    			n个连续数据
    			2个字节的循环冗余校验码
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    PWM定时器
    可以定时触发中断、标记事件之间的间隔、输出PWM信号等
    PWM是利用处理器的数字输出来对模拟电路进行控制的技术
    一般由时钟源的信号经过分频器给到定时器
    定时器内部有递减计数器,经过一个时钟周期,产生定时器中断,然后自动装载递减计数器
    通过计算,设置多级分频、输出指定频率的PWM波,驱动无源蜂鸣器
    
    • 1
    • 2
    • 3
    • 4
    • 5
    看门狗定时器
    用于程序异常时,强制重启系统
    
    • 1
    RTC时钟
    通过外部晶振提供毫秒级时钟中断
    
    • 1
    A/D转换器
    技术指标
    	分辨率
    	转换速率
    	量化误差
    	偏移误差
    	满刻度误差
    	线性度
    类型
    	积分型
    	逐次逼近型
    	并行比较/串行比较型
    	电容阵列逐次比较型
    	压频变换型
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    MCU与外围设备常用的通信协议
    串口

    略

    IIC
    	两根线,串行8位全双工,双向通信,可以多主机
    		数据线SDA
    		时钟线SCL
    	总线引脚
    	物理连接
    	信号类型
    		开始信号
    		结束信号
    		应答信号
    	总线时序
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    SPI
    	四线,串行同步,双向通信,一个主机多个从机
    	缺点是没有应答机制
    
    • 1
    • 2
  • 相关阅读:
    【网络通讯开发系列】如何抓取终端设备的TLS报文(一)
    基础算法优化——Fast Modular Multiplication
    oracle回收站管理
    【Flink 问题集】The generic type parameters of ‘Collector‘ are missing
    Flink入门系列01-概述
    基于机器学习的fNIRS信号质量控制方法
    [buuctf.reverse] 117-120
    【附源码】Python计算机毕业设计税务综合信息平台
    27.【C/C++ 最全vector数组的用法 (详解)】
    java毕业生设计中小学家校通系统计算机源码+系统+mysql+调试部署+lw
  • 原文地址:https://blog.csdn.net/qq_42534809/article/details/126685674
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号