TINY4412 内核编译 GPIO驱动流水灯

系统:Ubuntu 18.04.1 LTS amd64
Linux内核版本:3.5
编译工具链: arm-linux-gcc version 4.4.3

我们知道,Linux中上层应用是不能直接访问硬件的,应用访问硬件需要通过内核,因此我们的基本过程是在内核源码中添加GPIO驱动代码,该驱动代码实现上层应用可以通过调用内核中的函数对单个GPIO写,而流水灯的逻辑我们在上层的测试程序中实现。
一、 准备工作:
1、 GPIO端口选择和连线
本开发板为Tiny4412 1506,根据友善之臂提供的原理图,我们选择8个GPIO口作为LED控制端口。
在这里插入图片描述
如图所示,CON17在板子上是双排针接口,作为摄像头的一个接口,我们重点关注这些引脚和CPU的什么引脚连接起来,如下图所示:
在这里插入图片描述
刚好发现在CON17上,GPJ0_0-GPJ0_7都有,刚好8个端口,我们按照对应关系,将GPJ0_0-GPJ0_7从上到下依次和流水灯电路接好,如下图所示:
在这里插入图片描述
将两块线路板共地,因为在上面的51单片机板上流水灯是共阳的,所以我们还需要接入5V电源。至此,线路已经连接好。
2、 内核源码和必要文件准备
新建Src文件夹用来存放源码:
mkdir Src
在这里插入图片描述
将准备好的linux内核源码(友善的资料里有)放在该文件夹下:
在这里插入图片描述
解压:tar –xzvf linux-3.5-20170221.tgz
在这里插入图片描述
将友善提供的ramdisk镜像和文件系统镜像也一并放在该文件夹下:
在这里插入图片描述
二、 内核初次编译:
该过程是为了排除源码中存在的一些错误,通过之后后续过程只关注于流水灯驱动部分。
进入目录:
在这里插入图片描述
拷贝一份工程下针对tiny4412的config文件:
在这里插入图片描述
然后执行make menuconfig进行一些配置:
在这里插入图片描述
在menu里面关闭掉trustZone模式,因为我们当前的uboot不支持该模式。
在这里插入图片描述
之后打开内核的debug信息输出,这样做的好处是当内核启动不成功的时候我们可以知道卡在什么地方了,方便调试。
在这里插入图片描述
然后保存退出。
打开kernel文件夹下的timeconst.pl文件,将373行的源码修改为:
在这里插入图片描述
保存退出。
然后在顶层目录下进行编译:
make –j4
在这里插入图片描述
等待若干分钟后:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值