• 基于BES2500芯片的方案开发总结和反思


    前记

      虽然蓝牙芯片现在非常多,可是一旦想做一些差异化的产品时候,能用的非常少。在和客户的反复斟酌中,最终选择了BES2500来开发这款新的产品。这里面是基于自身的实力,产品定位和芯片诉求多重考量的结果。
    核心技能:团队的积累是软件算法,这就要求产品中一定要有不少算法在,这样才能凸显团队的价值和算法的价值。
    产品定位:这个客户对产品的性能要求比较高,所以,选择好的芯片平台和做差异化的开发是必须要的。
    芯片实力:bes2500有几点吸引了我们,支持蓝牙5.2双模,功耗低于5ma,sram空间大的惊人,并且已经有几个大厂已经使用了。

    综合起来,BES2500就成该产品的首选。

     

    代码熟悉

      由于该芯片的文档特别少,代码量比较大,结构又比较复杂,代码熟悉这块,团队花了不少时间来梳理这些代码逻辑。

    用户接口部分流程:这部分主要牵扯到几点,用户信息配置,这个一般的在config目录下的工程配置里面寻找,比如,特征宏,音量,电源管理,GPIO映射等。这部分代码比较简洁,很多初级工程师很快都能熟悉的。
    音乐部分流程熟悉:音乐流程相对2300的代码,改动不大,就是针对aac做了一个优化,这个部分一般不会出问题,毕竟,已经迭代次数那么多了,这个已经相当成熟了。
    电话部分流程梳理:SCO部分涉及到的算法比较多,芯片自带算法,第三方算法,降噪算法,回声消除算法,这些加起来,显得系统有点臃肿,再加上需要增加自身的算法,所以这部分需要花费不少时间来研究。
    硬件接口流程梳理:bes2500的硬件接口配置比较丰富,双串口,双I2C接口,I2S接口,这些接口的熟悉和使用,需要花一些时间研究的,毕竟,这些没文档,并且参数没有说明。不过,这些难度还算是可以克服的范围之内。

     

    算法移植

      使用BES2500,最重要的就是添加自己的算法。做出差异化的产品,这里移植算法需要花费不少工作量的。想要优化算法,必须要对芯片的整体接口和特性做一个比较深入的理解,这部分花了不少时间来研究的。
    内存分配:bes2500使用的是静态内存,内存管理这块做的不是很好,使用外界算法的,这部分花了不少时间去解决bug。
    算法加速:这里面涉及到怎么把主频修改,怎么使用辅核,怎么把让代码运行变得更快,这部分需要比较深厚的功力了,也是团队中吃亏最多的地方。

     

    后记

      项目虽然做成了,但是踩坑也是非常的多啊。同时也暴露了团队不少问题。整体的技术实力还需要不断地历练,内部配合要不断地去磨合。有了这次的历练,后面的项目开发会顺利很多。

    作者:虚生
    出处:https://www.cnblogs.com/dylancao/
    以音频算法为核心的物联网解决方案提供商 ,提供以音频算法为核心智能硬件产品设计,开发和咨询服务。
    勾搭热线:邮箱:1173496664@qq.com weixin:18019245820 市场技术对接群:347609188
  • 相关阅读:
    linux shell 中"2>&1"含义-完美理解-费元星
    浅谈移动端设备标识码:DeviceID、IMEI、IDFA、UDID和UUID -费元星
    费元星-关于百度在数据仓库-层级架构上的思考
    费元星的第二代车,基于图像识别和超声波的无人智能小车
    【完美解决】Spark-SQL、Hive多 Metastore、多后端、多库
    【费元星】crt 无法上传文件,总是显示盾牌表示-完美解决
    【费元星原创】一键安装Hadoo2.7.6 集群完全分布式脚本-完美解决
    【研发工具必备】费元星的技术成长流线图-第一版
    【shell mysql 导出数据到csv脚本,完美解决乱码转义符等问题】-费元星
    【Linux搭建创建FTP服务器】---完美解决
  • 原文地址:https://www.cnblogs.com/dylancao/p/15344282.html
Copyright © 2020-2023  润新知