zoukankan      html  css  js  c++  java
  • Cubieboard2裸机开发之(一)点亮板载LED

    前言

            CUbieboard2板载两个LED,一个绿色的,一个蓝色的,其中绿色LED通过三极管与PH20管脚连接,蓝色LED通过三极管与PH21管脚连接,这里只以蓝色LED为例,电路原理图如图1和图2所示。

                                          图1 LED所使用的管脚

                                               图2 LED与三极管连接图

    由此可知,当PH21输出高电平时,三极管处于导通状态,从而蓝色LED会被点亮;当PH21输出低电平时,三极管处于截止状态,蓝色LED熄灭。

    一、目的

           编写第一个裸机程序,点亮板载的蓝色LED。

    二、源代码说明

           程序很简单,已给出详细注释,直接看代码好了,如下所示:

     1 /*
     2  * (C) Copyright 2014 Conan Liang <lknlfy@163.com>
     3  *
     4  * a very simple source to set the blue led on for Cubieboard2.
     5  * 
     6  */
     7 
     8 /* GPIO reg addr */
     9 #define SUNXI_PIO_BASE          0x01C20800
    10 #define SUNXI_PIO_PH_CFG2_BASE  (SUNXI_PIO_BASE + 0x104)
    11 #define SUNXI_PIO_PH_DAT_BASE   (SUNXI_PIO_BASE + 0x10C)
    12 
    13 /* global entry point */
    14 .globl _start
    15 _start: b    reset
    16 
    17 reset:
    18     ldr r0, =SUNXI_PIO_PH_CFG2_BASE
    19     /* before write, read the reg value into r1*/
    20     ldr r1, [r0]
    21     /* blue led is connected to PH21 */
    22     ldr r2, =(0xf << 20)
    23     mvn r3, r2
    24     /* clear 4 bits for PH21*/
    25     and r1, r1, r3
    26     /* set PH21 for output function */
    27     orr r1, r1, #(0x1 << 20)
    28     str r1, [r0]
    29 
    30     /* set PH21 output 1(high value), so the blue led is on */
    31     ldr r0, =SUNXI_PIO_PH_DAT_BASE
    32     ldr r1, [r0]
    33     orr r1, r1, #(1 << 21)
    34     str r1, [r0]
    35 loop:
    36     b loop

    三、验证

             使用arm-linux-gnueabihf工具编译后生成led.b文件,再使用mksunxiboot工具在led.b文件前面加上一个头部,最终生成led.bin文件,使用以下命令将led.bin文件烧写到TF中:

    #sudo dd if=./led.bin of=/dev/sdb bs=1024 seek=8

          将TF卡插入Cubieboard2,上电即可看到蓝色LED被点亮。效果如图3所示。

                                                    图3 效果图

  • 相关阅读:
    Xamarin studio配置问题
    安装moogodb
    什么是作用域, 什么是闭包, 什么是原型链,什么是递归, 什么是函数函数声明,什么是函数表达式,继承,this 指向
    前端框架Vue、angular、React的优点和缺
    判断终端是IOS 或 是Android
    VS code终端错位
    安装Flutter
    web直传OSS设置 头部信息【坑】
    从零创建react项目
    webpack报错vue-template-compiler 版本不对
  • 原文地址:https://www.cnblogs.com/lknlfy/p/3583806.html
Copyright © 2011-2022 走看看