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.

[参考译文] 编译器/TMS320C6748:C6748定制内存映射

Guru**** 2552220 points
Other Parts Discussed in Thread: TMS320C6748

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/830784/compiler-tms320c6748-c6748-custom-memory-map

器件型号:TMS320C6748

工具/软件:TI C/C++编译器

您好!

我有一个带256 DDR 的 TMS320C6748定制板。

我创建了自定义存储器映射、目前在引导时遇到问题。 但是、它在仿真模式下工作良好。 仅限闪存引导故障。 闪存启动不起作用。

我已应用了一些极端值进行测试。 MEM 大小将在实际会话中减小。 这是因为编译了 USB 驱动程序。

[在.cfg 文件结束时]


Program.sectMap[".bss:extMemCache:ramdisk"]                = new Program.SectionSpec ();
Program.sectMap[".bss:extMemCache:ramdisk"].loadSegment    ="app_cached_BIOS_RSVD_MEM";
Program.sectMap[".bss:extMemCache:ramdisk"].type           ="无负载"


[本地.cmd 文件]

堆0x80000
-stack 0x80000

存储器

     FLASH_CS2    org=0x60000000 len=0x02000000 /* AEMIF CS2区域*/
     FLASH_boot   org=0x62000000 len=0x02000000 //* AEMIF CS3区域*/
     FLASH_org=0x64000000    len=0x02000000 //* AEMIF CS4区域*/


部分


   a.aemif_mem:
   {   
   }> FLASH_boot、run_start (NANDStart)

   "CFG"> DDR_CFG

   "DDR"> DDR

   .DDRRAM :
   {   
       。 += 0x04000000;
   }> APP_CODE_MEM、type=DSECT、RUN_START (EXTERNAL_RAM_START)、RUN_END (EXTERNAL_RAM_END)


[定制平台.xdt]

metaonly 模块平台继承 xdc.platform.IPlatform{

/*config int DDR_size = 0x07FF33EC;*/

配置 int KB = 1024;
配置 int MB =KB*KB;

配置 int SBL_size = 4*KB;

配置 int DDR_ADDR = 0xC0000000;
配置 int DDR_size = 10*MB;

配置 int app_code_MEM_ADDR = DDR_ADDR+DDR_SIZE+SBL_SIZE;
配置 int app_code_MEM_size = 30*MB;

配置 int app_cached_data_MEM_ADDR = app_code_MEM_ADDR+app_code_MEM_size;
配置 int app_cached_data_MEM_size = 30*MB;

配置 int app_uncached_data_blk3_MEM_ADDR = app_cached_data_MEM_ADDR+app_cached_data_MEM_size;
配置 int app_uncached_data_blk3_MEM_size = 30*MB;

配置 int app_cached_data_blk1_MEM_ADDR = app_uncached_data_blk3_MEM_ADDR+app_uncached_data_blk3_MEM_size;
配置 int app_cached_data_blk1_MEM_size = 30*MB;

配置 int app_cached_data_blk2_MEM_ADDR = app_cached_data_blk1_MEM_ADDR+app_cached_data_blk1_MEM_size;
配置 int app_cached_data_blk2_MEM_size = 30*MB;

配置 int app_cached_BIOS_RSVD_MEM_ADDR = app_cached_data_BLK2_MEM_ADDR+app_cached_data_BLK2_MEM_size;
配置 int app_cached_BIOS_RSVD_MEM_size = 30*MB;

配置 int DDR_CFG_ADDR = APP_cached_BIOS_RSVD_MEM_ADDR+APP_cached_BIOS_RSVD_MEM_SIZE;
配置 int DDR_CFG_SIZE = 10*MB;

   配置 ti.platforms.generic.Platform.Instance CPU =
       ti.platforms.generic.Platform.create("CPU"、{
           时钟速率:     300.0、    
           CatalogName:   "ti.catalog.c6000"、
           DeviceName:    "TMS320C6748"、
           定制内存映射:
          [    
               ["IRAM"、                       {name:"IRAM"、                     base:0x1180000、  len:0x00040000、  space:"code/data"、     访问:"rwx"、}]、
               ["IRM"、                       {name:"irom"、                     base:0x11700000、  len:0x00100000、  space:"code/data"、     访问:"Rx"、]]、
               ["L3_CBA_RAM"、                 {name:"L3_CBA_RAM"、               base:0x8000000、  len:0x00020000、  space:"code/data"、     访问:"rwx"、}]、
               ["DDR"、                        {name:"DDR"、                      base:DDR_ADDR、    len:DDR_size、  space:"code/data"、     访问:"rwx"、}]、
               ["app_code_MEM"、               {name:"app_code_MEM"、             base:app_code_MEM_ADDR、  len:app_code_MEM_size、  space:"code/data"}]、
               ["app_cached_data_MEM"、        {name:"app_cached_data_MEM"、      base:app_cached_data_MEM_ADDR、  len:app_cached_data_MEM_size、  space:"code/data"、}]、
               ["app_uncached_data_BLK3_MEM"、 {name:"app_uncached_data_BLK3_MEM"、base:app_uncached_data_BLK3_MEM_ADDR、  len:app_uncached_data_BLK3_MEM_size、  space:"代码/数据"、}、len:
               ["app_cached_data_blk1_MEM"、   {name:"app_cached_data_blk1_MEM"、 base:app_cached_data_blk1_MEM_ADDR、   len:app_cached_data_blk1_MEM_size、  space:"code/data"、}]、
               ["app_cached_data_blk2_MEM"、   {name:"app_cached_data_blk2_MEM"、 base:app_cached_data_blk2_MEM_ADDR、  len:app_cached_data_blk2_MEM_size、  space:"code/data"、}]、
               ["app_cached_BIOS_RSVD_MEM"、   {name:"app_cached_BIOS_RSVD_MEM"、 base:app_cached_BIOS_RSVD_MEM_ADDR、   len:app_cached_BIOS_RSVD_MEM_size、  space:"code/data"、}]、
               ["DDR_CFG"、                    {name:"DDR_CFG"、                  base:DDR_CFG_ADDR、  len:DDR_CFG_SIZE、  space:"代码/数据"、     访问:"rwx"、}]、
          ]、

         L2模式:"0K"、
         L1PMode:"32K"、
         L1DMode:"32K"、
   });
   
实例:
   
   覆盖配置字符串 codeMemory ="app_code_MEM";   
   覆盖配置字符串 dataMemory ="app_code_MEM";    
   覆盖配置字符串 stackMemory ="IRAM";

   配置字符串 l2Mode ="0k";
   配置字符串 l1PMode ="32k";
   配置字符串 l1DMode ="32k";


我在这里出了什么问题?

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

    Daniel、您好!

    您能给我们提供更多有关什么工作正常、哪些不工作的详细信息吗? 听起来、当您使用 CCS 加载应用程序(使用上述.cfg 文件)时、它会正常工作。 是这样吗? 请注意、CCS .gel 文件可能会执行某些操作(例如禁用看门狗等)。

    听起来、当您不使用 CCS 并让引导加载程序运行时、应用程序也不会运行。 近况如何? 引导加载程序是否运行? 它是否运行并且找不到应用程序映像? 它是否无法正确跳转到应用程序映像?

    Todd

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

    此外、

    -您使用的是什么 TI 软件(和版本)?  

    -引导加载程序是否使用 SYS/BIOS?

    Todd

    [8/26更新:将此标记为 TI 认为已解决、原因是原始海报没有回复。]