树莓派2 gpio led blink实验

本文详细介绍了如何在树莓派2上进行GPIO LED闪烁实验,讲解了BCM2835外设地址映射,特别是GPIO寄存器的配置,并提供了设置功能选择寄存器、控制LED高低电平的函数。通过汇编代码设置堆栈指针,最终实现LED的闪烁效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

树莓派2使用的是bcm2836,树莓派1使用的是bcm2835,据说bcm2836除了CPU使用的是cortex-a7,外设与bcm2835基本相同,因为官方没有提供bcm2836的外设参考手册,所以只能使用bcm2835的外设参考手册,BCM2835-ARM-Peripherals.pdf

手册中第5页的地址映射图如下:



左侧的是bcm2835中的GPU的虚拟地址空间,中间的是在没有启用mmu时ARM的物理地址空间,右侧是的ARM开启mmu时的虚拟地址空间映射。

对于我们的裸机led实验,我们只关心中间的物理地址空间。所以bcm2835的外设被映射到0x20000000开始的物理地址。但是在树莓派2中这个外设起始地址变为0x3f000000。

有人在uboot的补丁中发现了这个地址。继续查看手册的第90页,可以得知gpio寄存器被映射到0x7e200000,这个GPU的虚拟地址,根据上图可以换算为0x20200000,也就是相对外设偏移0x200000,由此推测出在树莓派中gpio的起始地址为0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值