Page 5 of 5
Re: BK7231N SDK红外功能异常
Posted: 2023年 Jun 29日 17:20
by mrlin95
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什么调试信息 过程都看不到了 以后问题排查会比较麻烦
Re: BK7231N SDK红外功能异常
Posted: 2023年 Jun 29日 18:03
by yangjie
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