请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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 来满足任何其他需求? (例如:网络安全)
谢谢