昨天只是编写了一下第一个驱动,今天调试果然出了好多问题。
第一个问题编译器居然说我第一个错误是file_operations的问题。这就好尴尬了,难道3.4版本的linux内核需要加上成员.release?这个问题现在还没解决,希望各位大神帮我看看是不是这个问题,小生在此谢过了。
错误:变量‘sencod_drv_fops’有初始值设定但类型不完全
static struct file_operations sencod_drv_fops = {
这篇帖子最主要的我想还是把之前欠下的准备工作和大家说说,毕竟我自己用习惯了,但是很多人都习惯VIM编辑器之类的东西,而我比较喜欢在windows下看代码。希望能对那些对vim不是很熟悉的同学起到一点点作用吧。
首先呢还是传统的“借鉴”wiki,友善之臂亲大大。。
编译Linux kernel编译内核git clone https://github.com/friendlyARM/linux-3.4.y.gitcd linux-3.4.ygit checkout nanopi2-lollipop-mr1
NanoPi2内核所属的分支是nanopi2-lollipop-mr1,在开始编译前先切换分支。 make nanopi2_android_defconfigtouch .scmversionmake uImage
make nanopi2_linux_defconfigtouch .scmversionmake uImage
这段代码在linux下很好用,但是,如果在Windows下,我建议大家手动打开[size=1em]https:[size=1em]//[size=1em]github.com[size=1em]/[size=1em]friendlyarm[size=1em]/[size=1em]linux-[size=1em]3.4[size=1em].y.git选择[size=1em]nanopi2-lollipop-mr1,下载zip把这个内核在你的电脑里解压,解压之后是一堆零零散散的内核文件,说起来好多没用的东西,谁让内核支持的芯片比较多呢。我们用下载下来的内核解压之后用Source Insight加到一个工程里面去。新建工程之后,把所有的文件都递归的加到里面去,然后预编译一下。这样我们就可以开心的在Windows里面写和查看代码了,说真的,像我这种vim都用不明白的。。这个方法真的不错呢。
[size=1em]
[size=1em]然后呢,我们来处理一下linux系统里的东西。在虚拟机里编译一下uIamge然后烧写到板子里,其实我觉得烧写在sd卡里的系统也挺好的,比自己烧的稳定的多,就是编译内核的时候容易出一点问题。。
[size=1em]
[size=1em]之后搭建一下环境,我看了别的大神的一些东西,扩展sd卡啊,sudo啊,只是我手比较笨(我不是针对谁,能玩明白系统的都是大神,当然除了我某个逗逼基友)我直接在sd卡里烧写的ubuntu-mate,乌班图即正义!自动配置好的ftp和ssh,把我感动的不要不要的,我再也不想回想起被vsftpd.config支配的恐惧。。
虽然人家给自动配置好了ssh,但是最为一个小白,肯定是用不明白的啊(默默无语两眼泪)
所以,智商不够的话,只能靠串口来硬凑了。
FTDI232-1跟了我好久的串口小帮手,质量有保障,这个不算做广告吧。。把232和 开发板共地,然后tx线接开发板rx线,rx线接开发板tx线。插到电脑上等一波安装驱动之后呢,下载个SecurecCRT,建立个serial的连接,对应你的COM口,波特率设置为115200.然后就可以看到这个了
说真的给开发板按个键盘什么的简直太糟心了,串口大法好。
然后等咱们写好了驱动程序,要拉到你的虚拟机上啊,其实这个根本都不用我说,用到ftp工具了,首先确保你的虚拟机开启了ftp功能,不要问我怎么开,我配置我的ubuntu的ftp用了整整一天,亲们自行百度吧,呜呜。。。然后给大家安利一个软件WinSCP,建立一个sftp的连接,输入你虚拟机的ip地址,用户名和密码。
看到这种傻瓜式的拖拽式操作就可以复制粘贴是不是感动的都要哭出来了,我第一次用的时候就这感觉。
然后把我们写的c文件和Makefile文件拖到虚拟机上,makefile的规则我相信大家都比我明白就不过多赘述了,
然后在c和makefile的目录下输入命令make,就可以编译了。。当然成功与否就要看咱们写的对不对了,我先哭一会。。昨天写完的代码今天还没调试明白,我都要蠢哭了!蠢哭了!
如果明天驱动调试好了,我就发一篇写个简单的测试小程序,点个流水灯啥的。如果没调试好,可能就因郁闷而死了,逢年过节大家有闲着的报纸记得去十字路口给我烧点就好了。。
今天纯属是毛线进展都没有,发一篇自己编译环境和大家分享一下,希望下一篇帖子能拿出一些干货和大家分享一下。欢迎大家批评指正,互相探讨学习,会在以后的使用体验中更加努力的。
|