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.

[参考译文] TMS320F28023:TMS320F28023

Guru**** 2386610 points
Other Parts Discussed in Thread: C2000WARE, TMS320F280023, TMS320F28023
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1061751/tms320f28023-tms320f28023

器件型号:TMS320F28023
主题中讨论的其他器件:C2000WARETMS320F280023

我可以为此处理器获取完整的闪存.cmd 文件吗?

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

    您好!

    成熟的闪存命令文件意味着什么? C2000Ware 中为 F2802x 器件提供了几个链接器命令文件- F28023.cmd 和 F2802x_general_flash.cmd 文件、您可以参考这些文件。

    此致

    Siddharth

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

    查看下面利用 IQmath 和_IQmath 表的 piccolo .cmd 文件、并将其用于 F28027 piccolo 处理器。

    但是、我在  C2000Ware 中看不到具有_IQmath 用于 TMS320F280023处理器的任何.cmd 闪存!! 让我知道如何在该处理器中利用 FPU、FINTDIV、TMU 单元、

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Piccolo//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    存储器

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

    PRAML0:origin = 0x008000,length = 0x000800 //片上 RAM 块 L0 */
    OTP:origin = 0x3D7800,length = 0x000400 //片上 OTP */
    FLASHA:origin = 0x3F7000,length = 0x000F80 //片上闪存*/
    csm_RSVD:origin = 0x3F7F80,length = 0x000076 // FLASHA 的一部分。 当 CSM 正在使用时、使用所有0x0000进行编程。 *
    begin:origin = 0x3F7FF6,length = 0x000002/* FLASHA 的一部分。 用于"引导至闪存"引导加载程序模式。 *
    CSM_PWL_P0:origin = 0x3F7FF8,length = 0x000008 //闪存的一部分。 FLASHA 中的 CSM 密码位置*/
    FLASHB:origin = 0x3F6000,length = 0x001000 //片上闪存*/
    FLASHC:origin = 0x3F5000,length = 0x001000 //片上闪存*/
    FLASHD:origin = 0x3F4000,length = 0x001000 //芯片上闪存*/

    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 的部分*/

    第1页:/*数据存储器*/
    /*内存(RAM/FLASK/OTP)块可被移动至 PAGE0以进行程序分配*/
    /*寄存器保留在第1页中*/

    BOOT_RSVD:origin = 0x000000,length = 0x000050 // M0的一部分,引导 ROM 将此用于栈*/
    RAMM0:origin = 0x000050、length = 0x0003B0 //片上 RAM 块 M0 *
    RAMM1:origin = 0x000400、length = 0x000400 //片上 RAM 块 M1 *
    DRAML0:origin = 0x008800,length = 0x000800 //片上 RAM 块 L0 */

    部分

    /*分配计划领域:*/
    .cinit:> FLASHD,page = 0
    .pinit:> FLASHA,page = 0
    .text:>> FLASHA | FLASHB | FLASHC | FLASHD、PAGE = 0
    codestart:> begin page = 0
    ramfuncs:load = FLASHA,
    运行= PRAML0、
    load_start (_RamfuncsLoadStart)、
    load_end (_RamfuncsLoadEnd)、
    run_start (_RamfuncsRunStart)、
    PAGE = 0

    csmpasswds:>csm_PWL_P0 page = 0
    csm_rsvd:>csm_RSVD page = 0

    /*分配未初始化的数据段:*/
    .stack:>RAMM0 page = 1.
    .ebss:> DRAML0 page = 1.
    .esysmem:>DRAML0 page = 1.

    /*初始化段进入闪存*/
    /*要使 SDFlash 对这些内容进行编程、必须将它们分配到第0页*/
    econst:> FLASHA PAGE = 0
    .switch:> FLASHA PAGE = 0

    /*分配 IQ 数学区域:*/
    IQMath:> FLASHA 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个等待状态)。 如果此部分未注释、则为 IQmathTables2
    将被加载到其他存储器(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

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

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

    您好!  

    文件  F28023.cmd 具有 IQMath 条目、它位于中  \device_support\f2802x\common\cmd 文件夹。

    此致

    Siddharth

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

    需要为闪存映射具有 IQmath 等的 F280023.cmd。 不 是你回复的 F28023.cmd。

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

    您好!

    因为您将器件称为"TMS320F28023"而感到困惑。 您可以使用中的链接器 cmd 文件"28002x_general_flash_lnk" \device_support\f28002x\common\cmd 文件夹并更改以下行  

    /*分配 IQ 数学区域:*/
    IQMath:> FLASH_BANK0_SEC1,ALIGN (8)
    IQmathTables:> FLASH_BANK0_sec2,align (8)

    此致

    Siddharth

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

    感谢 Siddharth 的回应、

    其他问题:

    1.我是否需要 在  "28002x_generic_flash_lnk"中指定 IQTABLE 的引导 ROM 存储器位置、如"Piccolo"中所述?

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    IQTABLES:origin = 0x3FE000,length = 0x000B50 //引导 ROM 中的 IQMath 表*/
    IQTABLES2:origin = 0x3FEB50,length = 0x00008C //引导 ROM 中的 IQMath 表*
    IQTABLES3:origin = 0x3FEBDC,length = 0x0000AA /*引导 ROM 中的 IQMath 表*/

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    或者只需 "28002x_generic_flash_lnk"中的"BootROM:origin = 0x003F0000、length = 0x00008000"就足够了。 您能解释一下吗?

    2.如何在 F280023 UC 中使用 FPU、FINTDIV、TMU 单位? PL 指南。

    3.您 是否在 F280023 UC 中使用 FPU、FINTDIV、TMU 单位的任何示例代码?

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

    您好!  

    您可以参阅 TRM 部分的"引导 ROM 存储器映射"、并在链接器命令中定义 IQTABLES

    2. 您可以在项目中启用编译器选项以使用  --float_support=fpu32 --tmu_support=tmu0,并在代码中使用编译器 instrincs

    请参阅编译器用户指南第7.6节 www.ti.com/.../spru514w.pdf

    3. 您可以查看 C2000Ware 中提供的示例。 对于每个库,提供的示例很少。

    此致

    Siddharth