嵌入式LINUX驱动开发(一)之hello驱动(基于IMX6ULL-MINI开发板)

1.驱动前提

编译驱动程序之前要编译内核,原因主要是:

(1)驱动程序要用到内核文件:

比如驱动程序中这样包含头文件: #include <asm/io.h>, 其中的asm是一个链接文件,指向asm-arm或asm-mips,这需要先配置、编译内核才会生成asm这个链接文件。

(2)编译驱动时用的内核,开发板上运行到内核,要一致:

开发板上运行到内核是出厂时烧录的,你编译驱动时用的内核是你自己编译的,这两个内核不一致时会导致- -些问题。所以我们编译驱动程序前,要把自己编译出来到内核放到板子上去,替代原来的内核。

(3)更换板子上的内核之后,板子上的其他驱动也要更换

板子使用新编译出来的内核时,板子上原来的其他驱动也要更换为新编译出来的。所以在编译我们自己的第1个驱动程序之前,要先编译内核、模块,并且放到板子上去。

2.编译内核

首先切换到内核所在目录

cd /home/xxl/100ask_imx6ull_mini-sdk/Linux-4.9.88

之后进行下面的操作

make mrproper
make 100ask_imx6ull_mini_defconfig
make zImage -j4

编译后生成的文件如下:

然后进行下面操作,也就是

在arch/arm/boot/dts 目 录 下 生 成 设 备 树 的 二 进 制 文 件 100ask_imx6ull_mini.dtb 。把这 2 文件复制到 /home/book/nfs_rootfs 录下备用
make dtbs
cp arch/arm/boot/zImage ~/nfs_rootfs
cp arch/arm/boot/dts/100ask_imx6ull_mini.dtb ~/nfs_rootfs

3.编译安装内核模块

3.1编译内核模块

首先进入内核源码目录,编译内核模块

cd /home/xxl/100ask_imx6ull_mini-sdk/Linux-4.9.88

 然后输入下面的指令,编译完成如下图

make modules

 

 3.2安装内核模块到Ubuntu某个目录下面备用

可以先把内核模块安装到 nfs <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值