Skip to main content
gokhannsahin
Associate III
August 4, 2018
Solved

STM32F446VCT6 IAP Application Address Data

  • August 4, 2018
  • 2 replies
  • 710 views

Hi everyone, I'm developing IAP with stm32f446vct6. In the main function of your example, the application address is checked for 0x20000000 after masking with 0x2FFE0000. However, the f446 reads always the 0x20020000 for the application address and not pass this statement. Why does it read 0x20020000 data? Is it specific value for every MCU? (I tried this data in f303 and it read the 0x20000000 and passed.)

    This topic has been closed for replies.
    Best answer by Tesla DeLorean

    It is a crude test to check if the stack pointer is in RAM, and not something like 0xFFFFFFFF which would be the case if the FLASH were erased.

    ​

    You could fix the test as the value you have is technically valid for the top of RAM, or change the value in the linker script to 0x2001FFFC ​

    2 replies

    Tesla DeLorean
    Tesla DeLoreanBest answer
    Guru
    August 4, 2018

    It is a crude test to check if the stack pointer is in RAM, and not something like 0xFFFFFFFF which would be the case if the FLASH were erased.

    ​

    You could fix the test as the value you have is technically valid for the top of RAM, or change the value in the linker script to 0x2001FFFC ​

    Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
    gokhannsahin
    Associate III
    August 4, 2018

    Thank you very much. :face_with_tears_of_joy: