当前位置: > 华清远见教育科技集团 > 嵌入式学习 > 讲师博文 > 轻松学ARM系列之三步点亮led
轻松学ARM系列之三步点亮led
时间:2016-12-14作者:华清远见

从本次开始我将定期更新arm裸机学习历程,开发平台基于cortex_a8内核的三星的s5pv210的开发平台。

那么我们一起来看看如何学习arm?

一、总体架构图

点亮led之前我们要首先对三星公司的s5pv210的芯片手册有所了解。也就是GPIO口的简介,参考system章节register map 小节对于寄存器地址映射和描述,在脑海中建立起总体的架构模型。

一个GPIO口我们所主要关心的是什么?大部分的GPIO开发注意的事项:方向、电压、驱动能力、输入阻抗---输入电流 。

二、点亮一个led 的三个步骤

2.1 查看开发板的原理图,找到led灯与哪组IO相连接,如图所示:

LED连接图

核心板的原理图

2.2 设置 管脚的的输入、输出方向, 通过GPC0CON(具体情况具体选择) 配置寄存器搞定

设置led为输出方向,同时为了不影响其他的位值的变化,那么采用寄存器的读改写

GPC0.GPCOCON = (~(GPC0CON & (0xff << 12)))| (0x11 << 12) ;

对配置寄存器的第3 、 4位 进行写1 操作即 12 ~ 19位

对GPC0CON_3 、GPC0CON_4位进行置1  设为输出的状态

对于0组来说一般情况下多接5个led

2.3  设置 IO 的数据寄存器,通过给IO口高低电平来点亮或者熄灭led

对数据位进行置1  表示点亮led

这个32位的寄存器我们只用了0~4位,那么他的其中的每一位对应控制一个led的数据。

GPC0DAT[4:0]  <===> GPC0CON[4]...GPC0CON[0]   一一对应的关系

GPC0.GPC0DAT = (~((0x18 << 0) &  GPC0.GPC0DAT)))| 0x18

控制对应的GPC0CON[3] 和 GPC0CON[4] 的led点亮

发表评论
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)