我想往CPU1TOCPU2RAM写一组数据,CPU2来读,如何来判断这一组数据读时已写完?可不可以用这个呢?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我想往CPU1TOCPU2RAM写一组数据,CPU2来读,如何来判断这一组数据读时已写完?可不可以用这个呢?
实现方法用两种:
1.CPU1写完以后,将IPC标志位置起来,CPU2查询IPC标志位来读取。
2.CPU1写完以后,将IPC中断标志位置起来,CPU2会立即去响应中断,中断里读取。
具体请查看手册和IPC例程。
是否一定要使用IPC呢?直接使用某固定地址的寄存器的值来判断是否会出错?
比如定义data位于GS1,GS1分配给CPU2,CPU2写完数据后置位data=1,CPU1一直读取data值,根据data的值来判断;
然后通过类似的data2通知CPU2清除data;
这样做是有点麻烦,但是对双核的运行机制一直不是很懂?之前没有用过双核的MCU
按照之前的理解共享的 GS区是两个 CPU都可以同时读,同时写的,貌似这样理解是错的?
如果只是数据的交换,没有时序的要求,你说的方法也是可以的,但是如果有实时性的要求的话,你这种方法做不到实时性