1、创建led.ko
创建.ko文件的过程详见上一章节:为Android内核添加新驱动;(注:make menuconfig中Device Drivers菜单下,选中项这里使用[M]作为modules)
2、串口连接
这个就不多讲了,拿串口线将PC和芯片连接;
3、开发板固件烧写
(1)固件生成,由于每个开发板的生成命令不一样,具体以芯片手册为准,这里是我使用的命令:
uboot 编译:
cd u-boot
make rk3399_defconfig
make ARCHV=aarch64
kernel 编译:
cd kernel
make ARCH=arm64 rockchip_defconfig -j8
make ARCH=arm64 rk3399-sapphire-excavator-edp.img -j12
Android 编译:
source build/envsetup.sh
lunch rk3399_64-userdebug
make -j12
./mkimages.sh
固件生成后会在某个文件夹下显示,下面是我这里固件生成的文件目录:
rockdev/Image-xxx/
├── boot.img
├── kernel.img
├── misc.img
├── parameter.txt
├── recovery.img
├── resource.img
├── RK3399MiniLoaderAll_V1.05.bin
├── system.img
├── trust.img
└── uboot.img
接着就是固件烧写了,填好相应的路径,点击执行,然后烧写成功了(见下图)。
4、载入模块
使用insmod led.ko载入到开发板中modules文件夹下;
5、应用层调用
准备Android makefile文件和测试文件(我这里是Android.mk和test.c文件),配置安卓环境,我这里使用的是:
source build/envsetup.sh
lunch rk3399_64-userdebug
然后,在终端输入:mm,生成可执行文件led_test,最后运行即可。