华为SDCAPP开发:软件包规范与rpm管理

需积分: 47 11 下载量 49 浏览量 更新于2024-08-06 收藏 4.35MB PDF 举报
该文档详细介绍了华为海思3559a SDC (Software Development Kit for Communication) 的软件包规范,用于指导开发者创建、管理和更新应用程序。以下是关键知识点: 1. **软件包格式**: - 软件包必须采用RPM (Red Hat Package Manager) 格式,这是Linux系统中常用的包管理器,要求支持基本安装,不包括依赖检查、签名验证和安装后处理等高级功能。 - 完整的软件包名遵循特定命名规则:{app name}-{version}-{release}.{aarch}.rpm,其中{app name}只允许字母数字和下划线,{version}和{release}只能包含数字,而{aarch}支持arm32和arm64架构。 2. **软件包大小与结构**: - 建议软件包大小不超过200MB,以保持性能和管理效率。 - 可以创建patch包来更新特定文件,如license和功能配置文件,它们会覆盖原安装包并需手动重启应用以使更改生效。然而,patch包不支持单独卸载。 3. **升级和数据管理**: - 升级意味着安装不同版本和release的新软件包,可能导致现有数据丢失,除非这些数据存储在外部的数据盘上,需开发者自行管理数据迁移。 - 数据盘通过变量disk.app.sdc进行挂载,应用程序必须能够访问和管理这些数据。 4. **权限与程序位置**: - 软件包安装时,%{buildroot}是应用的根目录,只有写权限,应用通过环境变量获取实际路径。 - 主程序要求位于%{buildroot}/bin目录下,通常是main或main.sh,主进程需是常驻的,并在接收到SIGTERM信号后优雅退出。 5. **服务化接口**: - 文档还提到了SDC服务化接口,包括文件操作接口,如open()和read/write(),以及视频相关的接口如sdc_venc_data和sdc_venc_frame,强调了接口的使用说明和字段的调整。 6. **最新版本更新**: - 文档在1.3版本中增加了rpm命名规范的详细说明,以及关于内存加载NNIE模型、事件服务化接口、数据盘挂载机制、NNIE推理命令扩展头设置优先级等内容,以及技术FAQ和RPM打包及安装指南等附录资料。 这份文档为海思3559a SDC平台上的软件开发提供了清晰的规范和指导,涵盖了从软件包构建到服务交互的全方位开发流程。开发者需要严格遵循这些规定,以确保应用的兼容性和高效运行。