当前位置: 首页 > article >正文

基于海思soc的智能产品开发(产品开发和mpp平台)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        用自己熟悉的硬件平台开发产品,这本身是无可厚非的。但是从成本控制、以及供应链管理的角度来说,一个平台再好,也不能把鸡蛋全部放到一个篮子里面。这里面必须要考虑到风险和价格。所以,对于产品开发来说,有必要提前设计好接口,保证底层平台随时可以切换。这样的设计可能一时用不上,但是必须要有。

1、提取平台接口

        大部分soc都会提供video input、video encode、video decode类似于这样的接口,那我们就可以把这些接口提取出来。这些平台是如何实现这些接口的,可以暂时先不管。但是做了这一步之后,后续所有的开发,就是依赖于这些接口进行开发,而不是直接调用特定平台的api进行开发。

2、部分平台特有的功能,可以用软件实现

        在提炼的过程中,有可能会出现这样的一种情况。也就是A平台提供了一种功能,B平台没有提供。这种情况下抽象出接口之后,可以直截了当说,B平台不支持 ;也可以我们用软件替B平台实现一个,这都是常规操作。

3、业务和平台脱离

        提炼出接口之后,业务开发就可以和平台之间实现脱离。因为我们开发的产品可能用于各个行业,比如说消费品、工业品、医疗品,在开发的过程中只要专注于业务部分,而不是平台底层,这无疑会大大提高开发的效率和质量。因此,在开发的过程当中,必须严格禁止直接调用底层平台的api函数。因为一旦这么做,就会大大降低平台代码的移植性,不利于后续代码的开发。

4、有利于人员招聘

        因为接口部分都是自己开发的,所以对应的功能和参数,也可以做到了然于胸。这种情况下,我们就可以招聘一部分同学,专门focus在业务开发上面,不必对底层硬件和sdk有过多的了解。他所要做的,就是了解客户的需求,掌握一般的软件开发知识,在平台接口上面通过编码,去实现客户的功能即可。

5、优化供应链的管理

        不同的底层平台,芯片价格差异很大。有的时候,为了降成本,或者是现在比较流行的降本增效,有必要在不同的平台之间进行切换。如果我们编写的软件和某一个平台捆绑过深,那么这种平台的切换就会异常困难。但假设我们提前做好了接口适配,那么这种移植和切换,就会变得非常轻松,甚至都不需要花费太长的时间,就可以达到这一目的。

6、实现业务开发和底层开发的解耦

        同样是软件开发,业务开发和底层开发是两个方向。业务开发是对外,底层开发是对内。对外的开发,讲究的是快速执行,和客户快速对接。底层开发,则主要是和硬件平台打交道,要求的是专注,对细节要求很高。比如,对芯片的了解、对linux的了解、对芯片sdk的了解,以及对性能的优化等等,这方面两者差距很大。因此有必要,对两种开发人员做一个解耦,这样才能最大程度提高开发的效率。


http://www.kler.cn/a/378497.html

相关文章:

  • CM API方式设置YARN队列资源
  • github - ssh 配置 key、下载repo
  • 如果 MySQL 主库出现了问题,从库该何去何从呢?
  • 2024年9月电子学会青少年软件编程Python等级考试(四级)真题试卷
  • 打包IPA包上传,报错“您的可执行文件包含不受支持的体系结构(×86 _64 i386)”
  • 大数据治理在企业信息化建设中的应用与挑战
  • ️ 数据库迁移过程中可能遇到哪些常见问题?
  • 高频面试题基本总结回顾(含笔试高频算法整理)11
  • 【K8S系列】Kubernetes 中 Pod 无法通过 Service 名称访问服务的 DNS 解析失败问题【已解决】
  • Redis有什么不一样?
  • 【iOS】SDWebImage
  • 高效处理数据的一把钥匙:探索MySQL事务机制
  • Linux 练习三
  • scp免密上传文件
  • 华为OD机试 - 字符串分割(二) - 双指针(Python/JS/C/C++ 2024 C卷 100分)
  • [ vulnhub靶机通关篇 ] 渗透测试综合靶场 Corrosion1 通关详解 (附靶机搭建教程)
  • 基于Spring Boot + Vue的气象智慧监测系统设计与实现
  • python读word中的表格和插入表格
  • 电子电气架构 --- Trace 32(劳特巴赫)多核系统的调试
  • Freertos学习日志(1)-基础知识
  • 11.1组会汇报-基于区块链的安全多方计算研究现状与展望
  • 【原创分享】详述中间件的前世今生
  • .Net Framework里演示怎么样使用StringBuilder、Math.Min和String.Format
  • c# 实现文件更新通知
  • JavaEE-多线程初阶(1)
  • MySQL-基础汇总