使用自定义引导加载程序使用主站编程外设控制器或从控制器

时间:2017-09-12 12:24:12

标签: stm32 bootloader master-slave

我正在开发一个系统,我有2个从属外设和一个主控制器。我想使用主控制器对这2个从外设进行编程。是否有任何标准协议或架构用于此类编程。

1 个答案:

答案 0 :(得分:1)

否 - 但您可以使用内置的bootloader。在您自己的协议中,发送命令进入引导加载程序,然后按照STM应用程序说明中的说明发送程序。我在很多设备中这样做。

如何进入bootloader?互联网上有很多信息,但有些建议质量很差。您需要在重置后将微控制器切换到舞台 - 然后调用引导加载程序。如果您使用HAL示例,则routime可能如下所示(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);
}