zoukankan      html  css  js  c++  java
  • s3c2440基本io/ports led点亮

    Led对应管脚如下图所示:

     

    所以需要设置GPB相关的寄存器,在IO Port里,Port B Control Register。有11个io input/output接口

    GPB5

    Led1

    GPB6

    Led2

    GPB7

    Led3

    GPB8

    Led4

    S3C2440存在接口复用,所以即需要设置PnCON以确定io口的功能。

    如果接口设置位output则可写data寄存器进行控制,若设为input可读寄存器的值。

    相关的还有一个混杂寄存器和外部中断寄存器,可不用关心。

    可知相关的两个寄存器的地址为0x56000010,,0x56000014。

    对于GPBCON,各个接口都应该选01,作为output使用

    0x 00  0 0

    要是GPB5-8全部点亮,设置01 0101 0100  00000000 ----------------> 0x15400

     

    LED低电平点亮:

     

    所有汇编程序如下

    代码
    .text
    .global_start

    start:
    LDR R0,
    =0x56000010 @R0设为GPBCON寄存器,此寄存器用于选择端口B引脚的功能:
    @是输入输出还是其他
    MOV R1, #
    0x15400 @要是GPB5-8全部点亮,设置01 01010100 0000 0000 --> 0x15400
    STRR1,[R0] @将GPBCON寄存器设置为0x15400

    MOV R1,#
    0x00000000 @
    STRR1,[R0] @GPB5
    -8输出0,LED1-4全部点亮

    MAIN_LOOP:
    B MAIN_LOOP

    Makefile:

     

    代码
    Led_on:led_on.s
    arm_linux_gcc
    -g -o led_on.o led_on.s
    #编译
    arm_linux_ld
    -Ttext 0x00000000 -g led_on.o led_tmp.o
    #链接
    arm_linux_objcopy
    -O binary -S led_on_tmp.o led_on
    #把ELF格式的可执行那个文件led_on_tmp.o转换成
    二进制文件格式led_on
    Clean:
    rm
    -f led_on
    rm
    *.o

    实验还未经过验证。

  • 相关阅读:
    HttpUtils
    其实就是这么回事
    Spring 、 CXF 整合 swagger 【试炼】
    Jetty 学习记录
    WebSphere 学习记录
    Apache 学习记录
    WebLogic 学习记录
    Hessian 学习记录
    IntelliJ IDEA学习记录
    IntelliJ IDEA学习记录
  • 原文地址:https://www.cnblogs.com/yixiaoyang/p/1863096.html
Copyright © 2011-2022 走看看