Hello, I am developing a bootloader for c8051f580 from Silabs. I follow the AN112 and AN533. I use the signature for check that app is well flashed. I put that signature at 1F1FEh so the Bank 3. I compile, link and download the omf to the chip and everything is ok. But when i generate the hex file i see that the signature is at F1FEh address. I know the problem with intel-hex about 64kB limit, so i generate the hex with ohx51 and option h386 and merge32k.
Someone could give light to my problem?...
My sequence is this:
C51==DB OE BR INTVECTOR(0x0A00) INTERVAL(3) Large
BL51 == BANKING == RS(256) PL(68) PW(78) CODE(0x0A00) BANKAREA(8000H,0FFFFH) BANK3(?CO?SIGNATURE (0xF1FE))
Using LX51 RESERVE (C:0x0000-C:0x09FF) SEGMENTS ( ?CO?SIGNATURE (B3:0xF1FE)) BANKAREA(8000H,0FFFFH)
OHX51.exe h386 MERGE32K
My memory map is something like that:
* * * * * * * C O D E M E M O R Y * * * * * * * 0000H 0A00H *** GAP *** CODE 0A00H 0003H ABSOLUTE CODE 0A03H 0003H ABSOLUTE 0A06H 0003H *** GAP *** CODE 0A09H 0003H ABSOLUTE CODE 0A0CH 0005H UNIT ?PR?I2C_NACK?SOF .... CODE 9B0AH 0007H UNIT ?PR?GENERASTOP?I2C CODE 9B11H 0007H UNIT ?PR?I2C_INIT?SOFTI2C CODE 9B18H 0004H UNIT ?PR?WATCHDOG_REFRESH?TIME >> RS * * * * * * * C O D E B A N K 3 * * * * * * * 0000H F1FEH *** GAP *** BANK3 F1FEH 0002H UNIT ?CO?SIGNATURE
I think the problem is when i generate the hex, that i need to do something more...
Thanks for the time.
Ok Erik, thank you very much
I just found the problem. I had to code banking, because my program exceeded 32kb of the common bank so i was writing in the bank 1, just put some code in the bank 1 using code banking and use LX51 and OHX51. I also have to check the startup.a51 because some project use differents type of file. I have to compare with the one that is included with the code banking example.
Thank you very much.