瑞芯微Rockchip开发者社区
直播中

郑成枝

7年用户 1258经验值
私信 关注
[问答]

RK3308B开发板的开发流程是怎样的?

RK3308B开发板的开发流程是怎样的?

回帖(1)

刘继牛

2022-3-9 11:42:58
接《Firefly RK3308B 搭建环境,编译,生成固件并烧录》文章
在Ubuntu中编辑和编译生成hello_world.ko文件,运行在开发板上,熟悉交叉编译的流程,进一步熟悉RK3308B开发板的开发流程。


(一)生成Makefile、Kconfig文件

1.配置Kconfig

在/home/sgw/prj/Firefly-RK3308/kernel/drivers目录下,新建一个test文件夹,进入test文件夹

$ mkdir test
$ cd test

在test文件夹下,创建并编辑Kconfig

$ touch Kconfig
$ gedit Kconfig

在Kconfig中添加内容

config TEST
        bool "Test driver"
        help
        this is for test !!

这里定义了一个TEST的句柄,Kconfig可以通过这个句柄来控制Makefile中是否编译,”Test driver”是显示在终端的名称。

2.配置Makefile

在test文件夹下,创建Makefile

$ touch Makefile
$ gedit Kconfig

在Kconfig中添加内容

obj-m+=hello_world.o
all:
        make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) modules
clean:
        make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) clean

当CONFIG_选项名=y时,表示对应目录下的xxx.c将被编译进内核当CONFIG_选项名=m时对应目录下的xxx.c将被编译成模块

3.配置上层目录的Kconfig

首先回到/home/sgw/prj/Firefly-RK3308/kernel/drivers目录

$ cd ..
$ gedit Kconfig

在Kconfig中最后添加

source "drivers/test/Kconfig"

4.配置上层目录的Makefile

$ gedit Makefile

在Makefile中最后添加

obj-y                                += test/

5.配置menuconfig

首先回到/home/sgw/prj/Firefly-RK3308/kernel目录

$ cd ..
$ make menuconfig

在打开的Kernel Configuration界面中,选择Device Drivers,Enter后再选择Test driver,然后通过空格键选中,保存退出

6.make生成.ko文件

在/home/sgw/prj/Firefly-RK3308/kernel目录下

$ make

7.把.ko文件推进到开发板

首先去到/home/sgw/prj/Firefly-RK3308/kernel/drivers/test目录

$ adb push hello_world.ko mnt/

8.另开一个终端,进入开发板目录,并加载.ko文件

$ adb shell
$ cd mnt/
$ insmod hello_world.ko

9.查看.ko文件是否已加载,并且查看打印

$ lsmod
$ dmesg

10.卸载.ko文件

$ rmmod hello_world.ko
举报

更多回帖

发帖
×
20
完善资料,
赚取积分