2017-09-12 46 views

回答

1

不 - 但您可以使用內置的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); 
} 
+0

這是否直接從應用程序跳轉到引導加載程序。不管引腳狀況如何。 –

+0

是的,它會從您的應用程序調用引導加載程序。如果你需要更復雜的引導程序(例如加密文件),你需要自己寫一個或找到/買東西準備好。 –

相關問題