![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ARM
文章平均质量分 66
东东7_7
这个作者很懒,什么都没留下…
展开
-
Tasking开发环境的使用和TriCore芯片C和汇编之间相互调用的一些问题
前言Tasking Tricore是一款集成编辑,编译,调试,仿真于一体的集成开发环境,他支持英飞凌32Bit行业领先级芯片,包含所有的TriCore和Aurix芯片,这些芯片主要用于汽车和工业。它支持C,C++,汇编编程,具有一个多核连接器(linker)工程的创建通过new一个project来创建一个新的工程,对他进行名字和芯片的选择,我们就会得到一个可以打印hellow world的工程使用时候遇到的一些问题具体的使用方法就不多说了,主要想说一下我在使用中遇到的一些问题找不到头文件和C原创 2021-08-11 09:26:42 · 3459 阅读 · 0 评论 -
链接脚本之bss段的清空
。原创 2020-10-16 18:30:37 · 541 阅读 · 0 评论 -
五点触摸屏的实现
原理图的理解它通过四根线连接在底板上,其中这四根的线连接的的是一个管理触摸屏,其中EINT14:是一个普通的是gpio接口,他和按键一样,可以产生一个外部中断nRESET: 他是一个复位引脚SDA2:i2c的数据总线SCL2:i2c的时钟总线通过电平转换芯片,连接到主板上i2c控制原理发数据的时候,第一个数据是主机开始选择从机,第一个数据是第一个自己的地址,第二个数据是从机的地址,一次八位数据,所有的停止和开始都是主机说了算写的时候,主机申请读信号,从机开始发送,然后主机开始响应原创 2020-10-12 19:39:25 · 656 阅读 · 0 评论 -
ARM之未定义指令异常和SVC异常
异常向量表的概述在上一章,我们学习了建立异常向量表,这里我们可以通过看arm的手册,我们每一种异常都对应一个工作模式,下面我就来尝试触发一下未定义指令异常和SVC异常异常发生的说明简单的来说就是先保存现场,之后恢复现场保存现场:我们使用的是arm指令集,所以我们先将pc保存在lr中,并将pc-4(原本写pc默认的是pc+4),再将cpsr寄存器保存在spsr中恢复现场:将lr写入pc,spcp写入cpsr,(通过ldm指令)int main(void){ rebuild_vectors_t原创 2020-10-09 20:28:41 · 1177 阅读 · 0 评论 -
ARMV7架构下的普通寄存器和CPSR寄存器及SPSR寄存器
APSR他的前四位为为条件标记位,并和你的主动更新的意愿有关系N[31]:负的条件标记Z[30]:零的条件标记C[29]:操作进位V[28]:操作溢出低五位为运算模式但是需要特权模式才能去修改他的工作模式T[5]:决定的是用的是ARM指令集还是Thumb指令集A[6]:异常终止的频闭位I [7]:中断的频闭位F[8]:快速中断的频闭位E[9]: 大小端序的设置SPSR就是用来保存异常之前的状态,用来返回现场的时候使用...原创 2020-09-26 23:57:14 · 3525 阅读 · 1 评论 -
ARM开发板介绍及SRAM和SDRAM的区别
开发板型号:tiny 4412核心板:exynos4412(三星 SOC)ARM架构,ARMv7 架构 coretex A9系列 四核1.4Ghz,32 bitSRAM:256KROM 16KDDR SDRMD 1Gbyts内存物理地址分布: 0x40000000 ~ 0x800000004GB emmc卡底板:4key,滑动变阻器,蜂鸣器,3州加速传感器,编解码器,网卡GPIO插针lcd对应的板800*480 分辨率LCD5点触控电容屏SDRAM和SR原创 2020-09-23 12:32:53 · 1170 阅读 · 0 评论 -
I2C接口
I2C的结构和特点他是一具有两条总线线路,即一条串行数据线SDA和一条串行时钟线SCL。每个连接到总线上的器件都可以通过唯一的地址联系主机。它是一个真正的多主机总线,数据传输通过冲突检测和仲裁防止数据被破坏。串行的8位双向数据传输位速率更高。连接到相同总线的Ic数量只受到总线最大电容400 pF的限制。个两线式串行总线I2C的信号类型I2C总线在传送数据的过程中共有三种类型的信号:启动信号、结束信号和响应信号。(1)启动信号(S):SCL为高电平时,SDA由高电平向低电平跳变,开始传原创 2020-09-09 00:08:45 · 343 阅读 · 0 评论 -
ARM之实时时钟——RTC
实时时钟的介绍实时时钟(Real Time Clock, RTC)可在系统断电时使用备用电池进行工作。即使断电,备用电池也可存储秒、分、小时、周、日、月、年的时间数据。RTC单元外接32.768 kHz晶片,具有报警功能。...原创 2020-09-08 21:19:09 · 1758 阅读 · 1 评论 -
ARM之模数转换——ADC
ADC转换器模拟信号:在时间和数值上连续的信号数字电路:在时间和数值上不连续的信号ADC电路就bai是指模数转换电路。也就是将模拟信号变为数字信号,指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。模/数转换器可以实现这个功能,在各种不同的产品中都可以找到它的身影。基本原理:它分为采样,保持,量化和编码四个步骤3.A/D转换器的主要技术指标:(1)分辨率。A原创 2020-09-07 20:37:44 · 1735 阅读 · 0 评论 -
ARM之PWM定时器
PWM定时器概述在Exynos 4412处理器中,共有5个32位的具有脉冲宽度调制(PWM)功能的定时器,这些定时器都可产生内部中断信号给ARM子系统。另外,定时器0、1、2、3具有脉冲宽度调制功能,并可驱动其对应的I/o口。其中,定时器O有可选的死区(dead-zone)产生功能,用以支持大电流设备;定时器4是内置的,没有外部引脚。PWM定时器的特点:脉宽调制定时器的特点:提供静态配置方式,在PWM没有启动时使用;提供动态配置方式,在PWM运行期间使用;支持自动重载模式和触发脉冲模式;两个原创 2020-09-07 09:33:11 · 896 阅读 · 0 评论 -
ARM之看门狗定时器——WDT
看门狗原理看门狗原理上是一个定时器,定时器对脉冲进行计数,当定时溢出时,产生复位信号,使整个系统复位,看门狗的作用就是防止系统意外跑飞,而且在无人看守的状态下依然能够复位,正常运行Exynos,4412处理器的看门狗模块,包括一个预分频因子、一个四分频的分频器和一个16位的计数器。输入时钟为PCLK,它经过两级分频(预分频和分频),将分频后的时钟作为该定时器的输入时钟。当计数器计满后可以产生中断或者复位信号,他的本质是一个磊减器,每放出一个矩形波,他就减一,当为0的时候,就会出现复位或者中断...原创 2020-09-05 11:12:53 · 760 阅读 · 0 评论 -
ARM之中断
中断的基本概念在4412板中,中断属于异常的一种,也是在发生状况的时候去跳转,它通过GIC来对中断进行管理,他有下面四个状态(1)未激活(Inactive),中断尚未激活或未挂起;(2)未决(Pending),中断已经由硬件或者软件产生,正等待目标cup响应(3)激活(Active),CPU已经应答(Acknowledge)来自GIC的(4)激活并挂起(Active&Pending),CPU正在处理该中断中断类型(1)软件生成的中断(SGls):是通过向软件生成中断寄存器写入SGI中断原创 2020-09-04 22:41:26 · 895 阅读 · 0 评论 -
ARM之异常
异常的介绍概念异常会导致处理器暂停程序执行以处理事件,例如外部生成的中断或试图执行未定义的指令。异常可以由内部和外部源生成,通常,当出现异常时,处理器状态会在处理异常之前立即保存。这意味着,当事件被处理后,可以从发生异常的地方恢复原始状态并恢复程序执行。可能会同时生成多个异常,并且在处理器处理异常时可能会生成一个新的异常(异常也可以嵌套)下图为ARM所用工作模式的介绍他的中断又分为以下这些...原创 2020-08-29 23:14:46 · 394 阅读 · 0 评论 -
ARM内存管理单元--MMU
前言我们在学习4412的时候,我们原本的中断地址已经被IROM和IRAM占据了,并且不允许被修改,所以我们只能去选取高端地址0xffff 0000高端地址,但是这一片地址属于虚拟地址,所以我们需要开启MMUMMU定义MMU功能,(memory management unit) 内存管理单元,MMU是硬件的内存管理器件,使用硬件方式对内存进行映射管理。将物理内存 0X4000 0000 - 0X8000 0000,的某些指定地址,映射到虚拟内存地址上。 虚拟内存地址总计大小 0X0000 00原创 2020-08-28 22:23:58 · 706 阅读 · 0 评论 -
LCD驱动实现
LCD原理LCD屏介绍,800×480 ,液晶显示,采用液晶显示像素点。通过点亮这个液晶屏,LCD屏的连接次序,LCD使用排线连接底板,底板通过插针连接核心板。原创 2020-08-27 01:05:07 · 306 阅读 · 0 评论 -
ARM时钟管理单元--CMU
时钟的原理时钟管理单元是cortex-A9中用来管理各个时钟模块的核心单元,4412的时钟通过PLLS(锁相环)产生cpu总线外设所需要的各种频率的时钟信号时钟是协调整个系统的频率, 所以为了整个系统ARM功耗最低,性能最好,采用多时钟频率的方法我们这里使用的时钟是一个25HZ的晶振,通过倍频和分频来改变各个模块的频率同样的我们可以通过手册的推荐值去配一个时钟的P,M,S,下面是一个AOLL_CON0 的表,我们可以通过寄存器去修改他们的值这个是时钟的关系图,我们可以看到,他就是通过一个晶振原创 2020-08-26 12:14:46 · 1308 阅读 · 0 评论 -
串行接口的工作原理和实现
串口的结构和工作原理通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。uART使用标准的CMOS逻辑电平(0~5v、0~3.3 V、0~2.5V或0~1.8V四种)来表示数据,高电平为1,低电平为0。为了增强数据的抗干扰能力,提高传输长度,通常将CMOS逻辑电平转换为RS-232逻辑电平(3~1原创 2020-08-24 23:14:32 · 4389 阅读 · 0 评论 -
LED的使用纯汇编和C语言的点亮
概述我们通过观察原理图可以发现LED灯有四个分别连接在GPM4_1, GPM4_2, GPM4_3 GPM4_4上面,这时候我们去查询我们板子4412的说明书,去寻址寄存器的配置初始化的时候我们需要将他配置为输出模式,同时我们观察下面的电路可以发现,他需要输出低电平,来使led亮#define GPM4BASE 0x11000000#define GPM4CON 0x02E0#define GPM4DAT 0x02E4#define UDELAY 0x43e2647c#defin原创 2020-08-24 21:09:23 · 573 阅读 · 0 评论 -
ARM汇编之APCS规则
APCS规则简述寄存器使用规则寄存器r0-r3用于函数调用过程中传递函数形参,各有一个别名 a1—a4,使用前后可以不用恢复原来的值R4-r11用于保存函数内部局部变量的值,每个函数使用前,必须要保存被调用函数的值,使用完毕,必须恢复原值。各有一个别名叫v1-v8.//特殊寄存器说明R10 sl 栈限制R11 fp 桢指针R12 ip 内部过程调用寄存器R13 sp 栈指针R14 lr 连接寄存器R15 pc 程序计数器栈的使用规则//APCS规则规定,AMR的栈采用满减使原创 2020-08-24 20:36:36 · 968 阅读 · 0 评论 -
ARM汇编程序和指令学习
移位指令操作LSL 对通用寄存器中的内容进行逻辑左移操作LSR 对通用寄存器中的内容进行逻辑右移操作ASR 对通用寄存器中的内容进行算数右移操作,左端是正数的话用0补齐,如果是负数的话用1补齐ROR 对通用寄存器进行循环右移操作,左端的数用右边移出的位来补充nt main (){ int a, b, c,d; __asm__ __volatile__( "nop\n" "mov r0,#0x78\n" //将0x78放到寄存器r0中 "lsl %[a],r0,#0x原创 2020-08-18 23:26:56 · 244 阅读 · 1 评论 -
ARM开发——nfs引导启动linux
设置环境变量启动我们烧好的uboot,按回车进入set ipaddr "172.16.3.222"//设置板子的ip地址set severip "172.16.3.94"//设置主机的ip地址set getewayip "172.16.3.254"//设置网关set bootargs "root =/dev/nfs nfs =172.16.3.94://home/user/roots ip =172.16.3.222 console=ttySAC0,115200 lcd=570"// 设置nfs原创 2020-08-17 14:10:18 · 368 阅读 · 0 评论 -
ARM开发——uboot的修改和烧写
前言由于我们使用的友善之臂,他把我们boot loader 完全的固化了,我们无法阻止或者中断他的过程,我们无法进入boot loader,也无法对他进行修改我们正常启动顺序应该是boot loader ->Linux Kernel -> file system所有我们只能使用德国的uboot来进行裸板开发uboot的烧写我们将我们提前准备好的uboot拷入我们的家目录首先进行make distclean 来进行但是我们我们的uboot还需要修改首先我们需要关闭掉MMU,我们不原创 2020-08-16 15:06:02 · 2905 阅读 · 0 评论 -
ARM开发——搭建嵌入式开发环境
ckermit串口工具的下载sudo apt-get install ckermit如果我们有新的串口连接上,我们可以通过查看/dev 来看连接的数据ckermit 配置文件的配置原创 2020-08-14 22:51:54 · 394 阅读 · 0 评论