我在做nios 2的外设驱动开发,nios 2的软件结构(hal)支持字符型设备,文件子系统等通用的设备模型。 最近分析了开发软件自带的一个简单的lcd(character lcd(16x2,optrex16207))驱动程序altera_avalon_lcd_16207.c和它相应的头文件。hal已经提供了一个文件系统,并且已经把lcd定义成了文件子系统设备,最后这一点我是看了它的测试程序之后才知道的,测试程序 ... lcd = fopen("/dev/lcd_display", "w"); //lcd_display是lcd名字 fprintf(lcd, "
This is the LCD Display.
"); ... 尽管看懂了驱动程序,但是我现在还是一头雾水,仍然不明白如何以文件的方式来管理和操作它。比如fprintf(lcd, "
This is the LCD Display.
");是如何跟驱动程序中的static void lcd_write_data(alt_LCD_16207_dev * dev, unsigned char data)建立关系并调用它来驱动lcd的,这中间都作了些什么工作。
我是学电子和通信的,对软件结构和编译原理不太懂,是不是要学一些计算机的课程才能搞动这个问题呢?
不知道我以上的提问是否把我的问题描述清楚了。
希望各位大哥大姐指点一下刚开始搞驱动程序的菜鸟,或者推荐一些书目有助于我搞明白这个问题,不胜感激!!! |