![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ARM
文章平均质量分 58
ARM
Engineers_wzf
android driving engineer_wang
展开
-
基于uart的RS232和RS485总线
我们之前讲uart的时候就已经提过一个问题,就是它并不是直接连接到SOC里面的,而是经过了一个芯片的转换。这个芯片的转换就是和我们要说的rs232、485总线有关的。RS232和RS485总线其实本质就是uart,只不过是在物理电气层做了一些相关协议。针对UART出现的问题,一些牛逼的组织就制定了一些协议和标准就出现了RS232和RS485总线...原创 2021-10-08 11:07:53 · 2549 阅读 · 1 评论 -
ARMA9接口技术之IIC(一)
I2C总线协议:IIC总线协议是一种通信协议,用与芯片之间的收发数据。它本质上就是两根线(数据线和时钟线)串行线代表:一次只能发送一个数据。半双工表示:数据传递方向是双向的,但是一次只能为一个方向。那么IIC是怎么做到仅凭两根线就可以实现数据的接收和发送呢?IIC总线就是俩根线上面挂载了很多个设备,这些设备都可以当作主机或者从机。这就类似于小时候家里的座机可以分一个接听器出来。主机可以打电话(发起通信)可以挂电话(结束通信)可以接听电话(接收数据)和说话(发送数据)而接听器只接电话(响原创 2021-09-27 09:41:21 · 849 阅读 · 2 评论 -
ARM C和汇编的混编
一、为什么要混合编程能用C的时候肯定用C,反正它也会编译成汇编指令,用C更方便但是我们要操作底层东西的时候C是操作不了的,比如改CPSR 或者软中断(SWI)C 肯定是操作不了的,C是应用层的代码,所以要混编二、混编的三种方式1、汇编调用(跳转)CBL FUNC @@FUNC();写在.C文件中2、C调用(跳转)汇编 FUNC_ASM(); @@FUNC_ASM:写在.S中 @在.s中FUNC_ASM要设置成全局,要不然C找不到.@@这俩种方式都是在.s 和 .C文件之间跳转代原创 2021-08-09 21:15:33 · 163 阅读 · 0 评论 -
ARM-A9接口技术—WDT(看门狗)
在A9芯片内部,SOC模型里面有一个看门狗控制器,它实现的功能为原创 2021-08-18 23:00:55 · 1015 阅读 · 0 评论 -
ARM-contexA9接口技术-uart
uart也是ESONY_4412芯片里面的控制器它还是一种串口通行协议它有两根数据线,所以通过uart串口连接的主机和外设都可以给对方发数据。那uart是怎么发送数据的呢?利用帧格式和设置相同的波特率就可以进行通信了。数据位只能是5到8位,利用设置相应寄存器。下面就来配置uart控制器里面相应的寄存器来实现,数据的收发,这里我们用ARM当主机,我们的电脑当外设进行通信。(一般用中间的接口com2(丝印con7))我们的串口连接的是一个小芯片用来转换什么的把,然后小芯片再的4412连接,这原创 2021-08-15 23:29:24 · 355 阅读 · 2 评论 -
ARM-A9接口技术之ADC
一、ADCADC是把模拟信号转化成数字信号的一个控制器,就跟数电里面学的8031数模转化器一样,因为我们的CPU只能处理0101010这种的数字信号,那我们连续的模拟信号它就处理不了,所以他就要使用数模转化,让cpu可以去处理这个信号。转化参数:精度为最大电压值(1.8V)/2^12=0.00044二、去配置一个ADC实现数模转化(1)我们这里做实验用的是一个电位器,去把电位器连续变化的电压转化为数字信号。我们看电路图,找到电位器所对应的引脚xadcAIN3找到它我们看到这是四个ADC专原创 2021-08-29 22:03:58 · 552 阅读 · 0 评论 -
ARMA9接口技术RTC
一、RTC(Real Time Clock)RTC本质上就是一个计数器,当我们的手机或者是其它设备断电或者是断网我们的时间依旧能走准,就是依靠RTC,一般的RCT会有自己独立的电源和时钟源。二、RTC原理原创 2021-09-01 16:22:48 · 365 阅读 · 0 评论 -
ARM基础笔记(二)
一、arm的七种异常源1)FIQ 硬件请求的快速中断2)IRQ 硬件请求的外部中断3)RESET 复位按键4)software interrupe 执行程序时产生的中断5)DATA Abort 数据访问异常(变量地址不对或不允许被访问)6)prefetch Abort 读取指令的时候异常(指令不允许访问或其他问题)7)undefined instruction 已经读取到指令但是这个指令CPU不认识七种异常源对应进入的模式...原创 2021-07-31 20:54:16 · 250 阅读 · 0 评论 -
ARM基础笔记(一)
cpu执行指令的过程:由指令计数器PC通过地址总线去访问目标地址,目标地址的数据通过数据总线存放到指令寄存器里面;再通过指令译码器把数据转换成机器码;再传输到相应的运算器进行运算.运算后把结果返回存储的内存当中(应该存在内存的栈区)pc+4(thumb状态+2),继续读取下一条指令;2.(指令集)RISC:经典指令集处理器,(去除复杂的运算器,只留下约百分之20的简单运输器,复杂操作,利用简单运算器的多种组合实现)体积小,功耗低性能不好,运算慢应用于嵌入式移动终端比如单片机.C...原创 2021-07-29 22:46:23 · 154 阅读 · 0 评论 -
汇编基础(二)
一、程序跳转指令1、修改pc的值实现跳转mov pc ,#0x00不建议使用,因为要自己计算你要跳的地址(有的时候你不知道地址,知道的情况下是可以用的)2、跳转指令 BB function用法:它不会去修改LR的值,意味着程序无法跳转回来3、带返回的跳转指令BL function用法它可以用LR去保存跳转指令下一条指令的地址然后可以使用mov PC LR 的方法跳转回来 二、条件码@条件码是判断一件事是否成立,如果是执行如果不是则跳过@有点像C 里面的 if@但是条件码并不是一原创 2021-08-03 22:34:53 · 342 阅读 · 0 评论 -
AMR-cotex-A9接口技术
单片机有很多引脚,以前学51单片机的时候,就觉得那些引脚只是用来看高低电平的,对一些mode,控制器,完全不了解,现在也不懂。模式串行,并行(这个很好理解,就是线是并行的还是串行的,就是你用了几根数据线传数据,一更就是串行,好几根就是并行)一般都是串行口,因为虽然效率低,但是更稳定,用的线也比较少。单工、半双工、全双工 :数据发送的方向ARM 几种常见的接口:这些接口并不是一个引脚,它并不是像以前理解的一个什么GPIO这种类型的就对应一个口比如说像51单片机一样(对应p1.0~p1.7引脚原创 2021-08-14 23:51:08 · 137 阅读 · 0 评论 -
ARM汇编基础—伪指令和伪操作
一、伪指令伪指令的概念:伪指令和指令一样都是会生成机器码的指令,但伪指令与指令的区别是:每条汇编指令都有对应的唯一一条机器码,而伪指令可以有很多一条机器码,也可以理解为伪指令是有很多一条汇编指令组合而成。二、伪操作伪操作:告诉编译器怎么去编译指令,而它本身不生成机器码(类似于C中的宏)@@而对于不同的编译器下所对应的伪操作都是不同的@@这里说的是基于GUN(GCC)下的伪操作@@伪操作一般以’ . '开头类似于C中的‘ # ’ @@伪操作 @.glabl symbol @@把SYMBOL原创 2021-08-09 20:00:27 · 2562 阅读 · 0 评论 -
汇编基础(三)
三、内存读写指令Load/srore :读写内存指令内容比较简单,以下是注意的点@ 以ST 开头的大都为写写内存指令@以LD开头的大都为都内存指令@ ARM 支持三种数据位: B 8 bite半字: halfword(H) 16 位字 :word 32位@ B 、 H 可以当后缀使用 代表数据位数@@ 地址要用 [ ]符号用法MOV R1 ,#0xffffffff @ 将数据存到寄存器R1MOV R2 , #0X40000000 @j将数据存入到寄存器中原创 2021-08-04 23:34:00 · 580 阅读 · 1 评论 -
ARM-A9 中断详解
中断不要看成一次异常,中断就是发生了一个信号然后我得去停止本来的程序然后去处理这个信号。我们可以利用中断去进行一些操作。例如:我的快递到了,然后我正在上班,快递打电话给我叫我去拿,我不上班去拿快递这个过程就是中断处理。拿快递是一件快乐的事。而不是想成我CPU宕机了,或者我那个二极管爆炸了,那个硬件坏了然后再去进行中断处理。—————————————————————————————扩展一下:异常处理有三种方式:轮询,中断,DMA轮询:cpu一直问你这个信号什么时候来,来了我就得处理我们可以设原创 2021-08-25 23:07:04 · 674 阅读 · 1 评论 -
汇编基础(一)
汇编是把机器码变成我们所认识的语言,并且一条汇编语句对应一条处理器能够识别的指令。一、汇编(汇编不区分大小写)汇编的arm指令分为六大类:1)数据处理指令: 数学运算(加减乘除)、逻辑运算(&|~)2)跳转指令 :实现程序的跳转,本质是修改PC的值3)load/srore指令:访问(读写)内存4)状态寄存器传送指令:访问(读写)CPSR寄存器5)软中断指令 :实现软中断6)协处理器指令: 控制协处理器的指令(一)、数据处理指令:1、数据搬移指令1)mov:用法:把原创 2021-08-02 23:17:51 · 307 阅读 · 0 评论 -
arm-contex-A9接口技术—GPIO
接口技术:说白了就是,你要控制什么的东西然后,你找出这个东西是哪个口来控制,这个口所对应的是那个控制器,那你往那个控制器里面去配置一些寄存器就可以实现了(配置控制器里面的寄存器)GPIO我们这里要控制一盏的(LED2)翻芯片手册,找gpx2-7;这里配置的是gpx2con寄存器,基本上每一个寄存器都是3位,你配置[31-28]就是配置了gpx2con[7]的状态,这里我们配置为输出(output mode)就是GPX2CON的31-28位为0x1GPX2CON = 0X01000000;原创 2021-08-15 00:25:47 · 415 阅读 · 0 评论 -
ARMA9接口技术PWM
一、PWM(pulse脉冲 width 宽度modulation 调制timer计数器)可以用来调制一段特定的脉冲波形。可以通过调节PWM控制器的寄存器的参数来调节所要输出波形的参数,来得到我们想要得到的波形(只能调宽度,不能调相幅)二、脉冲宽度调制寄存器工作原理:我们EXYNOS_4412的PWM控制器里面有五个控制计数器(CONTROL LOGIC)0~3可以通过引脚去输出这个调制的波形。4不可以输出只能再SOC内部使用。1)logic1和Logic2使用同一个一级分频器:可以设值一个八原创 2021-09-02 15:04:29 · 666 阅读 · 0 评论 -
ARM汇编(栈)
一、栈是一段CPU自动分配的空间SP寄存器(栈寄存器)指向内存中当前栈的位置栈的特性(先进后出)1、空增栈EA(empty ascending)表示该栈指向的空间是一个空的空间可以往里面放数据然后再往高地址自增一位2空减栈ED(full decending) 表示该栈指向的空间是一个空的空间可以往里面放数据,然后指针往低地址反向自减一位3、满增栈FA(full ascending)表示该栈指向的空间是一个已经放了东西的空间,需要先向高地址自增一位再来存放数据4、满减栈FD(full dec原创 2021-08-08 11:35:28 · 502 阅读 · 0 评论 -
汇编基础(一)(附图)
原创 2021-08-02 23:20:44 · 101 阅读 · 0 评论 -
ARMA9——IIC(二)
一、IIC寄存器的配置这是一个I2C总线的工作框图。我们的4412芯片在有I2c总线通信有四种工作模式:1)主机发送模式(Master Transmitter Mode):4412作为主机且是发送器2) 主机接收模式(Master Receive Mode):4412作为主机且是接收器3)从机发送模式(Slave Transmitter Mode):4412作为从机且是发送器4)从机接收模式(Slave Receive Mode):4412作为从机且是接收器一般我们都是工作在1,2种工作模式原创 2021-09-04 10:17:54 · 662 阅读 · 0 评论 -
ARM接口技术——总线总结
我们学习了以下接口技术:1、GPIO(general_pur-pose in/out put):通用型输入输出接口,只要是关于输入输出的都要用到它,它也可以配置引脚的工作模式。input/output/interrupt/uart/pwm/iic/…2、uert(universal asynchronous receiver transmitter通用 异步 接收 发送器)就是串口通信 基于UART传输协议下的一种通信接口适用于长距离,主机于辅助设备中的通信(传输速度快)3、WDT(原创 2021-09-04 15:52:20 · 1214 阅读 · 0 评论 -
SPI总线协议
spi总线协议;标准四线全双工,同步双向,串行总线原创 2021-09-04 15:53:43 · 104 阅读 · 1 评论