cancel
Showing results for 
Search instead for 
Did you mean: 

Jump to bootloade from application on STM32G48xx and use DFU

mszczuj
Associate

I'm stuck on performing jump to bootloader in order to update firmware via DFU. MCU is STM32G484. On empty project I configured the clock for USB, my code is:

int main(void)
{
  HAL_Init();
  SystemClock_Config();
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USB_PCD_Init();
 
 void (*SysMemBootJump)(void);
//volatile uint32_t addr = 0x1FFF0000; //from AN2606 (system memory)
 volatile uint32_t addr = 0x1FFF6FFE; //from AN2606 (bootloader ?)
  __disable_irq();
  SysTick->CTRL = 0;
  HAL_RCC_DeInit();
  for (int i=0;i<5;i++)
  {
   NVIC->ICER[i]=0xFFFFFFFF;
   NVIC->ICPR[i]=0xFFFFFFFF;
  }
 
 __enable_irq(); //re-enablde irq for USB (?)
 
 SysMemBootJump = (void (*)(void)) (*((uint32_t *)(addr + 4)));
__set_MSP(*(uint32_t *)addr);
SysMemBootJump();
 
//shouldn't reach here (?)
 

0 REPLIES 0