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/TMS320F2.8335万:无法从外部RAM执行代码

Guru**** 2538930 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/572333/ccs-tms320f28335-not-able-to-execute-code-from-external-ram

部件号:TMS320F2.8335万

工具/软件:Code Composer Studio

您好,

我已经完成了从外部RAM接口到TMS320F2.8335万的执行程序。 但我无法从它执行程序。

这里我给出了相同的命令文件。我也在F2.8335万.gel文件中进行了更改,并注释了如下所示的行

OnReset (内部错误代码)

   IF (Gel_IsInRealtimeMode())  /* If in Real-time-mode */
   {
   }
   ELSE   /*将设备置于C28x模式*/
   {
        C28x_Mode();
   }
   解锁_CSM();
   ADC_Cal();
 XINTF_Enable();/*              取消注释以启用重置时的XINTF */
}

外部RAM的命令文件如下所示

/*
// TI文件$Revision:/main/11 $
//签入$日期:2009年4月15日  09:57:28 $
//###################################################################
//
//文件:   2.8335万_RAM_lnk.cmd
//
//标题:  2.8335万的链接器命令文件,RAM不足的示例
//
//         这仅包括2.8335万设备上的所有SARAM块。
//         这不包括闪存或OTP。
//
//         请记住,L0和L1受代码保护
//         安全模块。
//
//         在大多数情况下,这意味着您要移至
//         另一个已定义更多内存的内存映射文件。
//
//###################################################################
//$TI发行版:2833x/2823x头2823头文件1.32
//$发布日期:2010年6月28日$
//###################################################################
*/

/*===================================================================================
//用于Code Composer Studio 2.2 及更高版本
//----------------
//除了此内存链接器命令文件外,
//将头链接器命令文件直接添加到项目中。
//需要头链接器命令文件来链接
//外围结构到中的正确位置
//内存映射。
//
//头链接器文件位于<base>\DSP2833x_Headers\cmd中
//
//对于BIOS应用程序,添加:     DSP2833x_Headers_BIOS.cmd
//对于非BIOS应用程序,添加:  DSP2833x_Headers_nonBIOS.cmd
=================================================================================================================== */

/*===================================================================================
//对于2.2 之前的Code Composer Studio
//----------------
//1)使用以下-l语句之一来包括
//项目中的头链接器命令文件。 头链接器
//文件是将外围结构链接到正确的所需的
//内存映射中的位置                                   */

/*取消注释此行以仅包括非BIOS应用程序的文件*/
/*-l DSP2833x_Headers_nonBIOS.cmd */

/*取消注释此行以包括仅用于BIOS应用程序的文件*/
/*-l DSP2833x_Headers_BIOS.cmd */

/* 2)在项目中,将路径<base>\DSP2833x_headers\cmd添加到
  项目->生成选项下的库搜索路径,链接器选项卡,
  库搜索路径(-i)。
/*=========================================================================================================== */

/*定义F2.8335万的内存块起始/长度
  第0页将用于组织程序部分
  第1页将用于组织数据部分

  注:
        F2.8335万上的内存块是一致的(即相同的
        物理内存)。
        这是不应出现的相同内存区域
        为第0页和第1页定义。
        这样做会导致程序损坏
        和/或数据。

        镜像l0/L1/L2和L3内存块-即
        它们可以在高内存或低内存中访问。
        为简单起见,此中仅使用一个实例
        链接程序文件。

        连续的SARAM内存块可以组合使用
        如果需要创建更大的内存块。
*/


内存

第0页:
  /* BEGIN用于“引导至SARAM”引导加载程序模式     */

  BEGIN     :Origin = 0x0万,length = 0x0.0002万    /* Boot to M0 will go here                     */(开始:源站= 0x0万,长度= 0x0.0002万 /*引导到M0将在此处*
  RAMM0     :原点= 0x0.005万,长度= 0x0003B0
  L0123SARAM        :原点= 0x0.8万,长度= 0x0.4万    /* L0 - L3 SARAM组合,CSM安全*/
/*  RAML0     :原点= 0x0.8万,长度= 0x0.1万
  RAML1     :原点= 0x0.9万,长度= 0x0.1万
  RAML2     :原点= 0x00A000,长度= 0x0.1万
  RAML3     :原点= 0x00B000,长度= 0x0.1万*/
  ZONE7A    :原点= 0x20万,长度= 0x00FC00   /* XINTF区域7 -程序空间*/
  CSM_RSVD  :原点= 0x33FF80,长度= 0x0.0076万    /* FLASHA的一部分。  在使用CSM时使用所有0x0000编程。 */
  CSM_PWL   :原点= 0x33FFF8,长度= 0x0.0008万    /* FLASHA的一部分。  FLASHA           */中的CSM密码位置
  ADC_CAL   :原点= 0x38.008万,长度= 0x0.0009万
  重置     :原始= 0x3FFFC0,长度= 0x0.0002万
  IQTABLES  :原点= 0x3FE000,长度= 0x000b50
  IQTABLES2 :原点= 0x3FEB50,长度= 0x0.0008万c
  FPUTABLES :原点= 0x3FEBDC,长度= 0x0006A0
  BootROM   :Origin = 0x3FF27C,length = 0x000D44


第1页:
  /* BOOT_RSVD由启动ROM用于堆栈。               */
  /*此部分仅保留用于从   */中保留引导ROM
  /*在调试过程中损坏此区域             */

  BOOT_RSVD :Origin = 0x0.0002万,length = 0x0.0004万E    /* M0的一部分,boot ROM将对stack */使用此选项
  RAMM1     :原点= 0x0.04万,长度= 0x0.04万    /*片上RAM块M1 */
  RAML4     :原点= 0x00C000,长度= 0x0.1万
  RAML5     :原点= 0x00D000,长度= 0x0.1万
  RAML6     :原点= 0x00E000,长度= 0x0.1万
  RAML7     :原点= 0x00F000,长度= 0x0.1万
  ZONE7B    :原点= 0x20FC00,长度= 0x0.04万    /* XINTF区域7-数据空间*/
}


章节

  /*“引导至SARAM”模式的设置:
     codegstart部分(可在DSP28_CodeStartBranch.asm中找到)
     将执行重定向到用户代码的开头。  */
  codegstart       :> begin,    page =0
  ramfuns        :> ZONE7A,    页=0
  .text           :> ZONE7A,    page =0
  .cinit          :> ZONE7A,    page =0
  .Pinit          :> ZONE7A,    页数= 0
  .SWITCH         :> ZONE7A,    PAGE = 0

  .stack          :> RAMM1,    页= 1
  .ebss           :> RAML4,    页= 1
  econst         :> RAML5,    page =1
  esysmem        :> RAMM1,    页= 1

  IQMath          :> ZONE7A,    页数=0
  IQmathTables    :> IQTABLES, page =0,type = NoLoad

  /*如果调用IQNexp()或IQexp(),则取消注释以下部分
     从IQMath.lib库中执行函数,以便利用
     引导ROM中的相关IQ Math表(这可节省空间和引导ROM
     为1等待状态)。 如果此部分未取消注释,请使用IQmathTables2.
     将加载到其他存储器(SARAM,闪存等)中并将占用
     打开空间,但0等待状态是可能的。
  */
  /*
  IQmathTables2   :> IQTABLES2,page =0,type = NoLoad
  {

             IQMath.lib<IQNexpTable.obj>(IQmathTablesRam)

  }
  */

  FPUmathTables   :> FPUTABLES,page =0,type = NoLoad

  DMARAML4        :> RAML4,    页面= 1
  DMARAML5        :> RAML5,    页面= 1
  DMARAML6        :> RAML6,    页面= 1
  DMARAML7        :> RAML7,    页面= 1

  ZONE7DATA       :> ZONE7B,   页= 1.

  .reset          :> reset,    page =0,type = DSECT /* not used                   */
  csm_rsvd        :> csm_RSVD  page =0,type = DSECT /*不用于SARAM示例*/
  csmpewds      :> CSM_PWL   页=0,类型= DSECT /*不用于SARAM示例*/

  /*分配ADC_CAal函数(出厂时预编程到TI保留内存中)*/
  .adc_cal    :load = adc_CAL,  页=0,type = NoLoad

}

/*
//===========================================================================================================================================
//文件结束。
//===========================================================================================================================================
*/

请更新!

此致,

Ketan

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

    您是否将引导模式PIN设置为跳转至XINTF x16或跳转至XINTF x32?

    请参阅 www.ti.com/.../tms320f2.8335万.pdf的第106页。

    斯蒂芬
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外,还提供了外部内存接口的勘误表

    请参阅 www.ti.com/.../sprz272k.pdf的第16页

    '内存:开机后XINTF模块可能操作不正确'

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

    您是否解决了问题? 如果是,您是如何解决的?

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

    您好,

    我正在使用5.3 以及6.1 和XDS100_V2以及TMS320F2.8335万定制硬件。

    以前我使用3.3 和XDS510 LC USB仿真器以及TMS320F2.8335万。 使用此安装程序时,我可以将程序加载到外部存储器中,并可以执行该程序。

    但是,当使用5.3 和CC的 同一程序时6.1 ,我无法执行它。我已经共享了相同程序的Gel文件更改和命令文件。 仍然不能用

    谢谢,此致

    Ketan

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

    CCSv7不再需要许可证,因此您可能会同时使用XDS510 LC USB仿真器。  

    请参阅

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

    您好,Ketan:

    [报价用户="ketan Patel"]

    以前我使用3.3 和XDS510 LC USB仿真器以及 TMS320F2.8335万。 使用此安装程序时,我可以将程序加载到外部存储器中,并可以执行该程序。

    但是,当使用5.3 和CC的 同一程序时6.1 ,我无法执行它。我已经共享了相同程序的Gel文件更改和命令文件。 仍然不能用

    [/引述]

    您提到CCSv5 3.3 及更高版本的CCSv5可以正常运行,而CCSv5无法正常运行。 您是否在v5/6中重建应用程序并尝试运行它? 或者,您是否只是尝试使用在v.3.3 中运行良好的应用程序,并尝试在v5/6中运行而不进行重建?


    谢谢

    KI

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

    您好,

    我甚至不能从任何CCS (包括3.3)运行!

    此致,

    Ketan

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

    您好,

    我很困惑。 您在下面说明您可以使用3.3 的工作:

    之前,我使用3.3 和XDS510 LC USB仿真器以及 TMS320F2.8335万。 使用此安装程序时,我可以将程序加载到外部存储器中,并可以执行该程序。 [/引述]

    我是否误解了?


    谢谢

    KI