7.5 Linux:驱动开发——物理地址映射虚拟地址 - 指南

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的物理地址通过静态映射得到的。
端口号(组号+组号下的引脚编号)→虚拟地址→物理地址→控制硬件

posted @ 2025-08-24 21:22  yjbjingcha  阅读(14)  评论(0)    收藏  举报