0
我正在一個系統上工作,我有2個從外設和一個主控制器。我想用主控制器編程這2個從外設。這種編程是否有任何標準協議或體系結構?使用自定義引導加載程序使用主設備編程外設控制器或從屬控制器
我正在一個系統上工作,我有2個從外設和一個主控制器。我想用主控制器編程這2個從外設。這種編程是否有任何標準協議或體系結構?使用自定義引導加載程序使用主設備編程外設控制器或從屬控制器
不 - 但您可以使用內置的bootloader。在您自己的協議中發送命令進入引導程序,然後按照STM應用筆記中的描述發送程序。我在許多設備中都是這樣做的。
如何進入bootloader?互聯網上有許多信息,但一些建議的質量很低。您需要將復位後的微秒切換到舞臺,然後調用引導加載程序。如果使用HAL示例,則可能看起來像這樣(STM32F303):
void __attribute__((noreturn)) StartBootLoader(void) {
void (*BootLoad)(void) = (void (*)(void))0x1FFFD804;
HAL_RCC_DeInit();
HAL_DeInit();
SysTick -> CTRL = 0;
SysTick -> LOAD = 0;
SysTick -> VAL = 0;
__set_PRIMASK(1);
__set_MSP(*(uint32_t *)0x1FFFD800);
BootLoad();
while(1);
}
這是否直接從應用程序跳轉到引導加載程序。不管引腳狀況如何。 –
是的,它會從您的應用程序調用引導加載程序。如果你需要更復雜的引導程序(例如加密文件),你需要自己寫一個或找到/買東西準備好。 –