cancel
Showing results for 
Search instead for 
Did you mean: 

Difference of program flash using STM32 Programmer and using Tftpd64

jjmamtora
Associate II

Hello,

I am using custom hardware of STM32F207ZG.I have created custom bootloader and one simple application.

Bootloader start address of flash location is 0x8000000.
Application start address of flash location is 0x8040000.

From the ethernet i am trying to program application into flash memory using tftpd64.exe and using FTP i am writing flash memory location from 0x8040000.

My question is if i program same application .elf file from STM32 Programmer,it runs well.
But if i write same application .elf file using TFTPD64.exe on same start location 0x8040000,it won't run.

Please suggest , if i missed something or need to do any modification.

 

1 ACCEPTED SOLUTION

Accepted Solutions
jjmamtora
Associate II

The issue is resolved now with .bin file program.

I have below questions:

1. Using NRST pin make LOW which flag would be SET? 

2. IF we do board power ON and OFF, which flag would be SET? 

View solution in original post

7 REPLIES 7
MM..1
Chief II

Verify ?

I have checked data on memory location after I program using STM32 programmer and using TFTPD32 at location 0x8040000.

Data values are different. I think it should be same if I am correct.

MM..1
Chief II

Ofcourse same. Try compare data blocks where not equal start if repeat cut or other corrupt. Normal for any flash techniq is read block into ram buffer over channel (tftp) read checksum over tftp calc and compare checksum in memory if ok flash block ... 

0x20020000 is first data when I program bootloader from address 0x08000000 and same 0x20020000 data available at location address 0x08040000 when I program application using STM32Programmer.

please find attached screenshot for your reference. Could you please tell me what is it? and other data 0x08040D3D at many locations?

MM..1
Chief II

You dont show difference and ask ?? On memory normal aranged is on start interrupts vector table = addr list count based on mcu type around >128 32bit address some is equal if not used interrupt call fault handler...

Pavel A.
Evangelist III

The Programmer silently converts elf to binary, this is why it runs.

When you just download the .elf to STM32, of course it cannot run as is. Generate a bin or hex file as you build (and for the latter you need to convert to binary). The best is to use your own format that your updater understands and validates.

jjmamtora
Associate II

The issue is resolved now with .bin file program.

I have below questions:

1. Using NRST pin make LOW which flag would be SET? 

2. IF we do board power ON and OFF, which flag would be SET?