本帖最后由 superw 于 2022-9-9 13:40 编辑
一、资料获取
测评页面厂商提供了K510相关文档和SDK,也可以通过github下载相关SDK与文档,链接为https://github.com/kendryte,gitee链接为https://gitee.com/kendryte。
Linux下可通过如下命令获取K510 SDK
git clone https://github.com/kendryte/k510_buildroot.git
K510_buildroot拉取后默认保存在home目录下
K510_buildroot内包含了SDK相关源码,其中各文件描述如下
二、开发环境搭建
要想开发板正常启动,需要将K510 SDK编译生成的镜像烧录到板上的存储设备上。
而生成镜像文件则需要相应的docker编译环境,这里刚开始我也挺懵的,之前没接触过docker根本不知道是什么,正好借此机会学习一下。
------------题外话
Docker是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
当你进行开发之前,需要安装各种开发工具和服务支持到开发环境中,可能会出现依赖问题、环境变量问题、端口冲突、编译库问题等等。开发途中,可能又需要依赖一些其他的服务,最好祈祷不会出问题,否则可能又要重新配置环境,这样下来需要花费大量的时间用在搭建环境当中。
运用Docker的好处有试错、统一开发和生产环境、高性能、成果展示等方面。
---------------------
重新回到搭建Docker编译环境上来
编译
在K510_buildroot上级目录执行以下命令启动Docker
sh k510_buildroot/tools/docker/run_k510_docker.sh
执行结果如下,此时注意环境已经变成K510 Docker环境了,而ubuntu环境下为wu@wu-virtual-machine:,开发环境搭建过程中有些命令是在K510 Docker环境下输入的,有些命令是在ubuntu环境下输入的,需要特别注意区分。
如果终端出现“docker:未找到命令”的错误,可能是因为未安装Docker,需要安装一下Docker,在终端执行以下命令即可安装
1. sudo apt-get install docker
2. sudo apt-get install -y docker.io
3. sudo apt-get install docker-registry
启动Docker后在K510 Docker环境下输入如下命令下载源码包,可以加速编译
make dl
源码包下载过程可能比较慢,我直接晚上电脑挂在那里下载睡觉去了
下载完成后在K510 Docker环境下输入如下命令启动编译
make CONF=k510_crb_lp3_v1_2_defconfig
编译完成后可以发现K510 Docker环境下生成了k510_crb_lp3_v1_2_defconfig文件夹
对于生成的k510_crb_lp3_v1_2_defconfig文件夹中各文件描述如下
其中images目录下的即为最终需要烧录到存储设备中的镜像
此贴只展示开发环境的搭建过程并烧录hello_world演示程序,因此对其中的buildroot、U-Boot、Linux kernel、dts文件的配置和编译不做更改,保持默认即可。
在虚拟机环境下修改k510_buildroot目录下的Config.in文件,输入如下命令
vi Config.in
在Config.in 中添加package/hello_world/Config.in所在的路径并保存
在K510 Docker环境下输入如下命令配置buildroot
make CONF=k510_crb_lp3_v1_2_defconfig menuconfig
进入buildroot配置界面后,选择External option,然后选中其中的hello_world后保存并退出
在K510 Docker环境下,k510_buildroot目录下输入如下命令再次保存配置
make CONF=k510_crb_lp3_v1_2_defconfig savedefconfig
在K510 Docker环境下,k510_buildroot目录下,输入如下命令再次编译整个程序,并将hello_world打包到emmc和sd卡镜像文件中
make CONF=k510_crb_lp3_v1_2_defconfig
输出如下信息表示编译成功
此时在k510_buildroot/k510_crb_lp3_v1_2_defconfig/target/app/hello_world/目录下,可以看到刚生成的hello应用程序
至此编译工作已完成,接下来需要将镜像文件烧录到存储设备里,这里我选择把镜像文件烧录到TF SD卡中。
烧录
烧录镜像可以在windows下烧录,也可以在ubuntu下烧录,这里选择ubuntu下烧录
在ubuntu终端下输入如下命令查看当前的存储设备
ls -l /dev/sd*
将TF SD卡插入读卡器中然后接入电脑,再次输入上面的命令查看此时的存储设备,新增加的就是 sd 卡设备节点
此时需要特别注意sd卡设备节点,后面烧录需要用到,上图中我的sd卡设备节点就是/dev/sdb。不同环境下生成的sd卡设备节点可能不同,后续烧录时需要根据实际节点进行相应修改。
ubuntu下进入k510_buildroot/k510_crb_lp3_v1_2_defconfig/image目录
输入如下命令将sysimage-sdcard.img文件烧录到sd卡中,注意此时需要更换上述sd卡设备节点
sudo dd if=sysimage-sdcard.img of=/dev/sdb bs=1M oflag=sync
输出如下信息即代表烧写成功
运行
将sd卡插入开发板的TF卡座中,选择对应的启动模式,打开电源开关可发现程序正常运行
开机显示嘉楠科技的logo
同时串口打印初始化成功的信息
摄像头拍摄图片
至此,开发环境已搭建完成并成功将hello_world的demo烧录。
最后,明天中秋,祝各位坛友们中秋节快乐!!!
|