内容如下:
3000人民币移植一个Linux开源代码到stm32上面。
现有代码量约2000行,代码本身已经在树莓派、Linux电脑等上面正常运行。
代码功能:
就是源源不断的采集一个音频信号后进行数学运算得到一些信息,然后将信息输出。算法等不用处理,均是现成代码。
程序流程如果不清楚,可以作为协助进行方向性建议。由于C语言不懂,所以代码本身很难看懂,因此外部求助。
个人觉得需要移植的部分是音频adc采集部分(参考程序是读取的电脑声卡或者音频wav文件获得的音频输入信息)和多线程?(多任务?)架构这两部分。
注意:
为了不瞎忙乎,这里有一个需要事先做的判断工作,那就是:由于涉及到数学运算,而且又是源源不断的实时处理运算,因此要评估stm32是否处理性能足够。
这部分工作可以先做,评估的结论无论是行或者不行均表示200元话费(行则不额外单独支付,包含在总费用中。我想没有哪个网友为了200块立马就给我一个评估结果为性能不够的答案吧:)
。
音频信息大概是:音频采样率44.1k,立体声(即双声道),两个通道可能分别携带不同的信息,所以运算量应该是增加了一倍,处理不了就降为单声道看看是否可以,也就是说立体声就是两路adc采集信息,单声道就一路adc了。
采集的音频好像是每一位都要进行一次MSK解码运算,评估过程中,如果觉得处理器性能不够,看看是否可以降低adc采样率以满足处理能力。
---------以上截止--------
具体的话,可以这里跟帖或者私信给我代为转交,或者直接给电话各自联系。
把附件的工程打开,编译后运行。
打开Printf Viewer
result.png (140.25 KB, 下载次数: 0)
下载附件
2018-10-27 11:20 上传
根据仿真的结果,这个代码不做优化很难在STM32上使用
里面的thread相关功能只做了一件事,解码核心解码完毕后通知后台线程输出数据
时间相关的函数主要是显示解码时间,不实现也不影响
alsa在这个代码中只是取音频数据,与解码任何关联
wav文件读取,其实稍微了解wav格式就知道这玩意根本不算事
不过上面这些都是细枝末节,没啥技术含量
重点来了:
这个解码库本身不是针对嵌入式平台写的,所以几乎没什么优化,数据处理也是大块大块的
如果要移植到stm32上,并且有较好的性能,这个解码器的框架需要重构,这需要对这个解码核心有比较深的了解
如果是我做,我先得学会这个解码原理,再根据处理器做深度优化,保守估计的要一个月,你这个价格得再加零我才会考虑
如果是一个熟悉这种解码格式的人,能够省去学习的时间,价格也会更合适。
这么说我做的项目得收3万了
test.png (41.87 KB, 下载次数: 0)
下载附件
2018-10-27 12:24 上传
随手拿了个STM32F405测了测试文件中的一个通道,数据放在flash里,未作优化已经能做到实时了(4.3秒24000hz采样率的文件1166ms完成)
一周热门 更多>