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.

[参考译文] TMS570LC4357:如何在UART引导加载程序中启用RTI?

Guru**** 2467920 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1095600/tms570lc4357-how-to-enable-rti-in-uart-bootloader

部件号:TMS570LC4357
主题中讨论的其他部件:HALCOGEN

您好,TI团队:

我需要在UART引导加载程序中为可运行功能创建RTI。

我已启用RTI驱动程序, VIM通道0-31已启用RTI比较1,RTI比较1期间已启用20.000 ms。  

主文件中的初始化调用  

rtiEnableNotification (rtiREG1,rtiNOTIFICION_COMPARE1);

_enable_IRQ_interrupit_();
rtiStartCounter(rtiREG1,rtiCOUNTER_Block1);


已创建RTI通知功能,但我在UART引导加载程序代码的rtiNotification中没有收到任何通知  

void rtiNotification (rtibase_t *rtiREG,UINT32通知)

gioToggleBit(gioPORTB,2);
}

所以它在 _enable_irq_interrupti_()之后从_c_int00重置代码;否则它不调用 rtiNotification。

提前感谢

Santhosh

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

    你好,Santhosh,

    有四个比较寄存器:  

    #define rtiNOTIFICION_COMPARE0 1U

    #define rtiCOMPARE0 0U

    要启用compare0,请使用以下代码:

    /*初始化RTI */
    rtiInit();

    /*启用RTI比较0通知*/
    rtiEnableNotification (rtiREG1,rtiNOTIFICION_COMPARE0);

    /*启动计数器*/
    rtiStartCounter(rtiREG1, rtiCOUNTER_BLOCK0);

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

    QJ Wang,您好!

    在HalCoGen中为比较0和计数器0配置RTI,如您之前的回复。

    已设置RTI比较0

    RTI比较0启用中断

    已选择RTI驱动程序。

    /*RTi*/在main之前的中定义  
    #define rtiNOTIFICION_COMPARE0 1U

    #define rtiCOMPARE0 0U

    /*RTI*/在主初始化中调用

    /*启用RTI比较0通知*/
    rtiEnableNotification (rtiREG1,rtiNOTIFICION_COMPARE0);
    /*启动计数器*/
    rtiStartCounter(rtiREG1,rtiCOUNTER_BLOCK0);

    /*RTi*/ rtiNotification不起作用。 RTI不是每10毫秒呼叫一次。

    void rtiNotification (rtibase_t *rtiREG,UINT32通知)

    gioToggleBit(gioPORTB,2);
    }

    我们是否在Bootloader中有任何RTI可以工作?  

    如何使用调度程序在每20毫秒内发送数据包?

    提前感谢

    Santhosh

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

    QJ Wang,您好!

    我们是否可以使用  带PMIC  TPS6.5381万的20毫秒调度程序,在UART_Download中使用YMODEM_Receive使用Y调制解调器?

    如果我们在引导加载程序中实现PMIC,则UART传输卡在中间。

    如何 在 Ymodem接收和发送数据包数据传输之间确认PMIC输入。

    是否可以使用PMIC外部看门狗实施两个UART引导加载程序?

    提前感谢!

    Santhosh

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

    QJ Wang,您好!

    删除BL_main.c和 HL_sys_link.cmd中.const部分的memcpy后,RTI rtiNotification工作正常

    bl_main.c

    /*复制.const部分*/
    // memcpy (&constRunStart,&constLoadStart,(UINT32)&constLoadSize);

    hL_sys_link.cmd

      const  :{} load=flash0, run = RAM, load_start(constLoadStart), run_start(constRunStart),size,(constLoadSize)  /*初始化的常量数据(例如const flash_sectors[.] =)*/

    替换为  

     .const  :{} load=flash0  

    这是否影响Ymodem的传输接收和传输?

    请您尽快回复  

    提前感谢

    Santhosh

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

    我们是否在Bootloader中有任何RTI可以工作?  

    如何使用调度程序在每20毫秒内发送数据包?

    [/引述]

    我不在bootloader中启用RTI。 在UART bootloader中,TMS570 bootloader接收数据包,主机发送消息。 我不知道如何每20毫秒发送一次数据包。  

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

    您好,

    您是否可以使用这种方法来避免将所有连接分配给RAM?

    intvecs :{} palign =8>引导程序
    闪存API:

       .\Boot\Fapi_UserDefinedFunctions.obj (.text,.data)
       ..\Boot\BL_flash.obj (.text,.data)
        --library = F021_API_CortexR4_BE_L2FMC.lib (.text,.data)
    } palign =8 load = FLASH0 |FLASH1,run = RAM, load_start(apiLoadStart),run_start(apiRunStart),Size (apiLoadSize)

    text :{} palign =8 > FLASH0 |FLASH1.
    .const :{} palign =8 load=FLASH0 |FLASH1.
    .cinit :{} palign =8 > FLASH0 | FLASH1.
    Pinit :{} palign =8 > FLASH0 | FLASH1.
    .bss :{}> RAM/*未初始化的全局变量和静态变量*/
    数据:{}> RAM /*已显式初始化的全局和静态非const变量。 */
    sysmem :{}> RAM /*内存池(堆),用于动态内存分配*/

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

    QJ Wang,您好!

    我只对 FAPI使用了FLASH_API,而boot使用了FLASH 0,因为FLASH 1仅由应用程序使用  

    intvecs :{}>引导程序
    闪存API:

    ..\MCAL_Lib\Sources\Fapi_UserDefinedFunctions.obj (.text,.data)
    ..\Boot\BL_flash.obj (.text,.data)
    --library = F021_API_CortexR4_BE_L2FMC.lib (.text,.data)
    } palign =8 load = flash_api,run = RAM,load_start (apiLoadStart),run_start(apiRunStart),size (apiLoadSize)


    text :{}> FLASH0 /*已初始化的可执行代码和常量*/
    .const  :{} load=flash0
    .cinit :{}> FLASH0 /*表,用于显式初始化的全局变量和静态变量*/
    .Pinit :{}> FLASH0 /* C++全局构造函数地址*/

    .bss :{}> RAM/*未初始化的全局变量和静态变量*/
    数据:{}> RAM /*已显式初始化的全局和静态非const变量。 */
    sysmem :{}> RAM /*内存池(堆),用于动态内存分配*/

    需要palign =8?

    能否检查并确认HL_SYS_LINK_cmd文件?

    提前感谢  

    Santhosh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    palign406.2101万 palign =8是需要的[报价]

    是的,拥有它是很好的。  

    palign = 8 告诉链接器将输出部分(flashAPI,.txt,.const,.cinit等)放在位于8字节边界上的地址上,并确保输出部分的大小是8字节的倍数。

    您4357您可以406.2101万可以检查406.2101万检查并确认文件[hl_link]

    我觉得还可以

    [/quote]