在cpu下面使用的GPIO通常是在PCH南桥上,如果要驱动层面访问,和stm32存在一些不同,这里以个人开发经验总结一下。
第一,是操作系统下使用GPIO需要bios对南桥相关寄存器解锁才能配置,它不像单片机权限那么大,改了之后得烧录Bios才能用,我们如果是Linux内核驱动开发往往并不懂bios的改法。
第二,是不能直接通过GPIO的寄存器物理地址访问,需要映射,这一点就不像单片机可以当成指针来访问。
第三,是bios即使解锁了GPIO相关的pch寄存器,可能linux内核驱动层还是无法访问,这一点的问题需要咨询cpu厂商,比如Intel的就有点。