2017-04-04 07:31 AM
Hi everybody. I have problems to program one stm32f429IET6. The device is attached to a custom board. We start the project with a stm32f429IIT6. When we finished the code we realize that amount of flash was empty so we decide to change the uC to a stm32f429IET. We have made all the changes that are necesary in the stmcube , creating a new project.
The problem is when we charge the code to the new stm32f429IET6. We can see the code is being programed but the uC do not start runing. When you run the debug sesion it try to start in a not existing flash memory address. We have looked the debug settings and we realize that with the IET and the IIT, Keil only detect a 2Mb flash memory chip, what is false beacuse IET only have 512Kb.Anyone know how to select the correct memory addresses for this device???#debug #flash-address #memory #stm32f4292017-04-04 07:37 AM
The chip die typically has 1MB or 2MB internally, you buy a '512KB' part with only that much tested.
Set the IROM size to be 0x80000 in the Target options pane, and the linker will only generate code that will fit.
If the core determines you are outside of physical memory, ie >2MB, you'll get a Hard Fault
2017-04-04 09:39 AM
printf('STM32F4xx %d KB FLASH, %08X-%08X-%08X UNIQUE\r\n',
*((unsigned short *)0x1FFF7A22),*((unsigned long *)0x1FFF7A10), *((unsigned long *)0x1FFF7A14), *((unsigned long *)0x1FFF7A18) );2017-04-04 10:12 AM
We have done that yet and the device is doing exactly the same.
2017-04-04 10:21 AM
You should perhaps look more critically at the .MAP file and what you can debug.
Make sure you have an effective Hard Fault handler so you can see if that is catching any broken code.
I'd start by getting more diagnostic code in during the early Reset Handler stage, and turning of 'run to main()' to see if the SystemInit() code, or static initialization code was broken.
Make sure the IRAM and IROM sizes are correct for the chosen device is the Target Option pane, or that you Scatter File is valid/correct for the new part.
2017-04-04 10:22 AM
Make sure also the BOOT0 is pulled low.