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.

[参考译文] MSPM0G3519:自定义引导加载程序

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1534645/mspm0g3519-custom-bootloader

器件型号:MSPM0G3519

工具/软件:

您好:

我使用 的是 MSPM0G3519 自定义引导加载程序。 我将自定义引导加载程序放入0x00000000该应用、并将其放在带偏移量的自定义引导加载程序代码之后。  

我做了必要的链接器修改。 我缩减了引导加载程序项目的闪存大小、并在应用项目的链接器上为闪存部分添加了偏移量。 我还更改了 .intvecs应用程序方面的部分。

SCB->VTOR = (FLASH_BASE | k_ADDRESS_APP);在 main 函数顶部的应用项目上添加了“"这“这一行。

下面是我的跳转函数:  

/* function pointer to jump from boot to application code */
typedef void (*pf_application)(void);

static uint32_t v_JumpUserApp(void)
{
  static volatile pf_application pfnc_jump_app = NULL;
  static volatile uint32_t dw_jump_app_address = 0;

  // Get App Address
  uint32_t EntryAddr = dw_GetAppAddress();

  __disable_irq;
  dw_jump_app_address = *(volatile uint32_t*)(EntryAddr + 4);
  pfnc_jump_app = (pf_application)dw_jump_app_address;
  /* Initialize user application's Stack Pointer */
  __set_MSP(*(volatile uint32_t*)(EntryAddr));
  /* Jump to application */
  pfnc_jump_app();

  return(EntryAddr);
}

我的问题是我是否必须使用 BSL 和 BCR? 我将在引导加载程序上检查应用程序的 CRC。 我是否需要 BSL 或 BCR 来满足任何其他需求? (例如:网络安全)

谢谢

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

    您好、

    在您的情况下、您不需要配置 BSL 和 BCR。 因为启动代码从 0x0 地址开始。  

    这是由 BSL 和 BCR 中配置的安全功能确定的。 那么这是另一个主题。  

    此致、

    现金好