LED硬件控制
一、查资料获取物理寄存器地址
①要设置某个引脚为GPIO(看原理图,找到要控制的引脚)
②function 候选功能寄存器:(看芯片开发手册)
③pull_en 输入输出使能寄存器:(看芯片开发手册)
④pull_sell 数据寄存器LOW/HIGH:(看芯片开发手册)
二、将得到的物理地址映射成虚拟地址
IO内存的申请
- 申请IO内存区→动态映射→使用虚拟地址→解除动态映射→释放IO内存
request_mem_region→ioremap→
7.6 通过GPIO操作函数实现GPIO口控制

led_open:gpio_request()→gpio_direction_output()
led_write:gpio_set_value()
总结:
我们通过PAD_GPIO_x+NUM,l来调用
gpio_direction_out_put(unsigned gpio, int value);
gpio_set_value(unsigned gpio, int value);
设置管脚为输出模式,先由PAD_GPIO_x+NUM得到管脚所属的分组号及属于分组下的第几个引脚
然后再由分组号找到所对应的虚拟地址。
该虚拟地址由GPIOx的物理地址通过静态映射得到的。
端口号(组号+组号下的引脚编号)→虚拟地址→物理地址→控制硬件