飞腾D2000开发板GPIO引脚不够用?手把手教你解锁Uboot模式下隐藏的16个引脚
当你在飞腾D2000开发板上进行嵌入式开发时,是否遇到过GPIO引脚数量不足的困扰?这可能是由于你正在使用UEFI引导模式,导致一半的GPIO资源被"隐藏"了起来。本文将带你深入理解两种引导模式下的GPIO资源分配差异,并详细展示如何通过Uboot模式解锁全部32个GPIO引脚。
1. 理解飞腾D2000的GPIO架构
飞腾D2000处理器内置了两个独立的GPIO模块,每个模块又被划分为两个端口组(Port A和Port B),每组提供8个GPIO引脚。这意味着理论上每个GPIO模块有16个可用引脚,整颗处理器共有32个GPIO资源。
关键硬件规格:
- GPIO0模块基地址:0x28004000
- GPIO1模块基地址:0x28005000
- 每个模块地址空间:4KB (0x1000)
在硬件层面,这些资源是完整可用的。然而,不同引导模式下的软件配置会直接影响开发者能够实际使用的GPIO数量。
2. UEFI与Uboot模式下的GPIO资源对比
2.1 UEFI模式的限制
在UEFI引导模式下,ACPI(高级配置与电源接口)规范仅解析了每个GPIO模块的Port A部分,导致:
- GPIO0可用引脚:GPIO0_A0 - GPIO0_A7(8个)
- GPIO1可用引脚:GPIO1_A0 - GPIO1_A7(8个)
- 总计可用GPIO:16个
从UEFI源码中可以清晰地看到这一限制:
Device(GP00) {
Name(_UID,0)
Name (_DSD, Package () {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf
160




被折叠的 条评论
为什么被折叠?



