Other Parts Discussed in Thread: C2000WARE
環境:C2000Ware_5_04_00_00,IC:F28384D
再使用CPUtoCM記憶體位置,使用自定義變數,發現被變數 IPC_CPU_To_CM_PutBuffer 占住空間
請問除了修改ipc.h外有無方案可以砍掉IPC_CPU_To_CM_PutBuffer,不要讓它占住我的空間?


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.
環境:C2000Ware_5_04_00_00,IC:F28384D
再使用CPUtoCM記憶體位置,使用自定義變數,發現被變數 IPC_CPU_To_CM_PutBuffer 占住空間
請問除了修改ipc.h外有無方案可以砍掉IPC_CPU_To_CM_PutBuffer,不要讓它占住我的空間?


构建项目后,通过观察CCS中的内存分配视图并检查它是否存在于内存中的该部分,您将知道这些数据部分是否存在于您的应用程序中。
您还可以查看构建配置文件夹中的.map文件,查看符号是否显示在数据符号表下。
您可以修改链接器命令文件,将数据段“MSGRAM_CPU_to_CM”的分配映射到不同的内存范围。
您好,首先
1.通过观察CCS中的内存分配视图并检查它是否存在于内存中的该部分,確定是存在的,即使我在主程式沒有宣告
2.您可以修改链接器命令文件,将数据段“MSGRAM_CPU_to_CM”的分配映射到不同的内存范围。
我的問題是,此變數佔用了我的空間,想要移除,但卻是Lib裡面掛載的部分。
除非我修改 C2000Ware_5_04_00_00\driverlib\f2838x\driverlib\ipc.h 跟 ipc.c,不然每次版編譯都會存在。
我理解该变量将存在于应用程序中。如果您关心的是释放该内存部分中占用的空间,最好的办法是更改内存分配或创建此文件IPC.c的修改版本,其中不包括此变量。

看看是否可以将数据部分映射到其他内存位置。
你能确认一下你的.map文件中是否引用了它吗?您之前的图像很难查看。
下面是地图文件,显示了它与CPUTOCMRAM部分的映射。更改链接器文件会将其映射到不同的内存位置。

为此,您需要在链接器命令文件中创建一个新节,并将其映射到该新节。如果你不打算使用这些数据部分,你应该能够将其移动到Flash。但请注意,它不会为两个核心提供数据。
这应该会释放消息RAM。
你能解释一下你喜欢从MSG RAM中删除这些部分吗?我相信这个请求是针对你的用例的。
了解!
需要移除是因為,記憶體對齊問題。
我使用同一個struct的變數,直接對應不同CPU的共用區塊,發現被內部占用導致記憶體位置偏移。
因此需要手動修改 砍掉多餘變數的問題。
建議IPC.C裡面的IPC_CPU buffer改為指標變數,不然就是不要宣告讓使用者選擇。
謝謝