我在linux驱动程序开发方面只有两周的经验,但对嵌入式c++编程有很好的经验。我只在linux中尝试过字符设备驱动程序。现在,我想尝试一个设备驱动程序的一套LED连接到GPIO。我用的是BeagleBone黑。我希望从注册级别访问它,而不是仅仅通过调用任何驱动程序。(我这么做是为了学习基本知识)
我希望我的驱动程序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中直接访问寄存器的帮助。我从数据表中得到了端口输出寄存器的实际地址为0x4804C13C。
如果我的问题中有任何基础知识,请原谅。我对linux非常陌生。
发布于 2014-09-30 14:16:32
你的司机必须打电话
struct resource *request_mem_region(unsigned long start, unsigned long len, char *name);注册对该内存区域的独占访问。
然后,它必须使用ioread8(),ioread16()等,iowrite8(),iowrite16()等。
https://stackoverflow.com/questions/26122855
复制相似问题