那么这时候可能很多朋友会有疑问,设计芯片驱动真的需要懂Linux吗?其实驱动和Linux是两码事。就拿一个LCD来说,我们可以在Windows CE上写驱动,也可以使用Linux的framebuffer。当然如果你是通信用户,也可以使用VXWorks来做驱动。驱动没有任何限制,但是必须和特定的操作系统平台挂钩才有意义。当然有朋友会问,一定要有操作系统吗?其实没有操作系统也是可以的,做一个简单的while(1)前后端系统也是可以的。但是这样效率不高,扩展性差。既然Linux已经给我们搭建好了框架,我们为什么不能直接拿来处理呢?熟悉Linux平台的朋友都知道,在Linux中,所有的设备都可以看作是文件,我们对设备的所有操作,基本上都可以简化成open、close、read、write以及io控制操作,至于这些操作具体干什么,就需要我们自己去实现。 现在Linux驱动开发流程已经发展得很成熟了,除了大量的demo代码和书籍之外,网上也有很多视频可以学习,其中我个人比较喜欢宋宝华和韦东山的书籍,前者偏向理论性,后者更注重实践部分。
广州的Linux培训机构有哪些?说了这么多,你可能会问如何开发Linux驱动?对于我来说,我一般是这样处理的: (01)找两台电脑,一台电脑安装Windows系统,另一台电脑安装Linux系统,类型没什么限制; (02)查看Linux系统的版本类型,输入uname -r; (03)根据获取到的Linux内核版本,在上面找到合适的内核版本,直接用wget下载; (04)用tar解压内核版本,将boot下的config文件复制到本地,输入make menuconfig,直接保存即可; (05)输入make -j2 &make modules_install &make install,系统会重启; (06)Linux系统起来之后,注意在grub启动的时候选择刚才编译好的内核版本,这样就可以在Linux上开发内核驱动了; (07)在Windows平台安装secureCRT工具,并连接Linux。
