#2020征文-开发板#HiSpark AI Camera连载烧写系统和第一个应用
Linux编译环境搭建完成后,本想着利用套件自带的缺省系统先跑个简单的应用程序看看效果,先来看看缺省系统的运行情况。
在串口终端键入如下命令:
ps -ef
上图中的PID为212的进程就是开机后自动运行的应用openais,也就是摄像头画面实时显示。
能不能在现有系统中直接跑个简单的应用程序呢?试试看。
1)、在开发环境编辑一个简单的应用程序test.c
cd applications/sample/camera/app/src
vi test.c
输入内容:
#include <stdio.h>
int main()
{
printf("\n*********************************\n");
printf("\n\t\tHello Hi3516DV300!\n");
printf("\n*********************************\n");
return 0;
}
2)、编译
clang -target arm-liteos --sysroot=/home/weather/hmos/prebuilts/lite/sysroot/ -o test test.c
3)、在串口终端键入以下mount网络文件系统命令
mount –o nolock192.168.1.11:/home/weather/hmos /mnt
4)、将刚才编译好的程序test拷贝到本地bin目录
cd /bin
cp /mnt/applications/sample/camera/app/src/test ./
5)、运行应用程序
./bin/test
直接提示找不到这个命令,继续键入以下命令:
test
屏幕上没有任何提示信息。
好吧,尝试失败,还是按照官网教程来吧。
将编译好的鸿蒙OS系统3个文件拷贝到windows平台,然后运行烧写工具软件Hitool,界面如下:
点击左上角连接管理配置图标:
根据电脑里的配置选择端口号,其它串口参数不用更改。
一般我们都会选择网络方式烧写,hitool也推荐网络方式烧写,分别配置好PC端和板端的IP地址等参数。
板端的IP地址可以这样配置,直接在hitool工具打开终端界面,点击左上角终端图标,再点击下方终端1页面,然后给开发板上电,在出现倒计时提示后按回车,界面如下:
Hitool自带串口终端,还是很方便的哦。
在命令行分别键入如下2条IP配置指令:
setenv serverip 192.168.1.88
setenv ipaddr 192.168.1.22
保存配置:
saveenv
看一下结果:
print
接下来配置待烧写的文件和相关参数:
点击烧写eMMC页面选项,然后点右边的绿色“+”号,把要烧写的3个文件如上图所示配置好。注意左边的对应3个文件的方框一定要勾选上。
最后点击“烧写”按钮,出现以下提示:
注意,在点击“烧写”按钮前,先要将终端1关闭,并点击控制台页面,然后才可以启动烧写。
根据提示给板子重新上电,如网络参数等配置正确,则弹框中的进度条和控制台会不断更新显示:
最后烧写成功:
烧写完成后再次给板子重新上电,此时系统进入的是uboot界面,还要添加启动参数才能进入新系统,在串口终端界面分别键入:
setenv bootcmd "mmc read 0x0 0x80000000 0x8000x2800; go 0x80000000";
setenv bootargs "console=ttyAMA0,115200n8root=emmc fstype=vfat rootaddr=6M rootsize=15M rw";
保存配置命令:
saveenv
重启系统:
reset
稍后,串口终端显示界面如下:
屏幕显示:
烧写成功,接下来运行第一个应用程序,键入以下命令:
./bin/camera_app
OK!没有任何问题。
再来看看新系统都有哪些进程,键入命令:
ps -ef
结果系统提示:
继续键入以下命令:
mount –o nolock 192.168.1.11:/home/weather/hmos /mnt
结果提示:
看来新系统和随机带的系统还是有区别的,它们的差别到底在哪里呢?另外最重要的一个问题,如果不能mount网络文件系统,那如何调试应用程序?总不能改动一点点就要重新烧写整个用户文件系统吧,下一步就来好好研究一下这个问题,或者咨询下大佬们有没有更好的解决办法。