分类: 嵌入式
2012-08-18 16:10:22
由于OMAPL138片上资源没有连接GPIO的LED灯,查看效果只能用万用表检测相关引脚高低电平和查看CCS中各寄存器的值或者printf()语句在CCS环境中输出。
OMAP-L138是一个双核的芯片,无论是ARM核还是DSP核,都有相当数量的寄存器需要配置,如果从头开始逐一定义和设置,需要消耗大量的时间,但这又是不得不做的事。庆幸的是TI的第三方已经为我们写好芯片的寄存器定义,并把初始化和功能实现通过C函数的方式集成起来,这样我们只需要调用相关的函数,就可以实现对指定外设初始化工作和使用。
这些文件的集合体被称作BSL(Board
Support Library)。它大大减少了开发初期的工作量,注释也全面,容易理解。
下面通过调用BSL函数的方式来控制GPIO口高低电平。控制的两个管脚为GP1[2]和GP1[3],在SEED_DEC138的片上资源中又被复用为UART2_TXD和UART2_RXD,因为这个引脚很大,用万用表测着方便,而其它引脚不是被复用为NANDFLASH的管脚就是复用DDR2的的管脚,小之又小,比较不方便。
点击(此处)折叠或打开
EVMOMAPL138_pinmuxConfig(4, 0x00ff0000, 0x00880000);
管脚复用配置,OMAPL138上一共有20的PINMUX寄存器,PINMUX是SYSCONFIG寄存器的重要组成部分,通过查询手册sprugm7d-OMAP-L138 Applications Processor System Reference Guide可以看到GP1[2]和GP2[3]分别属于PINMUX4的23-20位和19-16位,EVMOMAPL138_pinmuxConfig函数第一个参数表示第几个PINMUX,0x00ff000000表示在23-20位和19-16位中初始化,因为EVMOMAPL138_pinmuxConfig函数内部会把23-20位和19-16位清零然后在赋值为88即下一个参数0x00880000,这样就把GP1[2]和GP2[3]配置为GPIO模式,然后设置GPIO的方向和输出值即可。
多看多消化例程。。。。。
参考资料: