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/TM4C1294NCPDT:TM4C1294NCPDT

Guru**** 2484615 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/733415/ccs-tm4c1294ncpdt-tm4c1294ncpdt

器件型号:TM4C1294NCPDT

工具/软件:Code Composer Studio

你好

在地址0x80000中启动我的引导加载程序

我的应用程序从0到0x7FFFF

如何 从 应用程序跳转至 地址0x80000以 启动引导加载程序?

谢谢

Shimon

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

    您好!
    您是否有机会尝试使用 TivaWare 引导加载程序示例? 我建议您将引导加载程序设置为0x0、将应用程序设置为0x4000、如示例所示。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好,查尔斯
    感谢您的回复。
    我在地址0中启动了应用程序
    地址0x80000中的引导加载程序

    我需要从应用程序跳转到引导地址的方法。

    谢谢

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

    您好!

     我建议您参考 TivaWare boot_demo1示例。 如果您查看 boot_demo1.c 文件,您将看到它通过调用 JumpToBootLoader()将控件传递给引导加载程序。

     在 JumpToBootLoader()中,它将首先禁用中断,然后通过跳转到向量表中的向量0x2C 来进行 SVC 调用。 然后、SVC 矢量将调用引导加载程序中的 UpdateHandler 函数。 您为什么不尝试使用 TivaWare 示例并让它首先工作、以便您对它的行为有一些看法? 为什么要将引导加载程序放置在非0x0位置? 我们没有这样的引导加载程序示例。 让我们知道您是否能使它正常工作。   

    //
    //
    //将控制权传递给引导加载程序并启动远程软件更新。
    //
    //此函
    
    数将控制权传递给引导加载程序,并根据使用的特定引导加载程序二进制文件,通过 UART0或 USB 启动//主应用程序固件映像的更新。
    //
    //\return 永不返回。
    ////
    *****************
    void
    JumpToBootLoader (void)
    {
    //
    //我们必须确保在进入之前关闭 SysTick 及其中断
    //引导加载程序!
    //
    ROM_SysTickIntDisable();
    ROM_SysTickDisable();
    
    //
    //禁用所有处理器中断。 而不是禁用它们
    //一次一个,直接写入 NVIC 即可禁用所有功能
    //外设中断。
    //
    HWREG (NVIC_DIS0)= 0xffffffff;
    HWREG (NVIC_DIS1)= 0xffffffff;
    HWREG (NVIC_DIS2)= 0xffffffff;
    HWREG (NVIC_DIS3)= 0xffffffff;
    
    //
    //将控制权返回给引导加载程序。 这是对 SVC 的调用
    //引导加载程序中的处理程序。
    //
    (*(void (*)(void))(*(uint32_t *) 0x2C))();
    } 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    为什么在应用程序之后保留引导加载程序? 您的应用程序可能会覆盖引导加载程序。
    此致、
    Digvijay