Device加载不同业务包的总体实现方案如下图所示。
图1 Device加载业务包实现方案
用户需要自定义实现如下模块:
- 业务包。
应用程序安装包,建议按照如下目录结构进行业务包的打包。
业务包.tar.gz
├── package
│ ├── xxx.so //so文件
│ ├── app //可执行文件
├── scripts
│ ├── install.sh //安装脚本,把业务包的so文件和app可执行文件拷贝到指定目录
│ ├── uninstall.sh //卸载脚本,停止业务进程并删除安装文件
│ ├── boot.sh //业务启动脚本,启动业务进程
- Host侧的Daemon进程,用于实现业务包的加载。
- Device侧的Client进程,负责进行业务包的安装和启动,此进程需要打包到Device侧的文件系统中。
- Device侧业务包的安装用户请使用HwHiAiUser用户。
- Host的Daemon进程与Device的Client进程基于PCIe、HDC实现消息的交互及文件的传输,若用户自行修改了PCIe或HDC驱动代码导致PCIe HDC不可用,需要自行开发新的通信功能,新的通信功能需要支持Host与Device的消息通信和文件加载功能。