1

我只有 2 周的 linux 驱动程序开发经验,但在嵌入式 c 编程方面有很好的经验。我只在linux中尝试过字符设备驱动程序。现在我想为一组连接到 GPIO 的 LED 尝试一个设备驱动程序。我正在使用 BeagleBone Black。我希望从寄存器级别访问它,而不仅仅是调用任何驱动程序。(我这样做是为了学习基础知识)

我希望我的驱动程序 GPIO 访问代码有点像下面

void SetLED(unsigned char LED,unsigned char Status){
    //Read the port register
    //BitWise Operation according to function parameters
    //Write back to the register
}

但我需要一些关于如何直接在 linux 中访问寄存器的帮助。我从数据表中得到端口 OUT 寄存器的实际地址为 0x4804C13C

如果我在我的问题中打破了任何基础,请原谅我。我对linux真的很陌生。

4

1 回答 1

0

你的司机必须打电话

struct resource *request_mem_region(unsigned long start, unsigned long len, char *name);

注册对该内存区域的独占访问。

然后它必须使用ioread8(),ioread16()等和iowrite8(),iowrite16()等。

于 2014-09-30T14:16:32.620 回答