工具与软件:
您好、TI 专家:
我想将数据从主 MCU 2.1发送到 MCU 1_0、除了 IPC 之外、我认为共享内存是传输数据的一种简单方法、尤其是对于大数据大小的情况。 以供参考、文档或演示并开始使用。
1.哪个内存 区域可以用来在内核之间共享?
2. SDK API 是否 可以立即使用或者需要自己实现?
谢谢。
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.
工具与软件:
您好、TI 专家:
我想将数据从主 MCU 2.1发送到 MCU 1_0、除了 IPC 之外、我认为共享内存是传输数据的一种简单方法、尤其是对于大数据大小的情况。 以供参考、文档或演示并开始使用。
1.哪个内存 区域可以用来在内核之间共享?
2. SDK API 是否 可以立即使用或者需要自己实现?
谢谢。
尊敬的专家:
我在 MCU1_0 区域的 DDR 中保留了一个段、即0xA020xxxx、并从映射文件中获取其地址。 然后在 main2_1内核中、我通过指针写入数据。 结果是、它只能写入值1~2次、然后 MCU1_0读取值不再更改。
此外、我尝试了0x7004000、0xb0000000、结果是相同的。 无错误、但从 mcu1_0读取的值无更新。 而 main2_1每0.5秒更改一次字节0、1。
[18:04:31.696]收←◆mcu1_0: 1-70000000...01 03 12 13 14 15 16 [18:04:32.696]收←◆mcu1_0: 2-70000000...01 03 12 13 14 15 16 [18:04:33.696]收←◆mcu1_0: 3-70000000...01 03 12 13 14 15 16 [18:04:34.696]收←◆mcu1_0: 4-70000000...07 09 12 13 14 15 16 [18:04:35.696]收←◆mcu1_0: 5-70000000...07 09 12 13 14 15 16 [18:04:36.696]收←◆mcu1_0: 6-70000000...07 09 12 13 14 15 16 [18:04:37.696]收←◆mcu1_0: 7-70000000...07 09 12 13 14 15 16 [18:04:38.696]收←◆mcu1_0: 8-70000000...03 05 12 13 14 15 16 [18:04:39.696]收←◆mcu1_0: 9-70000000...03 05 12 13 14 15 16 [18:04:40.696]收←◆mcu1_0: 10-70000000...03 05 12 13 14 15 16 [18:04:41.696]收←◆mcu1_0: 11-70000000...03 05 12 13 14 15 16 [18:04:42.696]收←◆mcu1_0: 12-70000000...0B 0D 12 13 14 15 16 [18:04:43.696]收←◆mcu1_0: 13-70000000...01 03 12 13 14 15 16 [18:04:44.696]收←◆mcu1_0: 14-70000000...01 03 12 13 14 15 16 [18:04:45.696]收←◆mcu1_0: 15-70000000...05 07 12 13 14 15 16 [18:04:46.696]收←◆mcu1_0: 16-70000000...05 07 12 13 14 15 16 [18:04:47.696]收←◆mcu1_0: 17-70000000...05 07 12 13 14 15 16 [18:04:48.696]收←◆mcu1_0: 18-70000000...05 07 12 13 14 15 16 [18:04:49.696]收←◆mcu1_0: 19-70000000...05 07 12 13 14 15 16 [18:04:50.696]收←◆mcu1_0: 20-70000000...05 07 12 13 14 15 16 [18:04:51.696]收←◆mcu1_0: 21-70000000...05 07 12 13 14 15 16 [18:04:52.696]收←◆mcu1_0: 22-70000000...05 07 12 13 14 15 16
我的问题是:
1. 谁应该创建保留 RAM、 MCU1_0或 main2_1?
2. 要配置 MPU 的文件是什么? 我`sdk_rtos_0900/vision_apps/platform/j721e/rtos/MCU2_1/j721e_mpu_cfg.c`、和其他 MPU 配置文件、都带有"
谢谢。
您好!
've 在 MCU1_0 区域的 DDR 中保留一个段是0xA020xxxx、并从映射文件获取该段的地址。 然后在 main2_1内核中、我通过指针写入数据。 结果是、它只能写入值1~2次、然后 MCU1_0读取值不再更改。[/QUOT]您提到您已经预定了地址,请问您是如何预订的? 您如何确保在 MAIN2_1写入后从 MCU1_0读取、您是否实现了任何锁定机制。
两个内核都应在各自的内核中保留存储器部分。
我们通常有 r5_mpu_freertos.c 文件用于 FreeRTOS 配置。 您需要遵循有关如何 创建和使用0xAA000000的类似过程。
此致
Tarun Mukesh
您提到您已保留了地址,我可以知道您如何保留了一个部分吗? 您是如何确保在 MAIN2_1写入后从 MCU1_0中读取的、您是否实现了任何锁定机制。[/QUOT]目前、我从 MCU2_1分配空间、 目前、我已经将 DDR_MCU2_1区域的末尾改为共享存储器。
sdk_rtos_0900/vision_apps/platform/j721e/rtos/mcu2_1/linker_mem_map.cmd DDR_MCU2_1 ( RWIX ) : ORIGIN = 0xA4100400 , LENGTH = 0x01EFEC00 // reduce 4K /* DDR for MCU2_1 share memory */ USS_MCU2_1 : ORIGIN = 0xA5FFF000 , LENGTH = 0x01000 sdk_rtos_0900/vision_apps/platform/j721e/rtos/mcu2_1/j721e_linker_freertos.cmd .uss_share : {} align(4) > USS_MCU2_1 sdk_rtos_0900/vision_apps/platform/j721e/rtos/mcu2_1/main.c uint8_t gUssSharedMem[128] __attribute__((section(".uss_share") )) = {0};对于数据同步、我没有实现它、因为我只在 mcu21中写入并在 mcu10 中读取、在 mcu21中、它每0.5秒写入 Seq 值、每1秒在 mcu10中读取一次 值正确与否并不重要、因为没有同步方法(可以稍后完成)、我需要注意的是如果在 mcu10中读取的值发生变化。
sdk_rtos_0900/vision_apps/platform/j721e/rtos/mcu2_1/main.c write data: uint8_t *pUss = &gUssSharedMem[0]; while(1) { pUss[0] = idx; idx += 1; appLogWaitMsecs(500u); } read data: sdk_rtos_0900/mcusw/mcuss_demos/profiling/can/APA5/SystemFile/main_task.c volatile uint8_t *ussRxbuf = (volatile uint8_t *)(0xa5fff000); void UPA_Task(void* a0, void* a1) { while(RunUPATask) { AppUtils_Printf(TRUE, "mcu1_0: %d-%08x...%02X %02X %02X %02X %02X %02X %02X\n", cnt, &ussRxbuf[0], ussRxbuf[0],ussRxbuf[1],ussRxbuf[2],ussRxbuf[3],ussRxbuf[4],ussRxbuf[5],ussRxbuf[6],ussRxbuf[7] ); SemaphoreP_pend(UPAHande, 1000); } }我们通常有 用于 FreeRTOS 配置的 R5_MPU_FreeRTOS.c 文件。 您需要遵循有关如何 创建和使用0xAA000000的类似过程。如果数据未更改问题是缓存问题、是否还需要在 mcu21侧进行配置、 哪个文件是"sdk_rtos_0900/vision_apps/platform/j721e/rtos/mcu2_1/j721e_mpu_cfg.c"、 如何在 mcu10或 mcu21中确定 mpu 配置?
谢谢。
[/quote]
您好!
在链接器文件中分配空间是可以的,但您需要在 MPU 配置文件中保留空间。
[报价 userid="636604" url="~/support/processors-group/processors/f/processors-forum/1459661/tda4vm-transfer-data-between-main2_1-and-mcu1_0/5601463 #5601463"]sdk_rtos_0900/vision_apps/platform/j721e/rtos/mcu2_1/j721e_mpu_cfg.c在路径本身中、它称作 MCU2_1、这是在 MCU2_1上。
同样、无论您在 MCU1_0上运行的是什么操作系统、都应该有 MPU 配置文件、该文件还应该包含相同的 MPU 配置。
此类区域的示例为"0xAA000000 "。
此致
Tarun Mukesh