cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F446VCT6 IAP Application Address Data

gokhannsahin
Associate II

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.)

1 ACCEPTED SOLUTION

Accepted Solutions

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
Up vote any posts that you find helpful, it shows what's working..

View solution in original post

2 REPLIES 2

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
Up vote any posts that you find helpful, it shows what's working..
gokhannsahin
Associate II

Thank you very much. 😂