SDK和开发环境部署 前面进行了开箱并准备好了相关的硬件资源,这次就把开发环境继续准备好。因为是初学者,也难免碰到了很多坑,好在也能一一解决,很有收获。 RV1103 是一颗arm内核,开发时应使用linux的arm开发环境比较合适。LuckfoxPico-SDK是基于Ubuntu LTS 系统开发测试的,在开发过程中,主要是用Ubuntu 18.04版本, 所以官方的文档推荐用户使用Ubuntu18.04的电脑主机或者虚拟机。但我的电脑是基于Intel 12代i9处理器的win11系统,之前已经安装了WSL2,因此尝试参考官方的教程,以次搭建sdk和开发环境。 安装相关依赖包 执行如下 sudo apt-get install repo git ssh make gcc gcc-mul tilib g++-multilib module-assistant expect g++ gawk texinfo libssl-dev bison flex fakeroot cmake unzip gperf autoconf device-tree-compiler libncurses5-dev pkg-config 这个时候会提示报这个错 Unable to locate package repo,这是因为Ubuntu 20.04的版本中镜像路径已经没有这个包了,就用另外的方法安装 首先 chmod +x ~/bin/repo 这时可以验证是否已经安装完成 repo --version 终端显示如下 接下来clone下载sdk 安装完后sdk文件夹下有如下文件 交叉编译工具链安装 执行如下命令 cd tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/ source env_install_toolchain.sh 如果需要手动更新环境变量路径的,执行如下命令 export PATH="/home/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin:$PATH" 输入arm-rockchip830-linux-uclibcgnueabihf-gcc -v可以查看交叉编译工具的具体信息 进入Luckfox-Pico 目录,执行./build.sh lunch 因为硬件是 Luckfox_Pico_Plus,因此输入1,选择对应的硬件板子 然后就开始输入 ./build.sh 命令,执行编译 编译完成之后获取如下结果提示 然后进入output文件夹下的image文件夹,即可看到生成的image文件了 清除编译产生的文件可以使用如下clean操作 接下来测试一下官方教程中的hello程序,下载地址为: https://files.luckfox.com/wiki/Luckfox-Pico/Software/Load.ko-driver.zip 整个工程只有两个文件,一个helloworld.c,一个用来控制编译的Makefile 其中hello.c的代码内容为 其功能比较简单,就是打印helloworld和helloworld bye 接下来看下Makefile文件,其原始内容为如下 这里需要将其更改为我自己的对应SDK安装路径的目录 KDIR:=/home/luckfox-pico/sysdrv/source/kernel 然后将文件拷贝到sdk安装路径的kernel文件夹下 /luckfox-pico/sysdrv/source/kernel/ 这里我将原始下载文件夹名称从Load.ko-driver改成了hello_test 进入hello_test文件夹,执行如下命令 其中其中CROSS_COMPILE的地址为arm-gcc交叉编译工具的所在路径,之前已安装的路径为如下:/home/tristan/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/ export ARCH=arm export CROSS_COMPILE=/home/tristan/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/arm-none-eabi- Make 编译完成即得到了目标可执行文件了,包括了ko驱动模块文件 可以采用tftp的方式进行传输,首先从下述链接下载tftp服务器Tftpd,解压即可使用 https://files.luckfox.com/wiki/Luckfox-Pico/Software/tftpd64.zip 然后将之前在wsl中编译生成的ko文件 拷贝到宿主机的如下目录 然后打开Tftpd,并选择其服务器路径为前述宿主机的ko文件所在目录 将Luckfox开发板网线,通过ifconfig命令获取其IP地址,以查看是否链接网络成功,如果已经有IP分配到,表示网络可用。 然后通过tftp从服务器下载ko文件,其中服务器IP地址需要从服务器电脑上查看,也就是前述宿主机的地址。并通过ls命令查看是否已经下载成功。 然后就可以通过insmod helloworld.ko命令和rmmod helloworld.ko命令,分别看到[ 200.330884] helloworld!和[ 218.624421] helloworld bye的输出。 还可以通过dmesg 查看具体的日志。 至此,sdk和开发环境的部署完成。
|