Skip to main content
bhakan
Associate
January 21, 2016
Question

32f429i-discovery firmware upgrade

  • January 21, 2016
  • 3 replies
  • 828 views
Posted on January 21, 2016 at 20:26

When we have tried firmware upgrade process according to the sample bin file. (STM32F429I-Discovery_LTDC_ColorKeying_0x08020000.bin) , it works well. But when we compile LTDC_ColorKeying sample codes and generate bin file by us, our generated bin file did not overlap FW_Upgrade process. We could not know what kind of codes changed by ST that  generated bin file in  STM32F429I-Discovery_FW_V1.0.1\Projects\FW_upgrade\Binary folder.

Is it possible to provide open source of STM32F429I-Discovery_LTDC_ColorKeying_0x08020000 sample for TrueSTUDIO  ??

Thanks
    This topic has been closed for replies.

    3 replies

    Tesla DeLorean
    Guru
    January 21, 2016
    Posted on January 21, 2016 at 20:54

    The changed the linker script to place the code at 0x08020000, and also the vector table address in the system_stm32f4xx.c file. Review your .MAP file, confirm the image is correctly placed.

    Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
    bhakan
    bhakanAuthor
    Associate
    January 22, 2016
    Posted on January 22, 2016 at 17:54

    Thanks for reply. We have modified codes according to your direction in linker script file and system_stm32f4xx.c file. But did not work.

    In addition when i changed from _estack = 0x020030000 to _estack=0x20000420 in linker file , the firmware upgrade process worked well. (i saw this memory value in original bin file of ST. I mean, 0x0802000 adress value was 0x20000420 in flash memory)

    Could you explain why 0x20000420 was correct value to jump for the my generated application bin file ? 

    Tesla DeLorean
    Guru
    January 22, 2016
    Posted on January 22, 2016 at 18:26

    You must pick an initial stack address that passes this test

    STM32F429I-Discovery_FW_V1.0.1\Projects\FW_upgrade\src\main.c

    /* Check Vector Table: Test if user code is programmed starting from address
    ''APPLICATION_ADDRESS'' */
    if (((*(__IO uint32_t*)APPLICATION_ADDRESS) & 0x2FFE0000 ) == 0x20000000)
    {
    /* Jump to user application */

    So falling in 0x20000000..0x2001FFFC
    Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..