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/TMS320F28377S:ePWM 设置

Guru**** 2489685 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/686196/ccs-tms320f28377s-epwm-setup

器件型号:TMS320F28377S

工具/软件:Code Composer Studio

您好、Cottier

感谢您的指导。

我们测试了 ePWM 模块的一些寄存器、包括 EPwmxRegs.TZFLG.ALL、EPwmxRges.TZCTL.ALL、EPwmxRges.DBCTL.ALL、EPwmxRges.AQCTL.ALL、 EPwmxRges.AQCTLA.ALL、EPwmxRges.TBCTL.ALL、(x=1/2/3。所有这些寄存器的值都是预期值。 在测试期间、我们发现当 ePWM 模块不能正常工作时、一些函数调用不会执行、尤其是闪存程序调用在 RAM 中运行的函数、或者 RAM 程序调用在闪存中运行的函数。 是 CMD 文件错误吗? 以下是 CMD 文件。 请帮助您查看是否存在任何错误或不恰当。

//如果使用、用户必须在项目链接器设置中定义 CLA_C

// CLA C 编译器

//项目属性-> C2000链接器->高级选项->命令文件

//预处理->--define

#ifndef CLA_C

#define CLA_C

#endif //cla_C

#ifdef CLA_C

//为将要使用的 CLA 暂存区定义大小

//由 CLA 编译器生成局部符号和 temps

//还强制引用标记的特殊符号

//暂存区是。

CLA_ScratchPad_size = 0x100;

--undef_sym=__cla_scratchpad_end

--undef_sym=__cla_scratchpad_start

#endif //cla_C

 存储器

 0页:

   /* begin 用于"引导至 SARAM"引导加载程序模式  */

 

   开始          :origin = 0x080000,length = 0x000002

   RAMM0          :origin = 0x000122、length = 0x0002DE

   RAMD0          :origin = 0x00B000、length = 0x000800

   RAMLS0_1       :origin = 0x008000、length = 0x001000

   RAMLS3_5   :origin = 0x009800、length = 0x001800

   //RAMLS3     :origin = 0x009800,length = 0x000800

   //RAMLS4     :origin = 0x00A000,length = 0x000800

   //RAMLS5          :origin = 0x00A800,length = 0x000800

   RAMGS14         :origin = 0x01A000,length = 0x001000

   RAMGS15         :origin = 0x01B000,length = 0x001000

   复位          :origin = 0x3FFFC0,length = 0x000002

  /*闪存扇区*/

   FLASHA          :origin = 0x080002,length = 0x001FFE /*片上闪存*/

   FLASHB          :origin = 0x082000、length = 0x002000 //片上闪存*

   FLASHC          :origin = 0x084000,length = 0x002000 //片上闪存*/

   FLASHD          :origin = 0x086000、length = 0x002000 //片上闪存*/

   FLASHE          :origin = 0x088000、length = 0x008000 //片上闪存*/

   FLASHF          :origin = 0x090000,length = 0x008000 //片上闪存*

   FLASHG          :origin = 0x098000、length = 0x008000 //片上闪存*/

   FLASHH          :origin = 0x0A0000,length = 0x008000 //片上闪存*/

   FLASHI          :origin = 0x0A8000、length = 0x008000 //片上闪存*/

   FLASHJ          :origin = 0x0B0000,length = 0x008000 //片上闪存*/

   FLASHK          :origin = 0x0B8000、length = 0x002000 //片上闪存*/

   FLASHL          :origin = 0x0BA000、length = 0x002000 //片上闪存*/

   FLASHM          :origin = 0x0BC000、length = 0x002000 //片上闪存*/

   FLASHN          :origin = 0x0BE000、length = 0x002000 //片上闪存*/    

 

 1页:

  BOOT_RSVD       :origin = 0x000002,length = 0x000120    // M0的一部分,引导 ROM 将此用于栈*/

   RAMM1           :origin = 0x000400、length = 0x000400    //片上 RAM 块 M1 *

  //RAMLS0         :origin = 0x008000、length = 0x000800

   //RAMLS1         :origin = 0x008800,length = 0x000800

   RAMLS2     :origin = 0x009000,length = 0x000800

   //RAMLS3     :origin = 0x009800,length = 0x000800

  RAMGS0          :origin = 0x00C000、length = 0x001000

   RAMGS1          :origin = 0x00D000、length = 0x001000

   RAMGS2          :origin = 0x00E000、length = 0x001000

   RAMGS3          :origin = 0x00F000、length = 0x001000

   RAMGS4          :origin = 0x010000,length = 0x001000

   RAMGS5          :origin = 0x011000,length = 0x001000

   RAMGS6          :origin = 0x012000,length = 0x001000

   RAMGS7          :origin = 0x013000,length = 0x001000

   RAMGS8          :origin = 0x014000,length = 0x001000

   RAMGS9          :origin = 0x015000,length = 0x001000

   RAMGS10         :origin = 0x016000,length = 0x001000

   RAMGS11         :origin = 0x017000,length = 0x001000

   RAMGS12         :origin = 0x018000,length = 0x001000

   RAMGS13         :origin = 0x019000,length = 0x001000

  CPU2TOCPU1RAM   :origin = 0x03F800,length = 0x000400

   CPU1TOCPU2RAM   :origin = 0x03FC00,length = 0x000400

  CLA1_MSGRAMLOW  :origin = 0x001480,length = 0x000080

   CLA1_MSGRAMHIGH :origin = 0x001500,length = 0x000080

 

部分

   /*分配计划领域:*/

   .cinit           :> FLASHE      PAGE = 0,align (4)

   .pinit           :> FLASHE、    PAGE = 0、ALIGN (4)

   .text            :>> FLASHF      PAGE = 0,ALIGN (4)

   codestart       :> begin       page = 0,align (4)

   ramfuncs        :load = FLASHD,

                      运行 = RAMLS0_1、

                      load_start (_RamfuncsLoadStart)、

                      load_size (_RamfuncsLoadSize)、

                      load_end (_RamfuncsLoadEnd)、

                      run_start (_RamfuncsRunStart)、

                      run_size (_RamfuncsRunSize)、

                      run_end (_RamfuncsRunEnd)、

                      PAGE = 0、ALIGN (4)

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

   .stack           :>RAMM1       page = 1.

   .ebss            :> RAMGS5      PAGE = 1.

   .esysmem        :>RAMGS6      PAGE = 1.

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

   .econst         :> FLASHB      PAGE = 0,ALIGN (4)

   .switch         :> FLASHB      PAGE = 0,ALIGN (4)

    .reset           :> reset,    page = 0,type = DSECT //未使用,*/

  filter_RegsFile :> RAMGS0,   PAGE = 1

  .sysmem          :>RAMGS7,   PAGE = 1.

   .cio             :>RAMGS8,   page = 1.

  /* CLA 特定部分*/

   Cla1Prog        :load = FLASHC,

                      运行 = RAMLS3_5、

                      load_start (_Cla1funcsLoadStart)、

                      load_end (_Cla1funcsLoadEnd)、

                      run_start (_Cla1funcsRunStart)、

                      load_size (_Cla1funcsLoadSize)、

                      PAGE = 0、ALIGN (4)

  CLADataLS0:>RAMLS2,PAGE=1

  Cla1ToCpuMsgRAM :> CLA1_MSGRAMLOW,  page = 1.

   CpuToCla1MsgRAM :>CLA1_MSGRAMHIGH, PAGE = 1.

 #ifdef __TI_Compiler_version

   #if __TI_Compiler_version >=15009000

    .TI.ramfunc:{}负载 = FLASHD,

  运行 = RAMLS0_1、

  load_start (_RamfuncsLoadStart)、

  load_size (_RamfuncsLoadSize)、

  load_end (_RamfuncsLoadEnd)、

  run_start (_RamfuncsRunStart)、

  run_size (_RamfuncsRunSize)、

  run_end (_RamfuncsRunEnd)、

  PAGE = 0、ALIGN (4)

   #endif

#endif

  /*以下部分定义适用于 SDFM 示例*/

   filter1_RegsFile:> RAMGS1,PAGE = 1,fill=0x1111

   Filter2_RegsFile:> RAMGS2,PAGE = 1,fill=0x2222

   Filter3_RegsFile:> RAMGS3,PAGE = 1,fill=0x3333

   Filter4_RegsFile:> RAMGS4,PAGE = 1,fill=0x4444

  #ifdef CLA_C

   /* CLA C 编译器段*/

   //

   //必须被分配给 CLA 具有写入访问权限的内存

   //

   CLAscratch      :

                     {*。obj (CLAscratch)

                     。 += CLA_ScratchPad_size;

                     *。obj (CLAscratch_end)}> RAMLS2、 PAGE = 1

  暂存区     :>RAMLS2,       =1

   .bss_cla    :> RAMLS2,      PAGE = 1.

   .const_cla    : load = FLASHC,

                       运行 = RAMLS2、

                       run_start (_Cla1ConstRunStart)、

                       Load_start (_Cla1ConstLoadStart)、

                       load_size (_Cla1ConstLoadSize)、

                       PAGE = 1.

#endif //cla_C

  /*使用 IPC API 驱动程序时需要以下部分定义*/

     :> CPU1TOCPU2RAM,PAGE = 1

    {

        PUTBUFFER

        PUTWRITEIDX

        GETREADIDX

    }

 

     :> CPU2TOCPU1RAM,PAGE = 1

    {

        GETBUFFER:   TYPE = DSECT

        GETWRITEIDX: TYPE = DSECT

        PUTREADIDX:  TYPE = DSECT

    }

 /*

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

//文件结束。

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

*

 

以下是 .map 文件的第0页:

     名称           源   长度     使用    未使用  的属性   填充

------------  ----  ------  ----  ----  --------  

第0页:

  RAMM0                00000122  000002DE 00000000 000002DE RWIX

  RAMLS0_1             00008000  00001000 00000870 00000790 RWIX

  RAMLS3_5             00009800  00001800 00001598 00000268 RWIX

  RAMD0                0000b000  00000800 00000000 00000800 RWIX

  RAMGS14              0001a000  00001000 00000000 00001000 RWIX

  RAMGS15              0001b000  00001000 00000000 00001000 RWIX

  DCSM_OTP_Z1_LINKPOINT 00078000  0000000c 00000000 0000000c RWIX

  DCSM_OTP_Z1_PSWDLOCK 00078010  00000004 00000000 00000004 RWIX

  DCSM_OTP_Z1_CRCLOCK  00078014  00000004 00000000 00000004 RWIX

  DCSM_OTP_Z1_BOOTCTRL 0007801c  00000004 00000000 00000004 RWIX

  DCSM_ZSEL_Z1_P0      00078020  00000010 00000000 00000010 RWIX

  DCSM_OTP_Z2_LINKPOINT 00078200  0000000c 00000000 0000000c RWIX

  DCSM_OTP_Z2_GPREG    0007820c  00000004 00000000 00000004 RWIX

  DCSM_OTP_Z2_PSWDLOCK 00078210  00000004 00000000 00000004 RWIX

  DCSM_OTP_Z2_CRCLOCK  00078214  00000004 00000000 00000004 RWIX

  DCSM_OTP_Z2_BOOTCTRL 0007821c  00000004 00000000 00000004 RWIX

  DCSM_ZSEL_Z2_P0      00078220  00000010 00000000 00000010 RWIX

  BEGIN                00080000  00000002 00000002 00000000 RWIX

  FLASHA               00080002  00001ffe 00000000 00001ffe RWIX

  FLASHB               00082000  00002000 0000025d 00001da3 RWIX

  FLASHC               00084000  00002000 00001598 00000a68 RWIX

  FLASHD               00086000  00002000 00000870 00001790 RWIX

  FLASHE               00088000  00008000 0000001a 00007fe6 RWIX

 

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

    请将您的跟进问题发布在同一原始主题上、以进行跟踪。 我要关闭此主题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    BTW、我已在您的原始线程中复制此查询。