STM32F103 基于UDS的BOOTLOADER

1.对于BOOTLODER来讲,首先要讲FLASH分好区
BOOTLODER
STM32F103 基于UDS的BOOTLOADER_第1张图片

APP
STM32F103 基于UDS的BOOTLOADER_第2张图片

2.跳转函数
Boot_JumpToApplication(0x08008000);
具体内容如下:
void Boot_JumpToApplication(uint32_t Addr)
{
static pFunction Jump_To_Application;
__IO uint32_t JumpAddress;
/* Test if user code is programmed starting from address “ApplicationAddress” /
if (((
(__IO uint32_t*)Addr) & 0x2FFE0000 ) == 0x20000000)
{
/* Jump to user application /
JumpAddress = (__IO uint32_t) (Addr + 4);
Jump_To_Application = (pFunction) JumpAddress;
__set_PRIMASK(1);
/
Initialize user application’s Stack Pointer /
__set_MSP(
(__IO uint32_t*)Addr);
Jump_To_Application();
}
}

3.协议栈
static uint8_t xCAN_App10Service(uint8_t* buf,uint32_t size);
static uint8_t xCAN_App11Service(uint8_t* buf,uint32_t size);
static uint8_t xCAN_App14Service(uint8_t* buf,uint32_t size);
static uint8_t xCAN_App19Service(uint8_t* buf,uint32_t size);
static uint8_t xCAN_App22Service(uint8_t* buf,uint32_t size);
static uint8_t xCAN_App2EService(uint8_t* buf,uint32_t size);
static uint8_t xCAN_App27Service(uint8_t* buf,uint32_t size);
static uint8_t xCAN_App28Service(uint8_t* buf,uint32_t size);
static uint8_t xCAN_App31Service(uint8_t* buf,uint32_t size);
static uint8_t xCAN_App34Service(uint8_t* buf,uint32_t size);
static uint8_t xCAN_App36Service(uint8_t* buf,uint32_t size);
static uint8_t xCAN_App37Service(uint8_t* buf,uint32_t size);
static uint8_t xCAN_App3EService(uint8_t* buf,uint32_t size);
static uint8_t xCAN_App85Service(uint8_t* buf,uint32_t size);

如有需要,可咨询qq:352365782

你可能感兴趣的:(UDS,flash)