DSP C6748裸机 :主程序运行算法时中断无法100%响应

背景:

使用DSP C6748裸机,modbus-RTU-Uart2-Timer3,主程序为数据采集算法处理等过程。

其中,波特率9600,Uart2配置中断为INT4,Timer3为INT5,接收到主机的开始工作命令后,主程序开始不间断采集处理数据,一次工作过程1s(实际工作800ms,空闲时间200ms)。

问题:

没有接收到主机开始工作命令时,主程序开始进入到空闲状态,主机发送查询结果命令01 03等共计8字节长度,DSP全部都能正确接收到并解析应答;

接收到主机开始工作命令后,主程序开始进入到工作状态,此时会有20%多的丢包率(此处指的是接收不到完整的01 03等8字节查询指令)。监测串口接收到的数据发现会出现仅接收到8字节中的01或者01 03前面1或2个字节,后面的就没收到,因此怀疑是串口中断没有被触发或者中断服务函数没有响应。但是,问题是开始工作后才会出现这种情况,故屏蔽掉数据处理算法接口(仅调用屏蔽算法接口),同样测试,发现不会丢包。

再继续看算法部分,屏蔽掉其余部分,剩下几句赋值语句和一个很大的for循环,并且前面带有优化指令 #pragma MUST_ITERATE(1,70000,1);算法仅留下上述赋值语句和for循环,同样测试,也会丢包,只是丢包率貌似小了(具体数值待测试)。

综上:

裸机情况下,一个超大for循环会影响中断响应吗?还是优化会影响?或者有什么别的原因吗?

烦请诸位大佬有遇到类似情况或者有啥办法建议,不吝赐教!!!

感谢感谢!!!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值