【已解决】BK7231N SDK红外功能异常

Wi-Fi 设备、Wi-Fi 低功耗设备、Wi-Fi BLE 双模设备、Ethernet设备、Ethernet+Wi-Fi设备等
mrlin95
Posts: 27

yangjie 2023年 Jun 29日 17:06
mrlin95 2023年 Jun 29日 16:25
yangjie 2023年 Jun 29日 15:44

你可以把 26M寄存器的操作给注释掉,只保留对 fiq 和 32k 寄存器的操作。看下有改善不,对26M寄存器的操作会影响到 timer1,timer0。对fiq 和 32k 寄存器的操作是需要保留的,因为这两中断会影响到硬件定时的中断。

修改如下:
Snipaste_2023-06-29_15-38-03.png

26M注释了还是不行 定时器 1还是会对计量产生影响不过影响比较小 定时器23影响很大 45定时器好像不工作

bk 定时器开发者可以使用的只有 0-3。在红外发送期间,为了保证硬件定时器的精度,会屏蔽掉一些中断(fiq,32k),fiq中断会影响到无线数据的通信;32k 会影响到 timer 2-3, RTOS 的调度。如果你要使用 timer 2-3, 可以将 32k 屏蔽相关的代码也给注释掉,但是这样可能会对红外的准确度造成一点影响。

还有较为重要的一点是,调试期间你可以将日志等级设置为 TAL_LOG_LEVEL_DEBUG 。但是正式产品中应将日志等级设置更高一点,不要再是 TAL_LOG_LEVEL_DEBUG ,一般正式产品日志等级为 TAL_LOG_LEVEL_ERR 。因为在这次的调试过程中发现一个日志打印的问题,导致打印一些码库内容的时候可能会导致程序卡死,类似于 Rev MQTT:{"t":1687672355,"protocol":5,"data":{"devId":"xxxxxxxxxxxxxxxxxxxxxx","dps":{"201":"{\"control\":\"send_ir\",\"head\":\"xxxxxxxxxxxxxxxxxxxxxx 。
这个问题会在 TuyaOS 3.8.x 之后的版本进行修复。

TAL_LOG_LEVEL_ERR 会不会太高了 TAL_LOG_LEVEL_NOTICE 可以吗 ERR什么调试信息 过程都看不到了 以后问题排查会比较麻烦

yangjie
Posts: 213

Re: BK7231N SDK红外功能异常

mrlin95 2023年 Jun 29日 17:20
yangjie 2023年 Jun 29日 17:06
mrlin95 2023年 Jun 29日 16:25

26M注释了还是不行 定时器 1还是会对计量产生影响不过影响比较小 定时器23影响很大 45定时器好像不工作

bk 定时器开发者可以使用的只有 0-3。在红外发送期间,为了保证硬件定时器的精度,会屏蔽掉一些中断(fiq,32k),fiq中断会影响到无线数据的通信;32k 会影响到 timer 2-3, RTOS 的调度。如果你要使用 timer 2-3, 可以将 32k 屏蔽相关的代码也给注释掉,但是这样可能会对红外的准确度造成一点影响。

还有较为重要的一点是,调试期间你可以将日志等级设置为 TAL_LOG_LEVEL_DEBUG 。但是正式产品中应将日志等级设置更高一点,不要再是 TAL_LOG_LEVEL_DEBUG ,一般正式产品日志等级为 TAL_LOG_LEVEL_ERR 。因为在这次的调试过程中发现一个日志打印的问题,导致打印一些码库内容的时候可能会导致程序卡死,类似于 Rev MQTT:{"t":1687672355,"protocol":5,"data":{"devId":"xxxxxxxxxxxxxxxxxxxxxx","dps":{"201":"{\"control\":\"send_ir\",\"head\":\"xxxxxxxxxxxxxxxxxxxxxx 。
这个问题会在 TuyaOS 3.8.x 之后的版本进行修复。

TAL_LOG_LEVEL_ERR 会不会太高了 TAL_LOG_LEVEL_NOTICE 可以吗 ERR什么调试信息 过程都看不到了 以后问题排查会比较麻烦

可以的,调试过程中你可以使用 TAL_LOG_LEVEL_DEBUG ,正式产品一定不要用 TAL_LOG_LEVEL_DEBUG

Post Reply