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/LAUNCHXL-F28027F:起始地址:无法计算地址/表达式

Guru**** 2540720 points
Other Parts Discussed in Thread: LAUNCHXL-F28027F, DRV8305

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/593586/ccs-launchxl-f28027f-start-address-cannot-evaluate-address-expression

器件型号:LAUNCHXL-F28027F
主题中讨论的其他器件: DRV8305

工具/软件:Code Composer Studio

使用:LAUNCHXL-F28027F+boostxldrv8305_revA

当我按照示例项目"proj_lab01b"指南添加类似"步骤1的图形时。 在 CCS 菜单中单击 Tools->Graph->Dual Time。 单击 Import (导入)按钮并选择相应的
从“..\SW\solutions\instaspin_ocs\src\proj_lab01b_D1&d2_1.graphProp”中删除单时间或双时间文件。 "然后单击"OK"、将出现上述错误。 之后、我恢复该程序。 图形窗口值始终为零。

我还使用示波器来检查 PWM 波形是否已经产生、但我按照下面的引脚图来测量 PWMout 和 GND 之间的电压、该值仍然为零。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您正在使用 F28027F 来禁用有限 RAM 存储器的数据记录、因此您收到了这样的错误消息。 如果您想在 F28027F 上使用它、则必须启用它并更改命令文件以使用它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复 Yanming。

    我忘记为 drv8305上的直流总线供电、因此它当时看不到波形。 但现在还可以!  但数据记录功能仍然不起作用。

    您提到的"如果您想在 F28027F 上使用命令文件、请更改命令文件以使用它。" 您能否向我展示如何更改命令文件、或者我是否可以从 TI 文档中获取一些详细信息。

    期待您的回复。

    祝你一切顺利。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以参考 F28069项目来更改.cmd 文件、此文件在默认模式下启用 lab01b/lab01c 中的数据记录。 您必须减小数据记录通道或缓冲区大小、因为 F28027F 没有足够的 RAM 内存。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的。 稍后我会在需要时尝试。 谢谢。

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

    我正在使用28027F Launchpad、但遇到了同样的问题。

    您能不能说明如何修改 F28027F 的.cmd 文件、以便能够绘制数据记录?

    谢谢你。

    Z

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

    限制为 RAM 大小、您必须在 datalog.h 中减少 dlog buff 的长度、如下所示。

    //! \brief 定义最大缓冲区内存长度
    //!
    #define DATA_LOG_缓冲 区大小  300

    如果您没有在 lab01b 中添加任何代码、请按如下所示更改.cmd

      P_RAML0    :origin = 0x008000、length = 0x000880    //片上 pram 块 L0 */

      D_RAML0    :origin = 0x008880,length = 0x000780    //片上 DRAM 块 L0 */

      /*分配未初始化的数据段:*/
      .stack             :>RAMM0_M1    PAGE = 1.

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

    它仍然对我有效。

    我是否错过了任何内容?

    1.#define DATA_LOG_缓冲 区大小  300
    它已在"dataalog.h"中修复

    2.以下是根据您的建议修改的.cmd 代码。

    存储器

    0页:  /*程序内存*/

              /*内存(RAM/FLASH/OTP)块可移动到第1页进行数据分配*/

     

      OTP        :origin = 0x3D7800,length = 0x000400     //片上 OTP */

      csm_RSVD   :origin = 0x3F7F80,length = 0x000076     // FLASHA 的一部分。 当 CSM 正在使用时、使用所有0x0000进行编程。 *

      begin      :origin = 0x3F7FF6,length = 0x000002/*     FLASHA 的一部分。 用于"引导至闪存"引导加载程序模式。 *

      CSM_PWL_P0 :origin = 0x3F7FF8,length = 0x000008     // FLASHA 的一部分。 FLASHA 中的 CSM 密码位置*/

     

      IQTABLES   :origin = 0x3FE000,length = 0x000B50     //引导 ROM 中的 IQMath 表*/

      IQTABLES2  :origin = 0x3FEB50,length = 0x00008C     //引导 ROM 中的 IQMath 表*

      IQTABLES3  :origin = 0x3FEBDC,length = 0x0000AA   /*引导 ROM 中的 IQMath 表*/

     

      ROM        :origin = 0x3FF27C,length = 0x000D44     //引导 ROM */

      复位      :origin = 0x3FFFC0,length = 0x000002     //引导 ROM 的部分*/

      向量    :origin = 0x3FFFC2,length = 0x00003E     //引导 ROM 的部分*/

      FLASHB_D   :origin = 0x3F0000,length = 0x006000     //片上闪存 B、C 和 D */

      D_FLASHA   :origin = 0x3F6000,length = 0x001F80     //片上闪存 A */

      //原始代码

      //P_RAML0    :origin = 0x008000、length = 0x000980     //片上 pram 块 L0 */

      //经 zc 08082017修订

      P_RAML0    :origin = 0x008000、length = 0x000880     //片上 pram 块 L0 */  

      //修订版本1结束

     

    1页:/*  数据存储器*/

              /*内存(RAM/FLASK/OTP)块可被移动至 PAGE0以进行程序分配*/

              /*寄存器保留在第1页                                                中*/

     

      RAMM0_M1   :origin = 0x000000,length = 0x000600     //片上 RAM 块 M0 + M1。 0x600至0x800为 InstaSPIN *保留

      //原始代码

      //D_RAML0    :origin = 0x008980,length = 0x000680     //片上 DRAM 块 L0 */

      //经 zc 08082017修订

      D_RAML0    :origin = 0x008880,length = 0x000780     //片上 DRAM 块 L0 */

      //修订版本2结束

     

    /*将段分配给内存块。

      注:

            DSP28_CodeStartBranch.asm 中用于重定向代码的 codestart 用户定义段

                      闪存时执行

           ramfuncs  用户定义的段来存储将从闪存复制到 RAM 中的函数

    *

     

    部分

      /*分配计划领域:*/

      .cinit             :> FLASHB_D     PAGE = 0

      .pinit             :> FLASHB_D,   PAGE = 0

      .text             :> FLASHB_D     PAGE = 0

      codestart          :> begin        page = 0

      ramfuncs           load = FLASHb_D、

                            运行= P_RAML0、

                            load_start (_RamfuncsLoadStart)、

                            load_end (_RamfuncsLoadEnd)、

                            run_start (_RamfuncsRunStart)、

                            PAGE = 0

     

      csmpasswds         :>csm_PWL_P0   page = 0

      csm_rsvd           :>csm_RSVD     page = 0

     

      /*分配未初始化的数据段:*/

     

         .stack            :>D_RAML0     page = 1.

      //经 zc 08082017修订

      .stack             :>RAMM0_M1     PAGE = 1.

      //结束修订版3

     

      .ebss              :>RAMM0_M1     PAGE = 1.

      .esysmem           :>RAMM0_M1     PAGE = 1.

     

      EBS_EXTENSION      :>P_RAML0      PAGE = 0

      ROM_accessed_data  :>RAMM0_M1     page = 1.

     

      VIB_Buf_data          :>D_RAML0      page = 1.

      graph_data        :>D_RAML0      page = 1.

     

      /*初始化段进入闪存*/

      /*要使 SDFlash 对这些内容进行编程、必须将它们分配到第0页*/

      econst            :>D_FLASHA,   PAGE = 0

      .switch            :>D_FLASHA,   PAGE = 0

     

      /*分配 IQ 数学区域:*/

      IQMath             :> FLASHB_D     page = 0          /*数学代码*/

      IQmathTables        :>IQTABLES,   PAGE = 0,TYPE = NOLOAD

     

      /*如果调用 IQNexp()或 IQexp(),请取消注释以下部分

         库中的函数、以便利用

         引导 ROM 中的相关 IQ Math 表(这可以节省空间和引导 ROM

         1个等待状态)。 如果此部分未注释、则为 IQmathTables2

         将被加载到其他存储器(SARAM、闪存等)中并将采用

         上行空间、但0等待状态是可能的。

      *

      /*

      IQmathTables2   :> IQTABLES2,PAGE = 0,TYPE = NOLOAD

      

     

                 IQMath.lib (IQmathTablesRam)

     

      

      *

      /*如果调用 IQNasin ()或 IQasin (),请取消注释以下部分

         库中的函数、以便利用

         引导 ROM 中的相关 IQ Math 表(这可以节省空间和引导 ROM

         1个等待状态)。 如果此部分未注释、则为 IQmathTables3

         将被加载到其他存储器(SARAM、闪存等)中并将采用

         上行空间、但0等待状态是可能的。

      *

      /*

      IQmathTables3   :> IQTABLES3,PAGE = 0,TYPE = NOLOAD

      

     

                 IQMath.lib (IQmathTablesRam)

     

      

      *

     

      /*.reset 是编译器使用的标准段。 它包含*/

      /* C 代码_c_int00起始地址。 *

      /*当使用引导 ROM 时,此部分和 CPU 矢量*/

      /*不需要表。 因此、默认类型设置为 */

      /* DSECT */

      .reset             :> reset,     page = 0,type = DSECT

      VECTORS            :> VECTORS     PAGE = 0,TYPE = DSECT

     

     

    /*

    //============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

    //文件结束。

    //============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的意思是、它对我来说仍然不起作用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    正如之前的答复所述、限制 F28027F 的 RAM 大小、   没有任何剩余的 RAM 大小可以根据我的参考 cmd 文件在 lab01b 中添加数据和代码。 您可以参考编译错误来调整存储器部分或减小数据记录缓冲区大小以实现数据记录。