BIN Filer Generate with Different IROM Address

Hi,

I have questions as following,
I think that there has no address information in the BIN file, but from
my testing, there has different BIN generated with different address

Flow 1. "Options for target" > "Target", set IROM1 to 0x8003000 then generate BIN1 file
Flow 2. "Options for target" > "Target", set IROM1 to 0x8005000 then generate BIN2 file

After doing that, I use software to compare two files, I found that the files are not
the same.

So, my question is,
1. Any document or material to describe it about this topic?
2. If I flash BIN1 file into 0x8005000 and using boot loader to jump it and correct setting interrupt vector table in 0x8005000, does the firmware can work correctly?

Thank you so much.

  • That is correct - it is just a byte-for-byte representation of the data.

    After doing that, I use software to compare two files, I found that the files are not the same."

    Did you try repeating Flow 1 to see if it actually generates identical bin files each & every time?

    Any absolute addresses in there are going to be different.

  • The Micro Controller has a Technical Reference Manual (TRM) if you're interested in the internal mechanics. Plenty of good texts on Assemblers, Compilers, Linkers and Loaders, basis of most higher education courses within the topic area. Joseph Yiu has several good books.

    The Cortex-Mx devices have a Vector Table, that contains ABSOLUTE addresses, ie MPU reads the address and transfers control to that location. Images build at different addresses, will contain vector tables pointing at different internal addresses.

    BIN1 will not work in the 0x08005000
    Do a binary file compare to observe the scope of the difference. ie fc /b bin1.bin bin2.bin

More questions in this forum