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.

[参考译文] CCS/F28M35H52C:F28M35H52C 已连接到外部 SDRAM,callloc 的问题

Guru**** 2815505 points

Other Parts Discussed in Thread: F28M35H52C

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/754686/ccs-f28m35h52c-f28m35h52c-connected-to-an-external-sdram-the-problem-of-callloc

器件型号:F28M35H52C

工具/软件:Code Composer Studio

我的硬件使用连接到外部 SDRAM 的 F28M35H52C。  SDRAM 的一切工作正常。  我可以在其中读取和写入大量数据。

cmd 的文件包含。

第1页:

 RAML1    :origin = 0x009000,length = 0x001000   //片上 RAM 块 L1 */

SRAMCS0:origin = 0x300000,length = 0x040000   //一个连接到的16M 字节 SDRAM 芯片  

SRAMCS2:origin = 0x380000,length = 0x040000   //连接16M 字节 SDRAM 芯片  

 等斯梅姆       :> RAML2   page = 1.

如果我在链接器设置中将堆大小保留为0x1000、我可以使用 calloc、但当我使用0x300000时、程序将保留 以下内容

/*------------------ *
/*找到第一个足够大的块以容纳请求的分配*/
/*------------------ *
while (current!= limit &&-curry->packet_size < allocsize)

上一个=当前;
Current = Current->NEW_FREE;

 

我还发现、如果由 calloc 修剪的地址大于0xFFFF、也会发生错误。

WF =(float *) calloc (NWF*NWF_L、sizeof (float));

我找不到导致问题的原因,希望您能帮助我。 谢谢你  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    user5358342、

    您是否使用建议的堆声明重建了 RTS 库?

    Tommy
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为什么要重建 RTS 库以及如何重建它?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    user5358342、

    我相信您已将此线程标记为与我建议用户重建 RTS 的另一个线程相关:

    仔细观察此器件上的地址范围、这可能不适用于您的情况。

    您声明的堆大小是多少?您的 calloc()参数值是多少?

    Tommy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    user5358342、

    自上次更新以来已经有一段时间了。 我假设您能够解决您的问题。 如果情况并非如此,请拒绝此解决方案并回复此主题。 如果此主题已锁定、请制作一个描述问题当前状态的新主题。

    Tommy