Thread 中讨论的其他器件:C2000WARE、 SYSBIOS
你好。
我目前正在 LWIP 的 SYS/BIOS 上实施 TCP 通信。
由于编译期间发生了内存不足错误、我计划通过在 cmd 文件中映射位带 RAM 区域来使用它。
用户是否可以使用此存储器区域?
如果不可能、我应该如何映射它?
谢谢你。



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.
你好。
我目前正在 LWIP 的 SYS/BIOS 上实施 TCP 通信。
由于编译期间发生了内存不足错误、我计划通过在 cmd 文件中映射位带 RAM 区域来使用它。
用户是否可以使用此存储器区域?
如果不可能、我应该如何映射它?
谢谢你。



您好 Siddharth。
我想知道用户是否可以使用 tms320f28386d-1949390.pdf 中提到的 CM 内核存储器映射中的"位带 RAM 区域"。
.bss 和.binit 无法进行内存分配。
原因是.bss .common:memp_memory_PBUF_pool_base 占用243KB 容量。
我认为将这个部件分配给"位带 RAM 区域"将解决这个问题。
然而、在创建一个 SYS/BIOS 项目时、在缺省.cmd 文件中、没有针对"位带 RAM 区域"部分的内存分配的说明。
这就是为什么我问的原因、因为我不知道我是否可以使用它。
以下是.cmd 文件的说明。
假定从闪存读取、因此它已从默认值进行更改。
谢谢你。
/*
*版权所有(c) 2018、德州仪器(TI)公司
*保留所有权利。
*
*以源代码和二进制形式重新分发和使用、有无
*如果满足以下条件、则允许进行修改
符合*:
*
**源代码的重新分发必须保留上述版权
*注意、此条件列表和以下免责声明。
*
**二进制形式的再发行必须复制上述版权
*请注意、中的此条件列表和以下免责声明
*随分发提供的文档和/或其他材料。
*
**德州仪器公司的名称和名称均不相同
*其贡献者可用于认可或推广衍生产品
*未经特定的事先书面许可。
*
*本软件由版权所有者和贡献者"按原样"提供
*以及任何明示或暗示的保证、包括但不限于:
*特定适销性和适用性的隐含保证
*不承认目的。 在任何情况下、版权所有者不得或
*派遣国应对任何直接、间接、偶然、特殊、
*典型或必然的损害(包括但不限于
*采购替代货物或服务;丧失使用、数据或利润;
*或业务中断)、无论原因是什么以及任何责任理论、
*无论是合同、严格责任还是侵权行为(包括疏忽或)
*否则)因使用本软件而以任何方式产生、
*即使被告知可能会发生此类损坏。
*
存储器
{
/*闪存扇区*/
CMBANK0_RESETISR:origin = 0x00200000,length = 0x00000008 //引导项*/
CMBANK0_SECTOR0:origin = 0x00200008、length = 0x00003FF7
CMBANK0_SECTOR1:origin = 0x00204000、length = 0x00004000
CMBANK0_SECTOR2:origin = 0x00208000、length = 0x00004000
CMBANK0_SECTOR3:origin = 0x0020C000、length = 0x00004000
CMBANK0_SECTOR4:origin = 0x00210000、length = 0x00010000
CMBANK0_SECTOR5:origin = 0x00220000,length = 0x00010000
CMBANK0_SECTOR6:origin = 0x00230000,length = 0x00010000
CMBANK0_SECTOR7:origin = 0x00240000,length = 0x00010000
CMBANK0_SECTOR8:origin = 0x00250000,length = 0x00010000
CMBANK0_SECTOR9:origin = 0x00260000,length = 0x00010000
CMBANK0_SECTOR10:origin = 0x00270000,length = 0x00004000
CMBANK0_SECTOR11:origin = 0x00274000,length = 0x00004000
CMBANK0_SECTOR12:origin = 0x00278000、length = 0x00004000
CMBANK0_SECTOR13:origin = 0x0027C000、length = 0x00004000
C1RAM:origin = 0x1FFFC000、length = 0x00001FFF
C0RAM:origin = 0x1FFFE000、length = 0x00001FFF
/* S0的一部分、引导 ROM 将此用于堆栈*/
BOOT_RSVD:origin = 0x20000000,length = 0x00000800
S0RAM:origin = 0x20000800,length = 0x0000F7FF
E0RAM:origin = 0x20010000、length = 0x00003FFF
CPU1TOCMMSGRAM0:origin = 0x20080000,length = 0x00000800
CPU1TOCMMSGRAM1:origin = 0x20080800,length = 0x00000800
CMTOCPU1MSGRAM0:origin = 0x20082000,length = 0x00000800
CMTOCPU1MSGRAM1:origin = 0x20082800,length = 0x00000800
CPU2TOCMMSGRAM0:origin = 0x20084000,length = 0x00000800
CPU2TOCMMSGRAM1:origin = 0x20084800,length = 0x00000800
CMTOCPU2MSGRAM0:origin = 0x20086000,length = 0x00000800
CMTOCPU2MSGRAM1:origin = 0x20086800,length = 0x00000800
}
部分
{
.resettisr:> CMBANK0_RESETISR
.vftable :> CMBANK0_SECTOR0 /*应用矢量表闪存*/
.vtable:>S0RAM /*应用程序矢量表 RAM */
.text:>> CMBANK0_SECTOR0 | CMBANK0_SECTOR1 | CMBANK0_SECTOR2 |
CMBANK0_SECTOR3 | CMBANK0_SECTOR4 | CMBANK0_SECTOR5
.cinit:> CMBANK0_SECTOR0 | CMBANK0_SECTOR1 | CMBANK0_SECTOR2 |
CMBANK0_SECTOR3 | CMBANK0_SECTOR4 | CMBANK0_SECTOR5
.pinit:> CMBANK0_SECTOR0 | CMBANK0_SECTOR1
binit:> CMBANK0_SECTOR0 | CMBANK0_SECTOR1
.switch:>> CMBANK0_SECTOR0 | CMBANK0_SECTOR1
.sysmem:> S0RAM
.stack:> C1RAM
.ebss:> C1RAM
econst :>> CMBANK0_SECTOR0 | CMBANK0_SECTOR1 | CMBANK0_SECTOR2 |
CMBANK0_SECTOR3 | CMBANK0_SECTOR4 | CMBANK0_SECTOR5
.esysmem:> C1RAM
.data :> S0RAM
.bss:> S0RAM
.const:{}负载= CMBANK0_SECTOR0 | CMBANK0_SECTOR1 | CMBANK0_SECTOR2 |
CMBANK0_SECTOR3 | CMBANK0_SECTOR4 | CMBANK0_SECTOR5、
运行= S0RAM、
Load_start (constLoadStart)、
load_size (constLoadSize)、
Load_End (constLoadEnd)、
RUN_START (constRunStart)、
run_size (constRunSize)、
RUN_END (constRunEnd)
MSGRAM_CM_TO_CPU1:> CMTOCPU1MSGRAM0,type=NOINIT
MSGRAM_CM_TO_CPU2:> CMTOCPU2MSGRAM0,type=NOINIT
MSGRAM_CPU1_TO_CM:>CPU1TOCMMSGRAM0,type=NOINIT
MSGRAM_CPU2_TO_CM:> CPU2TOCMMSGRAM0,type=NOINIT
.TI.ramfunc:{}负载= CMBANK0_SECTOR0 | CMBANK0_SECTOR1、
运行= S0RAM、
Load_start (RamfuncsLoadStart)、
load_size (RamfuncsLoadSize)、
Load_End (RamfuncsLoadEnd)、
RUN_START (RamfuncsRunStart)、
run_size (RamfuncsRunSize)、
RUN_END (RamfuncsRunEnd)、
对齐(8)
}

您好 Siddharth。
他的250p 中提到了位带 RAM 区域、PDF (https://www.ti.com/lit/gpn/tms320f28388d)。
如本 PDF 中所述、S0RAM 至 S3RAM 各具有16KB 的容量、E0RAM 也具有16KB 的容量、因此与所需的容量相差甚远。
因此、我想同时使用容量为32MB 的位带 RAM 区域和 SRAM 来分配存储器。
谢谢你。
你好
[引用 userid="540930" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1170249/tmdscncd28388d-lwip-program-out-of-ram-memory/4407243 #4407243"]为了检查操作、我在编译后进行了调试、但 发生了类似此线程的错误、调试未继续。屏幕截图中有几个错误。 关于缺少断点资源的错误、我认为这是不同问题的症状、而不是根本原因。 与使用程序 F28x 器件相比、F28388D 应该具有更多的硬件断点资源。
这些断点资源错误是何时发生的? 在您按下"Debug"后? 或者您是否手动尝试自行设置其他断点?
更严重的问题和根本原因可能是 器件锁定在硬件故障或 NMI 错误中。 有关更多详细信息、请参阅以下文章:
https://dev.ti.com/tirex/explore/node?node=A__ANoamrIZPWD2-6T-NDDWGg__ccs_devtools__FUz-xrs__LATEST
搜索上述文章中的"器件已锁定"部分。
您是否对其他应用有任何问题、例如 C2000Ware 中的标准示例?
谢谢
Ki
修改后的工程在将目标置于不良状态时会出现一些问题、从而导致各种断点问题。 调试修改后的项目超出了我的专业知识范围。 我将让器件专家进一步评论。
你好。
调试时会出现以下错误、这是否有问题?
Cortex_M4_0:只有 CPU1片上闪存插件可以为 CPU1、CPU2和 CM 闪存操作配置时钟。 当调用 CPU1闪存操作时、插件会自动配置 PLL。 操作、在调用 CPU2和 CM 闪存操作之前、他们应单击 CPU1的片上闪存插件中的"配置时钟"按钮。 使用此按钮时、Flash 插件将使用 INTOSC2作为时钟源、将 CPU1/CPU2的时钟配置为190MHz、将 CM 配置为95MHz。 插件将像这样保留 PLL 配置、用户应用应根据应用的要求配置 PLL。
此外、另一个工程的.out 文件被分配给 CPU1和 CM 内核并执行、但在 CM 内核运行过程中启动调试。
这件事是否有任何问题?
谢谢你。