ARM
文章平均质量分 63
CSDN_Xian
这个作者很懒,什么都没留下…
展开
-
24.IIC编程
文章目录IIC编程IIC编程#include "exynos_4412.h"/****************MPU6050内部寄存器地址****************/#define SMPLRT_DIV 0x19 //陀螺仪采样率,典型值:0x07(125Hz)#define CONFIG 0x1A //低通滤波频率,典型值:0x06(5Hz)#define GYRO_CONFIG 0x1B //陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s)#de原创 2021-08-07 07:30:04 · 340 阅读 · 0 评论 -
23.IIC控制器和MPU6050
文章目录4412下的IIC控制器主机发送和接收的流程图IIC寄存器详解MPU6050原理MPU6050读写时序4412下的IIC控制器主机发送和接收的流程图IIC寄存器详解第一个寄存器:中断:当主机发送完一个数据或接收完一个数据要产生中断第二个寄存器其它寄存器MPU6050原理该芯片在CD卡旁边,标着U21MPU6050读写时序...原创 2021-08-06 15:07:32 · 472 阅读 · 0 评论 -
22.IIC总线原理
文章目录IIC总线简介IIC总线通信过程IIC总线简介IIC总线通信过程第2步,主机发送一个字节数据指明从机地址(7位),和后续字节的传送方向(第0位是0表示主机给从机发送,是1表示从机给主机发送)第4、5步的发送器和接收器指的是第2步中指明的发送方向后主动发送数据的一方和被动接收的一方...原创 2021-08-05 10:24:29 · 451 阅读 · 0 评论 -
21.PWM实验
文章目录蜂鸣器的工作原理什么是PWM蜂鸣器的工作原理有源蜂鸣器:高电平响,低电平不响。一般使用GPIO来控制给高低电平。无源蜂鸣器:加交变电流后,高低电平频繁变化,高电平时线圈接通电生磁,吸引永磁铁,低电平时无电生磁,排斥永磁铁,以此产生永磁铁的振动,当振动频率在20-20000Hz之间人耳能听到声音。什么是PWM通过Delay和GPIO的控制产生高低电平,由于CPU主要去执行Delay函数,太耗资源,因此我们使用PWM的方式去产生高低电平。PWM在SOC上,由PWM生产高低电平信号而不用使原创 2021-08-02 15:56:08 · 1233 阅读 · 0 评论 -
20.RTC实验
文章目录RTC简介4412下的RTC控制器RTC寄存器详解RTC编程RTC简介4412下的RTC控制器BCD码:用四位二进制数表示一位十进制数。alarm:闹铃功能。当设置的闹铃预期时间与实际时间相等,激发闹铃功能。原理简述:晶振通过分频器分频后降到1Hz,即1秒输入信号1次,信号给秒寄存器做累加,当累加到60给分寄存器发信号让其累加,当分寄存器累加到60给小时寄存器发信号,其会累加,以此类推实现实时时钟。RTC寄存器详解用BCD数表示则000000100011表示023,四位二进制表原创 2021-07-30 09:23:43 · 589 阅读 · 0 评论 -
19.ADC实验
文章目录什么是ADCADC的主要参数分辨率(精度)4412下的ADC控制器ADC寄存器详解ADC编程什么是ADCCPU只认识数字信号。ADC将外设采集到的模拟信号转换成数字信号给CPU。模拟信号:数字信号:ADC的主要参数分辨率(精度)分辨率表示会触发数字量变化的最小模拟信号的变化量。分辨率又称精度,通常以数字信号的位数来表示。ADC的分辨率以输出二进制(或十进制)数的位数表示。12位的ADC,最大值是每一位为1,即2^12-1,最小值为0,因此ADC的精度是1.8v/2 ^12,因此原创 2021-07-29 17:09:24 · 549 阅读 · 0 评论 -
18.中断处理
文章目录中断处理框架搭建为什么LR寄存器要减4中断程序的跳转过程中断处理程序编程为什么按了一下KEY2会一直打印让CPU识别是哪个外设发送的中断信号当再次有中断信号产生时,让CPU告诉中断控制器CPU已处理完之前的异常中断中断处理框架搭建为什么LR寄存器要减4sub lr, lr, #4中断程序的跳转过程LED2闪烁,当按下KEY2时发送异常中断信号,执行异常处理程序,执行完后再继续闪烁中断处理程序编程start.s.text.global _start_start: /* *原创 2021-07-28 14:21:38 · 955 阅读 · 1 评论 -
17.中断控制器
文章目录中断控制器4412下的中断控制器本次实验用到的寄存器编程中断控制器如果外设直接发送中断给CPU会存在下列问题:当CPU在处理一个中断时会屏蔽其它中断由于CPU是多核的,中断请求会随机发送给任意CPU,会造成混乱中断不清楚是属于FRQ还是IRQ…因此,三星的4412引入了中断控制器4412下的中断控制器在芯片手册第9章中断表中查到GPX1_1代表的中断9属于ID为57的中断号,后续设置57号中断寄存器本次实验用到的寄存器第一个寄存器第二个寄存器第三个寄存器:8位原创 2021-07-27 15:30:21 · 708 阅读 · 0 评论 -
16.轮询与中断
文章目录CPU与硬件的交互方式轮询方式实现按键实验代码GPIO中断相关寄存器详解编程CPU与硬件的交互方式DMA:直接存储器访问。轮询方式实现按键实验需求:按下按键就向SecureCRT发送一句话在开发板上找到按键K2,在电路原理图上搜索到相应的原理图分析可知:UART_RING这根线当K2断开事是1.8V高电平,当K2连接时是0V低电平把GPX1_1设置成输入功能代码#include "exynos_4412.h"int main(){ /*将GPX1_1设置成输入功能*/原创 2021-07-26 15:24:39 · 540 阅读 · 0 评论 -
15.WDT实验
文章目录WDT简介WDT的工作原理WDT简介看门狗定时器:用来监控,当软件出现故障,可向CPU发送复位信号,自动实现复位。其位置在CPU外部,SOC上WDT的工作原理看门狗定时器:本质是一个计数器,给一个值,一直递减,递减至零,向CPU发送复位信号喂狗:让看门狗定时器刷新一个值,使其不递减至零正常的程序会定时喂狗,而出错的程序无法执行喂狗,则定时器会递减至零,发送复位信号。...原创 2021-07-25 10:37:56 · 655 阅读 · 0 评论 -
9.专用指令
文章目录状态寄存器传送指令写CPSR为什么复位后只有CPSR的值仍然是0x000000D3软中断指令不能占用异常向量表的空间协处理器指令伪指令状态寄存器传送指令@ 1.4 状态寄存器传送指令:访问(读写)CPSR寄存器 @ 读CPSR @ MRS R1, CPSR @ R1 = CPSR @ 写CPSR @ MSR CPSR, #0x10 @ CPSR = 0x10 @ 在USER模式下不能随意修改CPSR,因为USER模式属于非特权模式 @ MSR CP原创 2021-07-24 17:09:11 · 373 阅读 · 0 评论 -
14.UART实验
文章目录UART简介UART帧格式硬件连接UART控制器UART简介UART就是串口。并行通信:可以一次性发送多个信号串行通信:一次性只能发送一个信号单工通信:发送数据只能从一方发给另一方半双工通信:发送器和接收器可以互发数据,但不能同时进行全双工通信:发送器和接收器可以互发数据,也能同时发送和接收UART帧格式空闲位是高电平。串行通信先发低位。校验位遵循奇偶校验,即1的个数是偶数就置1,奇数置0。校验位可有可无,根据需求,如果要求发送的速度快准确性不要求,可以不用校验位;如果原创 2021-07-22 09:40:36 · 1937 阅读 · 0 评论 -
13.C工程与寄存器封装
文章目录启动代码分析启动代码分析.text.global _start_start: /* * Vector table:占用异常向量表空间,让它不再能被其它代码占用 */ b reset b . @跳转到程序自身 b . b . b . b . b . b .reset: /* * Set vector address in CP15 VBAR register */ ldr r0, =_start @把异常向量表首地址给r0 mcr p15, 0,原创 2021-07-20 15:34:04 · 268 阅读 · 0 评论 -
12.GPIO实验
GPIO简介GPIO是一个在SOC上的一个硬件电路,用来控制信号的输入和输出。LED实验的步骤通过控制GPIO来实现LED灯的亮与灭。通过电路原理图分析LED的控制逻辑我们选择点亮LED2这盏灯。在DEV_board的电路原理图中输入LED2关键字搜索到其电路图如下。分析:LED2的正极连着3.3V的直流电,负极只要三极管2、3导通即可。通过CHG_COK给高电平信号即可让三极管的2、3导通。低电平熄灭。通过电路原理图查找LED与4412的关系复制CHG_COK到CORE_BOA原创 2021-07-19 10:50:54 · 897 阅读 · 0 评论 -
11.FS4412开发环境搭建
文章目录初识开发板硬件资源初识电路原理图初识开发板硬件资源初识电路原理图原创 2021-07-18 14:06:59 · 453 阅读 · 0 评论 -
10.伪操作与混合编程
文章目录伪操作C和汇编的混合编程ATPCS协议伪操作@ 3.伪操作:不会生成代码,只是在编译之前告诉编译器怎么编译;类似于C语言的宏、条件编译 @ GNU的伪操作一般都以‘.’开头 @ .global symbol @ 将symbol声明成全局符号,可以跨文件使用 @ .local symbol @ 将symbol声明成局部符号,只能在本文件内使用 @ .equ DATA, 0xFF 类似C语言中的宏定义 @ MOV R1, #DATA @原创 2021-07-16 14:15:44 · 195 阅读 · 0 评论 -
8.栈的种类与应用
文章目录多寄存器内存访问指令多寄存器内存访问指令的寻址方式多寄存器内存访问指令@ 多寄存器内存访问指令:可以将多个寄存器写入内存,或从内存中读取多个寄存器 @ MOV R1, #1 @ MOV R2, #2 @ MOV R3, #3 @ MOV R4, #4 @ MOV R11,#0x40000020 @ STM R11,{R1-R4} @ 将R1-R4寄存器中的数据写入到以R11为起始地址的内存空间中 @ LDM R11,{R6-R9} @ 将以R11为起始地址的内原创 2021-07-14 14:36:28 · 389 阅读 · 0 评论 -
7.跳转与存储器访问指令
文章目录跳转指令ARM指令的条件执行比较指令内存访问指令ARM指令的寻址方式作业跳转指令@ 1.2 跳转指令:实现程序的跳转,本质就是修改了PC寄存器 @ 方式一:直接修改PC寄存器的值(不建议使用,需要自己计算目标指令的绝对地址)@ MAIN: @ MOV R1, #1 @ MOV R2, #2 @ MOV R3, #3 @ MOV PC, #0x18 @ MOV R4, #4 @ MOV R5, #5 @ FUNC: @ MOV R6, #6 @ MOV原创 2021-07-13 11:34:36 · 1364 阅读 · 0 评论 -
6.数据处理指令
文章目录数据搬移指令验证PC寄存器验证ARM指令大小都是32位(4字节)立即数数据运算指令基本格式加法减法逆向减法指令乘法除法按位与按位或按位异或左移右移位清零数据运算指令的格式扩展验证CPSR寄存器32位寄存器怎么运算64位的数编程实现用32位ARM处理器实现两个128位数据相加要学会用汇编的思想写C语言数据搬移指令@ 1.1 数据处理指令:数学运算、逻辑运算 @ 数据搬移指令 @ MOV R1, #1 @ 往R1寄存器存值1 @ R1 = 1 @ 第二种写法 @ MOV原创 2021-07-12 18:16:48 · 1545 阅读 · 0 评论 -
5.ARM指令集仿真环境搭建
文章目录Keil安装Keil集成开发环境安装gcc交叉编译工具链创建汇编工程Keil安装Keil集成开发环境安装gcc交叉编译工具链创建汇编工程原创 2021-07-11 08:31:26 · 551 阅读 · 0 评论 -
4.ARM异常处理
文章目录ARM异常处理异常的概念异常处理机制异常源ARM异常模式ARM异常响应异常向量表异常返回IRQ异常举例ARM异常处理异常的概念处理器的指令集和异常处理是重要的两大知识点。异常类似中断和信号的概念,正常执行代码时遇到异常去跳转处理异常处理程序,处理完后再跳转回到原来下一条指令继续执行。不知道异常何时到来。异常处理函数也是我们自己写的。异常处理机制异常处理机制:我怎么去处理异常。异常源异常源:遇到哪些事情能产生中断。有7类异常源中断:一般是硬件发送而产生的。Software原创 2021-07-10 10:41:35 · 1589 阅读 · 0 评论 -
3.ARM寄存器组织
文章目录ARM寄存器组织寄存器ARM寄存器专用寄存器控制寄存器ARM寄存器组织寄存器什么是寄存器?寄存器是CPU内部的存储器。特点:读写快,因为其在CPU内部。没有地址C语言中register修饰的局部变量类型大小小于等于int型可以放在寄存器中。不可 &a取地址。因为ARM不支持浮点型运算符,因此只能用int以下的类型。局部变量在函数运行完后会销毁不占用寄存器资源。寄存器中没有地址。通用寄存器:想存什么就存什么专用寄存器:规定必须存什么,如PC寄存器只能存指令地址控制寄存器原创 2021-07-09 15:18:21 · 570 阅读 · 0 评论 -
2.ARM处理器概论
文章目录ARM简介RISC和CISCSOC片上系统ARM指令集什么是指令集ARM指令集编译原理ARM存储模型(ARM是如何存储指令的)ARM数据类型字节序ARM指令存储ARM工作模式ARM简介ARM公司前身是Acorn的一个部门,专门研发Acorn公司的处理器。RISC:精简指令集处理器经典产品:ARM7(开始火起来)、ARM9、ARM11从2004年起ARM命名不用数字,开始用Cortex-R\A\M系列命名,针对市场上不同需求的CPUA系列:application,用于大型系统R系列:re原创 2021-07-09 11:28:20 · 615 阅读 · 0 评论 -
1.计算机硬件基础
文章目录知识体系嵌入式系统分层应用开发和底层开发Linux内核五大功能ARM体系结构和接口技术底层知识的学习方法计算机基础知识计算机的进制计算机的组成总线三级存储结构地址空间CPU原理概述简述为什么地址总线为32bit的处理器的地址空间为4G简述CPU执行指令的过程知识体系ARM:就是个处理器。系统移植:就是给硬件装系统驱动开发:就是给硬件写驱动程序嵌入式系统分层操作系统的作用:向下管理硬件、向上提供接口(API)应用开发和底层开发Linux内核五大功能ARM体系结构和接口技术原创 2021-07-08 19:18:26 · 720 阅读 · 0 评论