首页
登录 | 注册

AM335x 裸机开发笔记(2)之LED

很简单,设置控制模块中对应的GPIO寄存器,模式为mode7,用作GPIO,上拉,高电平即可。
AM3358的GPIO大多数都是多功能复用的,通过Control  Mode来管理,但是reference manual里没有列出各引脚服用复用功能对应哪个模式。TI官网提供了一个windows平台的pinmux工具,可以方便的查询引脚复用功能的模式。

还可以查看芯片手册(不是参考手册)。TI的cpu或者MCU都有2本手册,一本是通用的参考手册,另一本是针对具体cpu型号的芯片手册,要查看引脚功能配置,需要查询芯片手册。

我用第三种办法:查看核心板原理图,芯片元件图已经列出了引脚所有的复用功能,比如我们知道LED0由GPMC_A0驱动,根据原理图,GPMC_A0的复用功能如下:
[GPMC_A0/GMII2_TXEN/RGMII2_TCTL/RMII2_TXEN/GPMC_A16/PR1_MII_MT1_CLK/EHRPWM1_TRIPZONE_INPUT/GPIO1_16]
从左往右数依次为MODE0~MODE7,MODE7为GPIO模式,所以LED应当工作在MODE7。

  1. /* led_on.S */
  2. /* #define CTRL_BASE         0x44E10000   */
  3. /* #define GPIO1_BASE        0x4804C000*/
  4. /* TEXT_BESE                 0x80800000 */
  5. /* SPL_BESE                  0x402f0400  */

  6.     ldr r0, =0x44E10840        /* GPMC_A0(GPIO1_16)寄存器 */
  7.     ldr r1, =0x0000001F        /* GPMC_A0(GPIO1_16)寄存器,模式7 */
  8.     str r1, [r0]               /* GPMC_A0(GPIO1_16)寄存器,上拉[4:3]=0b11,模式7,[2:0] = 0b111 */

  9.     ldr r0, =0x4804C134        /* GPIO1 OUT寄存器 */
  10.     ldr r1, =0x00000000         
  11.     str r1, [r0]            /* 设置为输出 , 0 为输出 */

  12.     ldr r0, =0x4804C13C        /* GPIO1 DATAOUT寄存器 */
  13.     ldr r1, =0x00010000        
  14.     str r1, [r0]            /* 设置为高电平 */

  15. halt:
  16.     b halt                    /* 死循环 */

makefile记得指定链接地址为0x402F0400,执行mkmlo led_on.bin,得到MLO,拷贝到SD卡的FAT分区即可。

相关文章

  • 自荐.net快速开发平台,新时代的选择
    力软信息 快速开发平台,不敢保证别人家的平台怎么样,但是对我们力软快速开发平台还是有信心的. 1.力软敏捷开发框架介绍 力软敏捷开发框架(learun framework)是力软快速开发平台推出的国内领先企业基础二次开发框架.Learun框 ...
  • 【Java Web开发】数据库及SQL/MySQL基础
    详细课程链接:[Java Web开发]数据库及SQL/MySQL基础 -- 阿里云大学 MySQL概述 什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 什么是 MySQL.Oracle.SQL ...
  • Hadoop是一个用Java编写的Apache开源框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集.Hadoop框架工作的应用程序在跨计算机集群提供分布式存储和计算的环境中工作.Hadoop旨在从单个服务器扩展到数千个机器,每个 ...
  • CCNA+CCNP培训笔记
    CCNA+CCNP培训笔记.pdf
  • 简介 Hive为我们提供了众多的内置函数,但是在实际的运用过程中仍然不能满足我们所有的需求.hive是用java开发的,本身提供了使用java去开发UDF的方式.而这里我们采用python的方式去实现UDF函数. DEMO实现 我们这里用p ...
  • kmemleak的工作原理很简单,主要是对kmalloc().vmalloc().kmem_cache_alloc()等接口分配的内存地址空间进行跟踪,通过对其地址.空间大小.分配调用栈等信息添加到PRIO搜索树中进行管理.当有匹配的内存释 ...

2020 unjeep.com webmaster#unjeep.com
12 q. 0.013 s.
苏ICP备12049786号-20