Page 1 of 1
【已解决】编译错误,tkl_system_delay 未定义
Posted: 2023年 Aug 29日 18:10
by clcl
产品类型:Zigbee 门窗控制器(低功耗)
SDK 版本:EFR32MG21A020_TuyaOS-3.6.1
项目需要用延时函数,tal_system.h 里的 tal_system_delay 用不了,提示未定义
Error[Li005]: no definition for "tkl_system_delay" [referenced from tal_system.o(tal_sleep_end_dev_efr32mg21a020f768im32.a)]
还有这些关于 OS 的接口也不能用,tkl 开头也不行,请问要怎么搞?
Error[Li005]: no definition for "tal_queue_post" [referenced from C:\Users\xxxxxx\miot-tuya-port.o]
Error[Li005]: no definition for "tal_thread_create_and_start" [referenced from C:\Users\xxxxxx\tuya_sdk_callback.o]
Error[Li005]: no definition for "tal_queue_fetch" [referenced from C:\Users\xxxxxx\tuya_sdk_callback.o]
Re: 【求助】编译错误,tkl_system_delay 未定义
Posted: 2023年 Aug 29日 19:51
by huanghuan
tal_sw_timer.h 这个文件中的软定时函数能否满足你的要求?
Re: 【求助】编译错误,tkl_system_delay 未定义
Posted: 2023年 Aug 30日 09:38
by clcl
tal_sw_timer.h 是软件定时器,我不需要这个
我想问的是关于 OS 的 API,这个 sdk 是没有实现吗?还是有其他函数实现了
Re: 【求助】编译错误,tkl_system_delay 未定义
Posted: 2023年 Aug 30日 09:42
by huanghuan
Re: 【求助】编译错误,tkl_system_delay 未定义
Posted: 2023年 Aug 30日 10:19
by clcl
好的
我们的程序是基于事件循环的,
注释里说 tuya_main_loop 里不能做复杂操作和延时,所以一开始是用 os 接口的
那我现在放到 tuya_main_loop 里,会有什么影响吗?程序逻辑比较复杂
Re: 【求助】编译错误,tkl_system_delay 未定义
Posted: 2023年 Aug 30日 13:56
by huanghuan
1.tuya_main_loop 中要加上什么处理?
tuya_main_loop 是在单片机的while1 每次循环都会进入的,如果执行的程序过于复杂,会对软件定时器等任务执行造成影响
2.sw timer 本质上是while1 中进行tick比较判断,时间到达延时后进行回调处理;除中断外,大部分的任务都是通过注册定时器回调执行
Re: 【求助】编译错误,tkl_system_delay 未定义
Posted: 2023年 Aug 30日 13:58
by clcl
好的,明白了
打算把事件的处理逻辑放到 tuya_main_loop 里,不过这个逻辑有时候可能会占用几百ms的时间