ARM
文章平均质量分 78
@随风()
这个作者很懒,什么都没留下…
展开
-
IIC实验(lv9-day22-24)
IIC总线是Philips公司在八十年代初推出的一种串行、半双工总线主要用于近距离、低速的芯片之间的通信;IIC总线有两根双向的信号线一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步;IIC总线硬件结构简单,成本较低,因此在各个领域得到了广泛的应用。IIC总线是一种多主机总线,连接在IIC总线上的器件分为主机和从机,主机有权发起和结束一次通信,而从机只能被主机呼叫;当总线上有多个主机同时启用总线时,IIC也具备冲突检测和仲裁的功能来防止错误产生;每个连接到IIC总线上的器件都有一个唯一原创 2022-06-08 01:43:00 · 623 阅读 · 0 评论 -
PWM实验(lv9-day11)
由电路原理图,可知4412开发板上嗡鸣器连接到开发板上的GPD0_0我们会用这个引脚来产生一个PWM来控制嗡鸣器。这个寄存器用于设置PWM1级分频和死区长度。[7:0] 设置0,1的一级分频(我们要设置)。[15:8]设置2,3,4的一级分频。[23:16] 设置死区长度(本次实验没有使用到)设置2级分频(这里我们设置[3:0]位)设置PWM自动重装载值的开和关以及输出有效电平,装载计数器和比较寄存器值,使能定时器(这里我们只要设置定时器0,也就是只要设置这个寄存器的[3:0]位)。第3位设原创 2022-06-02 11:59:13 · 682 阅读 · 0 评论 -
WTD实验(lv9-day15)
文章目录WTD实验(lv9-day15)1 WDT简介2exynos4412下的WDT控制器3 WDT寄存器详解3.1 WTCON3.2 WTCNTWTD实验(lv9-day15)1 WDT简介由上图可知当cpu程序正常工作时,会定时去刷新WDT的计数器,也就是说WDT的计数器在程序正常运行时永远不会为0. 当程序异常不能定时刷新WDT的计数器(喂狗),那么WDT就会给cpu发送一个复位信号系统复位。2exynos4412下的WDT控制器这是计算看门狗周期t_watchdog = 1/(P原创 2022-05-19 14:04:34 · 392 阅读 · 0 评论 -
UART实验代码实践(lv9-day14.2)
2 输入输出重定向原创 2022-05-17 14:46:41 · 505 阅读 · 0 评论 -
UART实验原理(lv9-day14.1)
文章目录UART实验(lv9-day14)1 UART帧格式详解1.1 UART简介1.2 串行与并行通信1.3 单工与双工1.4 波特率UART实验(lv9-day14)1 UART帧格式详解1.1 UART简介1.2 串行与并行通信优点效率高,缺点传输线较多,布线困难。优点 节约资源,缺点:传输速度较慢。1.3 单工与双工1.4 波特率#8## 1.5 UART帧格式...原创 2022-05-16 08:12:41 · 850 阅读 · 0 评论 -
C工程与寄存器封装(lv9-day13)
文章目录C工程与寄存器封装1 C语言工程简介C工程与寄存器封装1 C语言工程简介原创 2022-05-14 17:55:32 · 610 阅读 · 0 评论 -
GPIO实验(lv9-day12)
文章目录GPIO实验(lv9-day12)1 GPIO简介2 LED实验步骤2.1 通过电路原理图分析LED的控制逻辑2.2 通过电路原理图查找LED与Exynos4412的连接关系2.3通过数据手册分析GPI0中哪些寄存器可以控制LED22.3.1 GPX2CON 的相关配置(设置GPIO输入模式 还是输出模式)2.3.2 GPX2DAT (设置GPIO输出高电平或者低电平)2.3.3 通过程序去操控对应的寄存器完成对LED的控制GPIO实验(lv9-day12)1 GPIO简介GPI0 (Gen原创 2022-05-12 14:25:08 · 873 阅读 · 0 评论 -
FS4412开发环境搭建
文章目录FS4412开发环境搭建1 交叉编译的搭建1.1 ubuntu交叉编译工具链的安装2 地址映射表2.1CPU控制硬件的原理FS4412开发环境搭建1 交叉编译的搭建1.1 ubuntu交叉编译工具链的安装【实验环境】ubuntu 14.04发行版【注意事项】1、实验步骤中以“$”开头的命令表示在 ubuntu 环境下执行【实验步骤】1、安装交叉编译工具链在 ubuntu 下打开一个终端并进入到家目录$ cd ~ 在家目录下创建“Linux_4412/toolchain”目录用于原创 2022-05-11 09:12:34 · 401 阅读 · 0 评论 -
ARM-伪操作与混合编程(lv9-10)
[@Toc]伪操作与混合编程1伪操作伪操作:不会生成代码,只是在编译阶段告诉编译器怎么编译1.1举例GNU伪操作一般都与‘.’开头.global 将一个符号声明为全局符号.global symbol @将一个symbol 声明为全局.local 将符号声明成局部符号.local symbol @将一个symbol 声明为局部.equ 相当于C语言中的宏...原创 2022-05-09 23:10:17 · 432 阅读 · 0 评论 -
ARM-专用指令(lv9-day9)
ARM-专用指令(lv9-day9)1 状态寄存器与传送指令状态寄存器与传送指令:访问(读写)CPSR寄存器。原创 2022-05-07 08:23:54 · 509 阅读 · 0 评论 -
ARM-栈的种类与应用(lv9-day8)
文章目录ARM-栈的种类与应用(lv9-day8)1 多寄存器内存访问指令1.1 写内存 STM 寄存器,{寄存器-寄存器}1.2 读内存 LDM 寄存器,{寄存器-寄存器}2 多寄存器内存访问指令的寻址方式2.1 STMIA2.2 STMIB x {x1-x2}2.3 STMDA x {x1-x2}2.3 STMDB x {x1-x2}ARM-栈的种类与应用(lv9-day8)1 多寄存器内存访问指令1.1 写内存 STM 寄存器,{寄存器-寄存器}MOV R1,#1MOV R2,#2M原创 2022-05-04 10:21:08 · 489 阅读 · 0 评论 -
ARM-跳转与储存器访问指令
ARM-跳转与储存器访问指令1 跳转指令1.1 直接去修改PC寄存器的值(不建议使用,需要我们自己去计算绝对地址)MAIN: @开始的地址是0 MOV R1,#1 MOV R2,#2 MOV R3,#3 @更改PC寄存器的值,跳转到0X18这个地址 MOV PC,#OX18 MOV R4,#4 MOV R5,#5FUNC: @这里是0X18 MOV R6,#6 MOV R7,#7 MOV R8,#8 1.2 通过不原创 2022-04-29 15:30:39 · 1605 阅读 · 2 评论 -
数据处理3-4(lv9-day6)
目录1 进位与借位1.1进位 ADDS和ADC1.2借位 SUB和 SBC2关于C语言与汇编的讨论1 进位与借位由于ARM是32位的,如果我们 要进行两个64位的数进行计算,那么就需要将数据拆成32位(高位放在一个寄存器,低位放在一个寄存器)高位减高位低位减低位。这时候就可能出现进位或者借位的情况。(这时候要使用带借/进位的减/加法指令)。这需要CPSR寄存器参与。1.1进位 ADDS和ADC如果没有使用ADD和ADC使用ADDS和AD..原创 2022-04-28 22:21:18 · 1030 阅读 · 0 评论 -
数据处理2
加法指令MOV R2,#5MOV R3,#3@加法指令,R1=R2+R3ADD,R1,R2,R3原创 2022-04-28 17:34:07 · 406 阅读 · 0 评论