Hello,
I have a banked application using the BL51 linker. I am using a Silabs C8051F120 processor, which has four 32K banks. I'm using all of them. I am writing a bootloader to upgrade the firmware using an external uart.
I am looking at the hex files generated using the OH51 converter. There are 4 hex files (.H00 through .H03), and I had assumed that they each held the data for one of four 32K banks. However, after looking at the hex files, I see something different.
The .H01, .H02 and .H03 hex files each have 64K worth of data. Each of these files includes the common bank, so the lower 32K of code data is duplicated in all three files. So, these three files seem to be all that is necessary to program all four banks. I have compared the code bytes in these hex files with the actual data in flash, and they match.
However, the file .H00 only has 32K of code data (0x0000 - 0x8000), and I can't find that data anywhere in my downloaded code. It doesn't even match the data from the common area in the other three hex files. There is also actually some data above 32K, ( 0x8000 to 0x8300).
Is the .H00 file necessary? What data does it contain? Is there a BL51 setting to get differently formatted hex files? I'd rather not change to the LX51 linker..
Thanks very much.