在bcm2836上使用GPIO

我正在为我的RPI2 OS编写GPIO驱动程序。 我正在冲浪很长时间,但我发现只有linux数据。 我应该怎么做这样的function

void gpio_set(int pin); void gpio_clr(int pin); 

在C中为司机。 或者,也许它可以通过内联汇编来完成?

如此处所述

BCM2836的基础架构与BCM2835完全相同。 唯一显着的区别是删除了ARM1176JZF-S处理器并替换为四核Cortex-A7集群。

BCM2836的可用文档没有详细说明外围硬件,只有A7。 相反,您需要BCM2835的文档。 外围设备规范部分6涉及GPIO。 寄存器是内存映射的,因此您可以在C中直接写入它们。

在C中实现非常简单。请记住,外设地址RPi2是0x3F000000而不是0x20000000(RPi)。 可用的文档适用于RPi(BCM2835),但适用于RPi2以及一些内存地址更改和处理器更改(Cortex-A7)。 为了快速跳转,你可以看到valver的博客,用于裸机开发。