【求助】关于T5代码架构和全局变量定义的问题的

Wi-Fi 设备、蜂窝设备、WuKongAI、开发板、TuyaOS 移植等


Post Reply
Daan
Posts: 118

您好,现在遇到了个问题。
我再自定义.c文件里面定义了一个全局变量,然后我在main.c和xiaozhi.c分别读这个全局变量,但是读出来打印会一样的。
所以请问这个代码架构是怎么样的,是不是UI下面.c比如xiaozhi.c和主程序是数据隔离的?
如图:
不是很理解这个架构,能否详细说一下?

Attachments
b269b3e0-f7cc-4503-b2a1-1b35d17a703b.png
27129ec3-6126-4b96-aaa0-d4eaf808bda1.png
Daan
Posts: 118

Re: 【求助】关于T5代码架构和全局变量定义的问题的

还有就是如果隔离,编译器应该提示报错呀~

愚者千虑必有一得
Posts: 667

Re: 【求助】关于T5代码架构和全局变量定义的问题的

目前T5的硬件架构是:
三核:cp0(单独固件,跑tuyaos)、cp1(单独固件,跑语音相关算法、lvgl),cp2暂时没用。目前cp0和cp1的固件是分别编译,独立运行的。编译、链接过程中没问题,但是运行过程中的需要自己通过核间通信做同步。

这个架构正在做改造,未来:
三核:cp0(固定固件,无需开发,跑wifi、ble等),cp1+cp2 SMP(一个固件),目前已经在内部测试验证中。

Daan
Posts: 118

Re: 【求助】关于T5代码架构和全局变量定义的问题的

好的,感谢。现在toy的demo中,只有cp1到cp1的IPC通信函数。能否给我一个CP1到CP0的的通信函数(就是ui反馈到dp上报)的示例?

愚者千虑必有一得
Posts: 667

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

Daan
Posts: 118

Re: 【求助】关于T5代码架构和全局变量定义的问题的

不好意思打错了。 是CP1发,CP0收的函数。

愚者千虑必有一得
Posts: 667

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;
}
Daan
Posts: 118

Re: 【求助】关于T5代码架构和全局变量定义的问题的

好的 十分感谢~

Post Reply