Hi,@kerryzhou
请教一个问题,我现在有两个任务,一个是SAI的任务,一个是HTTP的任务,SAI任务的优先级我设置的是6,,因为SAI任务里是一个while循环,没有任何delay,导致cpu无法调度到http的任务。但是如果我在SAI任务里加上vtaskdelay,就会导致音频处理异常。
我该如何做,既不影响SAI音频的正常处理,也能运行其他任务?
如果可以的话,还请你把你的项目信息私信message发我,这样我复现之后,也好带着你的项目信息去找我们专家帮忙一起分析。谢谢。
你看我,怎么添加路径,总是有问题:
修改后的路径,你看看和你有什么不同。
最好clean之后,你自己解压看看有没有问题,没问题你再给我。
最好能给我个我这边能直接跑的工程,这样我有想法能直接修改了去验证,并且我可以找我们内部专家一起帮忙看你的问题。
最近忙的有空搞你的工程了,所以还是希望能拿到你的EVK上直接能跑的工程包。
你可以告诉我你使用的MCUXPresso 版本,SDK版本,这样我们保证能一致。
Hi @jarman_zhou ,
你这个问题,能在EVK上复现吗?
如果能复现,你一并发给我,这两天我带着你另外一个帖子一起测试,这个应该和freertos的调度有关,原则上,SAI的调度不需要完全占用CPU。可能lwip那边task占用的太长导致播放卡顿,这个是可以通过调节去解决的,具体我要看下你的代码情况。
Best Regards,
Kerry
Hi,@kerryzhou
因为我不是在EVK板上进行开发,CODEC用的不一样。
附件中我还是将我的工程切换到了EVK板的CODEC运行,大致就是采集-输出的任务,再加一个http的任务,附件中SAI的任务是在全速运行,并且我加了一些基本算法,声音是正常的,但是此时lwip相关的任务是无法调度的。
拿着时候是不是SAI的任务就要让出CPU?但是我试过在任务中加Vtaskdelay,或者使用信号量的方式,只要web页面进行访问,都会影响到SAI音频的正常运行。
Hi @jarman_zhou ,
感谢你的问题更新。
我想问下,你现在的声音失真,和这个加了lwip的问题是不是一个问题?
https://community.nxp.com/t5/i-MX-Processors/RT1021-SAI-TDM-audio-abnormal/td-p/1667825
就是你两个问题是不是一个问题,还是两个问题,如果是一个问题,我就直接debug你这个帖子的代码了。
Best Regards,
kerry
Hi,@kerryzhou
1.另外一个帖子的失真问题我在自己的项目中已经不存在了,单独的sai任务已经能够正常处理音频,具体的解决方案我也不是太清楚,主要是调整了堆栈的大小。那个问题可以先不用管了。
2.现在主要的问题是我这个帖子的代码,加了lwip的http服务之后,cpu的调度问题。
代码中我加了一些算法
有些编译问题,你看看你这个arm_math.h放哪里了,给我我跑下。
Best Regards,
Kerry
楼主你好,你这个工程你那边编译有问题吗?
我这边编译很多问题,然后添加了缺失的文件路径,但是还是有问题。
可能这个工程本来是在你自己的平台跑,然后你移植到EVK的原因。
所以我现在都没跑起来,然后我直接看你的代码了。你的代码确实还是融合蛮多内容的。我看了你的sai优先级是比以太网的优先级要高的。如果你配置以太网优先级高些,是不是http就能跑了。
sai任务里面加delay确实是会影响到音频处理,这个应该是你不加其他task也有影响吧
我觉得你可以试试http的任务优先级比sai高试试,看看是否有影响。
目前我这边可能没法直接测试,因为工程报错太多了,所以直接看代码给你思路,你自己那边调试为主。
Best Regards,
Kerry
Hi,@kerryzhou
我编译是没有问题的,并且已经在EVK板子上运行并测试过了。
我修改过sai的优先级,是不行的,因为sai的任务中是没有delay的,它会一直占用cpu,不管其他任务的优先级有多高都是无法获得cpu的。
所以现在就是要解决如何让sai任务能够让出cpu给到其他任务运行,不管有没有其他任务,sai里面加delay肯定是不行的
你IDE是什么版本?看上去我这边拿到你的工程,已经缺失了很多路径定义。
你要么把你的工程clean下再打包发我,我再试试看。
你那边如果加vtaskdelay,时间小一点,不加http的任务,是否音频就已经影响了?
Hi,@kerryzhou
我的IDE MCUXpresso IDE v11.5.1 [Build 7266] [2022-04-13]
我这边把我发给你的工程重现导入到IDE中也发现好多配置都变了,属性里可以看到头文件的路径也丢失了一部分,链接的库文件也清空了,不知道什么原因,可能需要根据编译错误提示手动把路径添加进去了。
sai任务我试过加vtaskdelay(1),就已经会影响音频了,没有其他任务并行。
果然,IDE太老了,有bug,你下个新的V11.7的,你再打开你的工程试试,如果没问题,你再打包给我。
Hi,@kerryzhou
抱歉,最近一直在忙项目,你打开工程切换到Release编译试试,可能你那边默认是Debug所以编译有各种问题
欢迎归来!
你上次说你自己那边也有问题。
你自己那边解压一个测试看看,是否报错?
还请给我一个能够编译完全没错误的,这样我好安排时间给你测试,并查找问题。
另外,因为这个帖子又过很久没有更新,如果可以,你那边能够编译没有问题的代码,帮忙建一个新帖子,然后放上附件,因为我们的问题case解答有时效,不能开贴时间太长,还请谅解。