当前位置: 首页 > 科技观察

使用Harmonyos开发AI应用(三)软件篇

时间:2023-03-13 17:33:52 科技观察

更多内容请访问:Harmonyos.51cto.com/#zz前言上一篇文章,我们在Win10上用虚拟机安装了Ubuntu,并设置了文件共享。本文在此基础上编译鸿蒙os源码并烧录设备。HarmonyOS简介1.系统定义HarmonyOS是面向全场景(移动办公、运动健康、社交通讯、媒体娱乐等)的“面向未来”的分布式操作系统。HarmonyOS在传统单设备系统能力的基础上,提出了基于同一套系统能力、适配多种终端形态的分布式概念,可以支持多种终端设备。2、技术架构HarmonyOS整体遵循分层设计,从下到上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统>子系统>功能/模块”逐级扩展。在多设备部署场景下,一些不需要的子系统或功能/模块可以根据实际需要裁剪。这次开源的内核只有鸿蒙OS微内核,Linux内核还要等下个版本。3、分布式软总线分布式软总线是各种终端设备的统一基础,为设备之间的互联互通提供统一的分布式通信能力,能够快速发现和连接设备,高效分发任务和传输数据。4、分布式设备虚拟化分布式设备虚拟化平台可以实现不同设备的资源整合、设备管理、数据处理,多个设备共同组成一个超级虚拟终端。针对不同类型的任务,为用户匹配和选择具有合适能力的执行硬件,让业务在不同设备之间不断流转,充分发挥不同设备的资源优势。主要特点是分布式架构和设备虚拟化技术。更多详细信息,请参考官网说明。StudioCode软件包需要1.45.1及以上版本。一、工具介绍HUAWEIDevEcoDeviceTool(以下简称DevEcoDeviceTool)是HarmonyOS为智能终端开发者提供的一站式集成开发环境。支持HarmonyOS组件按需定制、代码编辑、编程、调试。支持C/C++语言,以插件形式部署在VisualStudioCode上。该工具具有以下特点:DevEcoDeviceTool以VisualStudioCode插件形式提供,体积小。支持代码搜索、代码高亮、代码自动补全、代码输入提示、代码检查等,开发者可以轻松高效地编写代码。支持多种类型的开发板,包括ARM架构的Hi3516/Hi3518系列和RISC-V架构的Hi3861系列开发板,提供一键式编程调试GUI界面。支持单步调试能力,查看内存、变量、调用栈、寄存器、汇编等调试信息。2、安装VisualStudioCodehttps://code.visualstudio.com/如果懒得下载,也可以在文末网盘获取最新版安装包。3、安装Node.js官网下载地址,请选择LTS版本12.0.0及以上,Windows64位对应软件包。https://nodejs.org/en/download/安装后,在“此计算机>属性>高级系统设置>高级>环境变量>系统变量”中添加NODE_PATH变量,值为:C:\Users\{userName}\AppData\Roaming\npm\node_modules,其中userName应替换为实际用户名。4、安装JDK下载并安装JDK,版本要求为:1.8版本。https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html下载完成后安装jdk-8u271-windows-x64.exe。5、安装基于node.js的hpm,全局模式下安装脚手架npminstall-g@ohos/hpm-cli测试是否安装成功hpm-V6。安装DevEcoDeviceTool插件如果您已经安装了DevEcoDeviceTool插件,在安装新版本之前,请手动卸载已安装的DevEcoDeviceTool插件,然后按照以下步骤进行安装。从产品页面https://device.harmonyos.com/cn/ide下载工具插件,从本地磁盘安装DevEcoDeviceTool。7、安装C/C++插件HarmonysOS设备开发采用C/C++语言,VisualStudioCode工具支持C/C++语言的插件非常丰富,可以安装“C/C++”插件实现C/C++代码智能提示、高代码Lighting、格式化等功能,帮助您更高效便捷地开发出更规范、更美观的代码。在VisualStudioCode的插件市场,输入“C/C++”,点击“安装”。官网提供了4种方式获取源码(转ubuntu)。这里我们使用从代码仓库获取的源码,进入虚拟机的ubuntu系统。1、将linuxshell换成bash,查看shell是否为bash。在终端运行以下命令ls-l/bin/sh。如果显示为“/bin/sh->bash”,则正常。否则,请修改如下:在终端中运行以下命令,然后选择否。sudodpkg-重新配置dash2。安装sshserver(可选)如果想通过ssh提供外部链接,可以安装sshservicesudoapt-getinstallopenssh-server等相关命令#查看ssh服务sudops-e|grepssh#开启服务sudo/etc/init.dd/sshstart#查看服务状态sudoservicesshstatus#关闭服务sudoservicesshstop#重启服务sudoservicesshrestart此时其他电脑可以通过ssh命令访问ubuntu。如果你喜欢,你也可以安装putty-64bit-0.74-installer.msi来连接。3、配置python环境Ubuntu20.04.1默认有python3.8whichpython/usr/bin/python3.8建立软链接,指向pythoncd/usr/binsudoln-s/usr/bin/python3.8python&&python--version4.安装升级Python包管理工具(pip3)sudoapt-getinstallpython3-setuptoolspython3-pip-ysudopip3install--upgradepip配置pip改源,新建~/.pip/pip.conf,写入清华源[global]index-url=https://pypi.tuna.tsinghua.edu.cn/simple安装python模块setuptoolspip3installsetuptools安装GUImenuconfig工具(Kconfiglib),建议安装Kconfiglib13.2.0+版本sudopip3installkconfiglib5。安装文件打包工具sudoapt-getinstalldosfstoolsmtoolsmtd-utils6。下载并配置编译工具链mkdir-p~/harmony/tools&&cd~/harmony/tools#下载gn/ninja/LLVM/hc-gen包:URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compilerwget$URL_PREFIX/gn/1523/linux/gn.1523.tarwget$URL_PREFIX/ninja/1.9.0/linux/ninja.1.9.0.tarwget$URL_PREFIX/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tarwget$URL_PREFIX/hc-gen/0.65/linux/hc-gen-0.65-linux.tar#解压gn/ninja/LLVM/hc-gen包:tar-C~/harmony/tools/-xvfgn。1523.tartar-C~/和谐/到ols/-xvfninja.1.9.0.tartar-C~/harmony/tools/-xvfllvm-linux-9.0.0-34042.tartar-C~/harmony/tools/-xvfhc-gen-0.65-linux.tar#to在~/.bashrc中添加gn/ninja/LLVM/hc-gen路径配置:cat<>~/.bashrcexportPATH=~/harmony/tools/gn:\$PATHexportPATH=~/harmony/tools/ninja:\$PATHexportPATH=~/harmony/tools/llvm/bin:\$PATHexportPATH=~/harmony/tools/hc-gen:\$PATHEOF#有效环境变量source~/.bashrc7.安装虚拟环境sudopip3install-Uvirtualenvvirtualenv-ppython3~/my_envs/harmonyossource~/my_envs/harmonyos/bin/activatepipinstallrequests#后续repo需要8.配置repo工具sudoaptinstallcurlcurlhttps://gitee.com/oschina/repo/raw/fork_flow/repo-py3>~/harmony/tools/repochmod+x~/harmony/tools/repoecho'exportPATH=~/harmony/tools:$PATH'>>~/.bashrcsource~/.bashrc9。下载HarmonyOS源码mkdir-p~/harmony/openharmony&&cd~/harmony/openharmonysudoaptinstallgit#配置用户信息gitconfig--globaluser.name"yourname"gitconfig--globaluser.email"your-email-address"gitconfig--globalcredential.helperstorerepoinit-uhttps://gitee.com/openharmony/manifest.git-bmaster--no-repo-verifyreposync-c#同步远程仓库稍等,源码仓库的代码会同步到openharmony目录10.编译源代码pythonbuild。pyipcamera_hi3516dv300稍等一下,编译时间取决于虚拟机的资源,如果太慢,可以多分配一些。详细方法可以参考之前的文章。也按照鸿蒙开发AI应用(二)系统中的方法分享~/harmony到Win10系统进行访问。烧录程序(切回windows)1.映射网盘将ubuntu中的共享源目录映射到网盘2.导入源码HarmonyOS暂不支持Windows系统源码,请从共享源导入源码映射的Linux服务器的路径。3、配置项目导入项目源码文件后,请配置项目,如项目烧录、调试依赖工具等信息。点击底部工具栏的“板卡”按钮,选择开发板对应的配置模板,例如:Hi3516DV300。4、安装烧录依赖工具网络烧录ftp工具npminstall-gtftp串口烧录工具npminstall-gserialportnpminstall-g@serialport/parser-readlineusb烧录工具npminstall-gusb烧录后的crc校验工具npminstall-gcrc5.安装串口驱动PL-2303的驱动文件USB-to-SerialCommPort.exe插上串口线和网线,在设备管理器中找到对应的串口号(COM4)6。串口调试点击最下方的串口连接串口,使用命令行配置设备。也可以使用SSCOM等传统串口调试工具进行测试。7、插件网络编程硬件连接方法如下图所示,这里我们的Linux编译服务器是虚拟机的形式。7.1查询IP地址ubuntu的ip地址通过ifconfig查询,用于映射网络驱动器;windows的ip地址是通过ipconfig查询出来的,烧录的时候需要用到;7.2配置串口打开vscode,点击配置-烧录,选择烧录方式为网络;选择对应的串口号(这里是COM4)7.3配置目标板网络Hi3516DV300的ip地址,可以设置为同一网段未使用的地址,最后一段可以是2-254(这里58除外)。7.4配置内存类型根据之前的硬件定义,Hi3516DV300内存类型设置为emmc7.5配置文件及写入地址在之前编译生成的文件夹中找到以下文件,按列表配置Z:\openharmony\out\ipcamera_hi3516dv300点击保存按钮保存设置。7.6运行烧录命令在DevEcoDeviceTool中,烧录完成后点击箭头图标。插件会执行上传命令进行烧录。7.7设置脚本权限如果遇到这个错误信息,在系统搜索框中输入WindowsPowerShell,点击“以管理员身份运行”,输入“set-ExecutionPolicyRemoteSigned”并回车。根据提示输入A,回车。7.8设置防火墙如果网络地址完全正确(仔细检查setenv命令参数),遇到crc32校验错误。需要设置防火墙允许vscode应用允许node.js程序(这个特别容易漏掉)。7.9烧录成功。如果一切顺利,可以看到重启开发板的提示,写入就成功了。网络烧录速度还是很快的。8、HiTool刻录(推荐)不用安装node.js和一堆之前的依赖包,用HiTool刻录电影相对方便一些。解压Hi3516-HiTool.zip,直接运行HiTool.exe。8.1选择ChipMenuChip-SwitchChip-Hi3516DV3008.2关闭tftpAccelerationMenu窗口-Preferences-TFTPSettings,由于Hi3516DV300不支持加速功能,取消该配置的复选框。8.3串口编程选择串口为COM4,填写文件和写入地址,点击编程按钮。但是速度会不会慢到令人怀疑...8.4网口编程参数设置如下图所示,就不多描述了。网络编程的速度快多了,2分钟就能搞定!这里注意一定要同时插串口线和网线,因为即使是网口烧录方式,网络配置命令和fastboot部分也是通过串口传输的。还有一种usb刻录的方法,需要额外的usb线,速度也不快。默认还会给开发板充电,有时候还会干扰重启操作,比较鸡肋,就不细说了。重启开发板后,就可以看到久违的demo程序了。下载下一个预览。至此,所有配置已经完成。在下一篇中,您可以开始编写自己的程序,开始真正的应用程序开发之旅。敬请期待...?版权归作者及HarmonyOS技术社区所有转载请注明出处,否则将追究法律责任。更多信息请访问:与华为官方共同建立的鸿蒙科技社区https://harmonyos.51cto.com/#zz