驱动开发之LED驱动(3)

3、在串口终端上,加载驱动模块和测试驱动程序;

mount:挂载虚拟机的/home目录到开发板的/tmp/led目录下;

insmod:加载模块;

mknod:创建设备节点;

rmmod:卸载模块;

led.ko:led设备驱动模块。

实验结果:在终端打印出“...."的同时,LED从D12~D9相继亮灭(流水灯)。

总结:整个LED驱动开发并不算难,如果有了裸机编程的基础,加上一定的Linux基础,上手会更加容易。期间也碰到不少疑问,而最后大部分也都得到了解答。总之,基础还是很重要的,理论+实践才是王道。

ps:曾经尝试调用内核中的s3c2410_gpio_cfgpin()和s3c2410_gpio_setpin()两个函数来实现端口输出配置和向数据寄存器写数据,但会出现下面这个问题:

s3c2410_gpio_cfgpin()和s3c2410_gpio_setpin()这两个函数在/arch/arm/mach-s3c2410/gpio.c文件中定义,在asm-arm/arch-s3c2410/hardware.h中extern声明,最初编译时警告说这两个函数是”undefined“的,后来我在gpio.c文件中添加EXPORT_SYMBOL(s3c2410_gpio_cfgpin);EXPORT_SYMBOL(s3c2410_gpio_setpin);导出符号,却出现“no CRC”这个警告,这个问题已经折腾我好几天了,求高手解答。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/7add1726bcbb67f035b28abc591f6d6c.html