第二篇?在Rico Board上点亮一个led的坎坷之路
到了驱动开发的时候了,准备从点亮一个led灯开始。下面就记录下我用ioremap方式完成点亮led的坎坷之路(前期搭建环境比较坎坷)。
首先展示下需要看的光盘里面的操作文档:

上面的几个文档,分别介绍了烧写系统的步骤和方法(这是后来我才意识到要烧写下系统,要不然,每次都从SD卡启动,很麻烦),

以及启动方式的选择:

还有管脚描述(这是编写驱动必须要看的,本次我用的是GPIO5_9),

接下来,就按照手册的办法开始一步步的操作了,我的操作过程记录如下:
先烧写系统:
格式化SD卡

复制需要的文件到根目录:

并改名matrix-rootfs为rootfs:

接下来就准备上电了,在此提一句,我收到的板子默认是从SD卡启动的,而不是像快速指南上说的QSPI方式启动。
进入系统之后,Debug(串口)如下界面:

进入系统,运行烧写脚本

烧写完成后,出现如下提示:

拔掉SD卡,选择QSPI启动,这样板子上的系统算是完成了,接下来就要准备PC机上的操作了:
主要包括,内核编译。
我开始编译内核的时候,出现了如下错误,(原因是我以前的交叉编译工具链版本太高了,转换成光盘里面的低版本的就好了)

我电脑上原来的版本:

更换版本之后就可以正常编译了,编译完成时界面如下:

接下来就可以进行的驱动的编译了。
源代码和我这个帖子里的一样ioremap完成GPIO的输出控制,只是看看芯片手册,找一下寄存器地址,然后修改了几处宏定义。

修改的部分如下,其余都没有变:

改成GPIO5_9了。
然后编译成功:

通过TFTP转移到Rico Board上。Insmod 之后,运行如下:

效果图:
led亮:


led灭:

还是有不可思议的错误出现,调试下代码如下:

运行结果如下:

如果有高手知道为什么,欢迎赐教.
看着貌似好复杂哦~~~~~加油吧!
麻烦问一下,小编改的代码是哪来的呢,没找到呢.
http://bbs.elecfans.com/jishu_948120_1_1.html
我想可能是因为一次调用cat 会读两次,这里应该也是一次调用echo 应该也会写两次吧,第二次写的是空,

