您好,现在遇到了个问题。
我再自定义.c文件里面定义了一个全局变量,然后我在main.c和xiaozhi.c分别读这个全局变量,但是读出来打印会一样的。
所以请问这个代码架构是怎么样的,是不是UI下面.c比如xiaozhi.c和主程序是数据隔离的?
如图:
不是很理解这个架构,能否详细说一下?
【求助】关于T5代码架构和全局变量定义的问题的
【求助】关于T5代码架构和全局变量定义的问题的
- Attachments
-
-
Re: 【求助】关于T5代码架构和全局变量定义的问题的
还有就是如果隔离,编译器应该提示报错呀~
Re: 【求助】关于T5代码架构和全局变量定义的问题的
目前T5的硬件架构是:
三核:cp0(单独固件,跑tuyaos)、cp1(单独固件,跑语音相关算法、lvgl),cp2暂时没用。目前cp0和cp1的固件是分别编译,独立运行的。编译、链接过程中没问题,但是运行过程中的需要自己通过核间通信做同步。
这个架构正在做改造,未来:
三核:cp0(固定固件,无需开发,跑wifi、ble等),cp1+cp2 SMP(一个固件),目前已经在内部测试验证中。
Re: 【求助】关于T5代码架构和全局变量定义的问题的
好的,感谢。现在toy的demo中,只有cp1到cp1的IPC通信函数。能否给我一个CP1到CP0的的通信函数(就是ui反馈到dp上报)的示例?
Re: 【求助】关于T5代码架构和全局变量定义的问题的
以eyes屏幕刷新为例:
cp0发:OPERATE_RET tuya_ai_display_msg(char *msg, int len, TY_DISPLAY_TYPE_E display_tp);
cp1收:void tuya_eyes_app(TY_DISPLAY_MSG_T *msg)
其他带屏幕的示例中也有个tuya_xx_app
Re: 【求助】关于T5代码架构和全局变量定义的问题的
不好意思打错了。 是CP1发,CP0收的函数。
Re: 【求助】关于T5代码架构和全局变量定义的问题的
cp1发,cp0收,你可以参考audio_dump.c的代码,cp1上串口收到命令,发生给cp0来播放指定音频,TKL_IPC_TYPE_AUDIO_TEST是IPC类型,如果你要新增,你可以参考这个来加:
Code: Select all
// send audio test event to cpu0
extern TKL_IPC_HANDLE __ipc_handle[2];
void _audio_test_event(uint32_t event, uint32_t type, uint32_t freq)
{
struct ipc_msg_s send_msg = {0};
send_msg.type = TKL_IPC_TYPE_AUDIO_TEST;
send_msg.buf32[0] = event;
send_msg.buf32[1] = type;
send_msg.buf32[2] = freq;
tkl_ipc_send(__ipc_handle[0], (UINT8_T *)&send_msg, sizeof(send_msg));
return;
}
Re: 【求助】关于T5代码架构和全局变量定义的问题的
好的 十分感谢~