说来正在上嵌入式系统的课,听到老师说GPIO这个词……觉得颇有意思……
说来什么叫GPIO呢……其实是一个非常low的功能,就是可以指定一个引脚输出高电平还是低电平……有的设备非常呀,没有外部的PWM模块,或者缺乏某种协议的硬件支持的时候,你只能通过软件编程的方式,来为一个引脚隔一段时间改一个信号,这个效率其实是很低的。但是你看,用一个4个字母的缩写(General Purpose I/O,通用输入输出),这名字就显得高大上了(其实通用的东西就意味着编程最麻烦,优化最少,当然点个灯什么的还是很合适的,之前用GPIO给不支持OneWire协议的芯片实现了一个OneWire,还只是移植,简直要疯……)……
这又让我想起了DKMS这个东西,Dynamic Kernel Module Support,动态内核模块支持,说起来也好像非常厉害的样子……然而实际上是怎么回事呢……Windows Kernel给驱动的ABI是稳定的,而Linux Kernel的ABI完全不稳定,差0.1的版本都不行(其实人家给驱动的API都不保证稳定),其实这么搞基本上就是鼓励你把所有的驱动都集成在kernel的source tree里,实际上也就强迫你用GPL了(其实GPL这个东西我是支持的,但是全都集成在kernel的source tree里另当别论),但是还是有第三方kernel module啊,那怎么办呢?简单,只要第三方模块开源,然后每次内核升级重新编译一遍就OK了……这东西其实也很low啊……但是用个奇怪的缩写,也显得高大上了……