轻松学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点亮
发表评论
|