很简单,设置控制模块中对应的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。
-
/* led_on.S */
-
/* #define CTRL_BASE 0x44E10000 */
-
/* #define GPIO1_BASE 0x4804C000*/
-
/* TEXT_BESE 0x80800000 */
-
/* SPL_BESE 0x402f0400 */
-
-
ldr r0, =0x44E10840 /* GPMC_A0(GPIO1_16)寄存器 */
-
ldr r1, =0x0000001F /* GPMC_A0(GPIO1_16)寄存器,模式7 */
-
str r1, [r0] /* GPMC_A0(GPIO1_16)寄存器,上拉[4:3]=0b11,模式7,[2:0] = 0b111 */
-
-
ldr r0, =0x4804C134 /* GPIO1 OUT寄存器 */
-
ldr r1, =0x00000000
-
str r1, [r0] /* 设置为输出 , 0 为输出 */
-
-
ldr r0, =0x4804C13C /* GPIO1 DATAOUT寄存器 */
-
ldr r1, =0x00010000
-
str r1, [r0] /* 设置为高电平 */
-
-
halt:
-
b halt /* 死循环 */
makefile记得指定链接地址为0x402F0400,执行mkmlo led_on.bin,得到MLO,拷贝到SD卡的FAT分区即可。
阅读(3351) | 评论(0) | 转发(0) |