网站关键词多少个,下载官方正版百度,网站改版申请,外贸正品网站ARM课程介绍 课程特点 ARM开发 -- Linux移植 -- 驱动开发 前后联系#xff1a;ARM和系统移植为驱动开发学习做准备工作 所需知识#xff1a;C语言基础及STM32需要的硬件知识 课程要求 目标#xff1a;学习程序运行原理、硬件的控制原理 会看原理图、芯片手册、学习…ARM课程介绍 课程特点 ARM开发 -- Linux移植 -- 驱动开发 前后联系ARM和系统移植为驱动开发学习做准备工作 所需知识C语言基础及STM32需要的硬件知识 课程要求 目标学习程序运行原理、硬件的控制原理 会看原理图、芯片手册、学习解决问题的方法不要死记硬背 要求操作过程中一定要大胆动手、大胆操作有问题及时询问 提醒耐心、耐心、耐心、多敲、多敲、多敲、多练、多练、多练 课程内容 底层课程导学 Linux层次架构、计算机基础知识、总线、存储结构 ARM体系结构 ARM基础概念、ARM寄存器、工作模式、运行原理、指令流水线、异常处理 工程搭建 环境安装、工程搭建 汇编指令 数据处理、跳转、load/store、状态寄存器、异常中断、协处理器 CPU控制硬件原理 原理、实验汇编语言、C语言 学习方法 底层课程导学 接口技术 GPIO通用输入输出使能、配置模式输出、输出类型推挽/开漏、输出速度、输出数据 串口UART、232、485、SPI、I2C、单总线、CAN、USB、 无线通信WIFI、LoRA、Zigbee、NB-IoT、蓝牙、4G、5G PWM脉冲宽度调制调节平均电压、屏幕、电机 ADC模数转换 嵌入式系统 嵌入式系统了解 Linux层次结构 进程管理进程的创建、调度、销毁、通信。。。。 内存管理内存的申请、释放、映射。。。。 文件管理访问硬盘的文件 设备管理硬件设备的驱动文件 网络管理协议栈TCP/IP、UDP/IP进行通信 计算机的组成 控制器、运算器、存储器、输入、输出 输入设备将其他信号转换为计算机可以识别的信号电信号。输出设备将电信号、转为人或其他设备能理解的信号。运算器CPU对信息处理和运算的部件常进行算术运算和逻辑运算其核心是算术逻辑单元ALUCPU中用各种各样的数字电路搭配成各种各样的运算电路如加、减法等。控制器整个计算机的控制中心存储器存放程序和数据的部件也是计算机能够实现“存储程序控制”的基础。 程序指令的有序集合 ROM flash (EMMC)、磁盘空间 、掉电不丢失数据 只读存储器_百度百科 RAM 内存、掉电丢失数据 随机存取存储器_百度百科 计算机的进制 计算机系统中使用高、低电平表示逻辑1和0 数据在计算机中的存储、传输、运算数据的处理方式都是以二进制的形式进行的 数据的传输通过总线Bus真正传递的是电信号高低电平0、1。运算在电路中进行集成电路中运算。 总线 总线 总线Bus是计算机各种功能部件之间传送信息的公共通信干线它是由导线组成的传输线束 按照计算机所传输的信息种类计算机的总线可以划分为数据总线、地址总线和控制总线分别用来传输数据、数据地址和控制信号。 数据总线 1是CPU与内存或其他器件之间的数据传送的通道。 2数据总线的宽度决定了CPU和外界的数据传送速度。 3每条传输线一次只能传输1位二进制数据。如: 8根数据线一次可传送一个8位二进制数据(即一个字节)。 4数据总线是数据线数量之和。 地址总线 1CPU是通过地址总线来指定存储单元的。 2地址总线决定了cpu所能访问的最大内存空间的大小。如: 10根地址线能访问的最大的内存为1024位二进制数据1024个内存单元 3地址总线是地址线数量之和。 控制总线 1CPU通过控制总线对外部器件进行控制。 2控制总线的宽度决定了CPU对外部器件的控制能力。 3控制总线是控制线数量之和。 总结 数据总线的宽度决定CPU与其他元器件一次最大传送的数据量 地址总线的宽度决定CPU的寻址能力 控制总线决定CPU对其他元器件的控制能力。 DMA总线 DMA(Direct Memory Access)即直接存储器访问使用DMA总线可以不通过CPU直接在存储器及外设之间进行数据传递。 三级存储结构 cache 速度快、价格贵、容量小、断电丢失、CPU可以直接访问。存储当前正在执行的程序中的活跃部分,以便快速地向CPU提供指令和数据 基本原理 Cache的基本原理_cache颠簸-CSDN博客 高速缓存Cache详解(西电考研向-CSDN博客 主存储器速度、价格、容量介于CACHE和辅助存储器之间、断电丢失、CPU可以直接访问。存储当前正在执行的程序和数据 辅助存储器速度慢、价格低、容量大、断电不丢失、cpu不可以直接访问。存储暂时不运行的程序和数据需要时再传送到主存。 Cache对程序员来说一般会有透明性也就是程序员其实是看不到Cache的因此不能对它进行操作。 ARM体系结构 认识ARM ARM的含义 ARM代表一个公司 安谋国际科技股份有限公司_百度百科 1978年Acorn成立于英国剑桥 1980年晚期苹果电脑开始与艾康电脑合作开发新版的ARM核心 1985年开发出全球第一款商用RISC处理器-ARM 1990年艾康电脑财务危机苹果和VLSI投资独立出子公司Advanced RISC MachinesARM 1991年ARM推出RISC处理器-ARM6 93-ARM7 97--ARM9TDMI 99--ARM9E 2001--ARMV6 2002--ARM11 2004年发布ARMV7架构的Cortex系列处理器同时推出Cortex-M3 2005年发布Cortex-A8处理器 07 M1和Cortex-A9 09 实现Cortex-A9 发布 M0 2010--M4 ARM可以表示一些处理器的统称 早期经典处理器ARM7 ARM9 ARM11 家族 Cortex-X系列 新出的通常用在手机只用一个除了天机-----》价格昂贵 Cortex-A系列 针对开放式操作系统的高性能处理器 应用于智能手机、数字电视、智能本等高端运用 Cortex-R系列 提供非常高的性能和吞吐量同时保持精准的时序属性和可预测的中断延时通常用于时序关键的应用中 针对实时系统、满足实时性的控制需求 应于汽车制动系统、动力系统等 Cortex-M系列 为单片机驱动的系统提供了低成本优化方案 应用于传统的微控制器市场、智能传感器、汽车周边等 ARM表示一种指令集 指令能够指示处理器执行命令称之为指令 指令集处理器能够识别的指令的集合称为指令集 ARM指令集所有指令机器码都专用32bit存储空间代码灵活指令简洁执行ARM指令PC每次自加4 Thumb指令集所有指令机器码都专用16bit存储空间代码灵活指令简洁执行ARM指令PC每次自加2 ARM的命名有指令集架构、 处理器架构、 处理器型号三类命名规则 架构: arm-v6arm-v7(32Bits)arm-v8(64Bitsarm-v9.2 架构指支持的汇编指令集不同架构汇编指令集不同 ARMv8-A---------A53--------S5P6818 (主频1.4GHz) 内核 cortex-A9A53A73A77 ARM公司授权芯片的公司芯片产家在内核的基础上增加了一些外设发布一款芯片这些芯片可以统称为SoC天机9300、骁龙 SoCSystem of Chip:片上系统 S5P6818(8核) 指令集RISC和CISC 精简指令集(RISC)--微处理器 只保留常用的的简单指令硬件结构简单复杂操作一般通过简单指令的组合实现一般指令长度固定且多为单周期指令。 RISC处理器在功耗、体积、价格等方面有很大优势所以在嵌入式移动终端领域应用极为广泛 举例如有加法运算器 没有乘法运算器 3*3 ---》333 复杂指令集(CISC)--电脑CPU 不仅包含了常用指令还包含了很多不常用的特殊指令硬件结构复杂指令条数较多一般指令长度和周期都不固定 CISC处理器在性能上有很大优势多用于PC及服务器等领域 ARM-v7架构 ARM 指令集32-bit 一条指令占32位内存空间 Thumb 指令集16-bit 一条指令占16位内存空间 ARM-V8架构向下兼容ARM-v7架构 ARM指令集A64 Thumb指令集T32 ARM-v7 ARM指令集A32 Thumb指令集T16 ARM指令集功能更全性能更高 thumb指令集比ARM指令集指令密度要大 指令对比查看 查看精简指令的指令可以编译后用反汇编查看代码指令) 使用交叉编译工具编译程序生成arm的可执行程序 创建一个a.c文件随便写一个程序 编译生成a.out可执行文件arm-none-linux-gnueabi-gcc a.c 查看可执行文件属性file a.out 使用反汇编的命令将elf文件转换为反汇编文件.dis arm-none-linux-gnueabi-objdump -D a.out a.dis 查看ubuntu复杂指令集的指令 编译生成a.out可执行文件gcc a.c 查看文件属性file a.out 反汇编objdump -D a.out a.dis 编译原理 机器码二进制是处理器能直接识别的语言不同的机器码代表不同的运算指令处理器能够识别哪些机器码是由处理器的硬件设计所决定的不同的处理器机器码不同所以机器码不可移植 汇编语言是机器码的符号化即汇编就是用一个符号来代替一条机器码所以不同的处理器汇编也不一样即汇编语言也不可移植 C语言在编译时我们可以使用不同的编译器将C源码编译成不同架构处理器的汇编所以C语言可以移植 ARM的数据类型 ARM-v7架构:32bit处理器 char8位 halfword:16位 word32位 doubleword64位(cortex-a) ARM-v8架构64bit处理器 向下兼容32位(我们学习32位) char8位 halfword:16位 word32位 doubleword64位(cortex-a) quadword128位(ARM-v8) 处理器的32位和64位什么含义 32位一条指令可以进行32位数据的运算 64位一条指令可以进行64位数据的运算 字节序 大端对齐 低地址存放高字节高地址存放低节字 小端对齐 低地址存放低字节高地址存放高字节 注ARM一般使用的是小端对齐 1.指针 2.共用体