GPIO是通用的输入/输出端口,就是一些引脚,可以通过它输出高低(0/1)电平和读入引脚上的状态(0/1).s3c2440有130个引脚,分为A~J一共9组:GPA,GPB、、、GPJ,可以通过GPIO相关寄存器来配置引脚的具体功能和信息。
一、通过寄存器来控制GPIO引脚
1、GPxCON寄存器
这是GPIO控制寄存器(configure),通过对其写入数据可以设置引脚的功能,是输入输出还是其他特殊功能,通过用户手册可以得到其每位所代表的功能的具体含义。
2、GPxDAT寄存器
这是GPIO数据寄存器,若是输出引脚,则向其写入信息,可控制对应引脚输出的电平高低,若是输入引脚,则可通过数据寄存器得到引脚此时的状态。
3、GPxUP寄存器
上拉电阻使能寄存器,当某位为1时,对应引脚无上拉电阻,为0时,则表示有上拉电阻。上拉电阻的作用就是当引脚既不是输出也不是输入时,他的状态就有上拉电阻或下拉电阻来确定。
上面代码就是通过设置GPBCON和GPBDAT来点亮led
使用C语言来点亮一个LED,由于在裸板上无法直接运行main里的代码,在有操作系统的情况下,生成一个C的可执行程序,系统会在编译时在代码中加入启动文件的代码,这些代码的功能就是设置C程序的堆栈等初始化相关软硬件,然后调用main函数,这些都依赖于操作系统,在裸板上则需要自己写启动文件做相关的初始化工作,初始化相应的工作在s3c2440的启动方式里有提过。
通过下面的初始化启动代码可以顺利进入C程序的main运行C代码。
下面是C语言代码 ,宏定义了GPBCON和GPBDAT,然后赋值,运行时可见LED亮。
这段C代码和最上边的汇编效果一样。