位带操作与OMAP-L138的举例分析

本文详细介绍了在OMAP-L138微控制器中如何利用位带操作进行寄存器配置,特别是针对GPIO的初始化流程。通过解析相关宏定义和函数,解释了如何进行引脚复用控制,以及如何设置GPIO模式。内容包括HWREG系列宏的作用,以及PINMUX配置的具体步骤,旨在帮助读者理解并应用位带操作。
摘要由CSDN通过智能技术生成
	在hw_types.h文件下可以找到这样一段宏定义,然后在打开工程的函数是会发现几乎所有的对寄存器的配置都是通过这几
 
个定义实现的,这就是位带操作,这种方法可以提高代码执行效率。
 
	HWREG(x) 定义一个32位无符号指针x,然后在取出它的值,最终得到的是x地址的值,下面的都类似
 
	HWREGH(x)  定义的是16位无符号指针的值
 
	HWREGB(x)  定义的是8位无符号指针的值
 
	HWREGBITW(x,b) 表示获取x的地址下第b为的值
           	
	
	下面我将通过对GPIO的配置说明一下如何使用位带操作对寄存器进行配置。
 
	程序的初始化流程如图:
 
                         	    
 
	先进行外设使能,然后GPIO管脚复用配置,然后管脚初始化,我们先来看看GPIOBankPinMuxDet()函数,打开函数看到如
 
图的调用函数,随便选择一个,比如第一个继续打开
 
                                	

        然后就会看到函数的源码如图:
 
        	    
 
        首先定义了一个 u32 savePinmux 变量,然后用HWREG(x)获取目标地址下的值,
 
	savePinmux = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) &~(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值