S12X Boot-loader Application configuration

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S12X Boot-loader Application configuration

505 Views
vikasgavhane
Contributor I

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Hi,

We are planning to use S12X boot-loader for our project.
We are referring user guide https://www.nxp.com/docs/en/application-note/AN4258.pdf and supporting SW package with application note
We have used interrupts in our code and generated code using Processor Expert.

In section number 6 in AN4258.pdf, it mentions that

"If interrupts are used:
4. Trim the segment ROM_4000 from the original size 0x4000–0x7FFF to 0x4000–0x7F0F. The area 0x7F10–0x7FFF
will be used for the relocated interrupt vector table."

We have change the memory architecture as per our requirements, summery of project.prm file as below

pastedImage_2.png

NAMES

END

SEGMENTS /* Here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */
RAM = READ_WRITE 0x2000 TO 0x7FFF;
ROM_C000 = READ_ONLY 0xC000 TO 0xFEFF;
PAGE_C0 = READ_ONLY 0xC08000 TO 0xC0BFFF;
PAGE_C1 = READ_ONLY 0xC18000 TO 0xC1BFFF;
PAGE_C2 = READ_ONLY 0xC28000 TO 0xC2BFFF;
PAGE_C3 = READ_ONLY 0xC38000 TO 0xC3BFFF;
PAGE_C4 = READ_ONLY 0xC48000 TO 0xC4BFFF;
PAGE_C5 = READ_ONLY 0xC58000 TO 0xC5BFFF;
PAGE_C6 = READ_ONLY 0xC68000 TO 0xC6BFFF;
PAGE_C7 = READ_ONLY 0xC78000 TO 0xC7BFFF;
PAGE_C8 = READ_ONLY 0xC88000 TO 0xC8BFFF;
PAGE_C9 = READ_ONLY 0xC98000 TO 0xC9BFFF;
PAGE_CA = READ_ONLY 0xCA8000 TO 0xCABFFF;
PAGE_CB = READ_ONLY 0xCB8000 TO 0xCBBFFF;
PAGE_CC = READ_ONLY 0xCC8000 TO 0xCCBFFF;
PAGE_CD = READ_ONLY 0xCD8000 TO 0xCDBFFF;
PAGE_CE = READ_ONLY 0xCE8000 TO 0xCEBFFF;
PAGE_CF = READ_ONLY 0xCF8000 TO 0xCFBFFF;
PAGE_D0 = READ_ONLY 0xD08000 TO 0xD0BFFF;
PAGE_D1 = READ_ONLY 0xD18000 TO 0xD1BFFF;
PAGE_D2 = READ_ONLY 0xD28000 TO 0xD2BFFF;
PAGE_D3 = READ_ONLY 0xD38000 TO 0xD3BFFF;
PAGE_D4 = READ_ONLY 0xD48000 TO 0xD4BFFF;
PAGE_D5 = READ_ONLY 0xD58000 TO 0xD5BFFF;
PAGE_D6 = READ_ONLY 0xD68000 TO 0xD6BFFF;
PAGE_D7 = READ_ONLY 0xD78000 TO 0xD7BFFF;
PAGE_D8 = READ_ONLY 0xD88000 TO 0xD8BFFF;
PAGE_D9 = READ_ONLY 0xD98000 TO 0xD9BFFF;
PAGE_DA = READ_ONLY 0xDA8000 TO 0xDABFFF;
PAGE_DB = READ_ONLY 0xDB8000 TO 0xDBBFFF;
PAGE_DC = READ_ONLY 0xDC8000 TO 0xDCBFFF;
PAGE_DD = READ_ONLY 0xDD8000 TO 0xDDBFFF;
PAGE_DE = READ_ONLY 0xDE8000 TO 0xDEBFFF;
PAGE_DF = READ_ONLY 0xDF8000 TO 0xDFBFFF;
PAGE_E0 = READ_ONLY 0xE08000 TO 0xE0BFFF;
PAGE_E1 = READ_ONLY 0xE18000 TO 0xE1BFFF;
PAGE_E2 = READ_ONLY 0xE28000 TO 0xE2BFFF;
PAGE_E3 = READ_ONLY 0xE38000 TO 0xE3BFFF;
PAGE_E4 = READ_ONLY 0xE48000 TO 0xE4BFFF;
PAGE_E5 = READ_ONLY 0xE58000 TO 0xE5BFFF;
PAGE_E6 = READ_ONLY 0xE68000 TO 0xE6BFFF;
PAGE_E7 = READ_ONLY 0xE78000 TO 0xE7BFFF;
PAGE_E8 = READ_ONLY 0xE88000 TO 0xE8BFFF;
PAGE_E9 = READ_ONLY 0xE98000 TO 0xE9BFFF;
PAGE_EA = READ_ONLY 0xEA8000 TO 0xEABFFF;
PAGE_EB = READ_ONLY 0xEB8000 TO 0xEBBFFF;
PAGE_EC = READ_ONLY 0xEC8000 TO 0xECBFFF;
PAGE_ED = READ_ONLY 0xED8000 TO 0xEDBFFF;
PAGE_EE = READ_ONLY 0xEE8000 TO 0xEEBFFF;
PAGE_EF = READ_ONLY 0xEF8000 TO 0xEFBFFF;
PAGE_F0 = READ_ONLY 0xF08000 TO 0xF0BFFF;
PAGE_F1 = READ_ONLY 0xF18000 TO 0xF1BFFF;
PAGE_F2 = READ_ONLY 0xF28000 TO 0xF2BFFF;
PAGE_F3 = READ_ONLY 0xF38000 TO 0xF3BFFF;
PAGE_F4 = READ_ONLY 0xF48000 TO 0xF4BFFF;
PAGE_F5 = READ_ONLY 0xF58000 TO 0xF5BFFF;
PAGE_F6 = READ_ONLY 0xF68000 TO 0xF6BFFF;
PAGE_F7 = READ_ONLY 0xF78000 TO 0xF7BFFF;
PAGE_F8 = READ_ONLY 0xF88000 TO 0xF8BFFF;
PAGE_F9 = READ_ONLY 0xF98000 TO 0xF9BFFF;
PAGE_FA = READ_ONLY 0xFA8000 TO 0xFABFFF;
PAGE_FB = READ_ONLY 0xFB8000 TO 0xFBBFFF;
PAGE_FC = READ_ONLY 0xFC8000 TO 0xFCBFFF;
PAGE_FD = READ_ONLY 0xFD8000 TO 0xFDBFFF;
PAGE_FE = READ_ONLY 0xFE8000 TO 0xFEBFFF;
END

####


We want to understand:
1. As per our memory configuration ROM_4000 section in absent but address range is present, what changes should we do for the boot-loader implementation.
2. What all additional things we need to do apart from mentioned in AN4258 if we want to implement boot-loader on application with processor expert
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

0 Kudos
1 Reply

412 Views
lama
NXP TechSupport
NXP TechSupport

Hi,

The only things necessary to be changed are described in the chapter “6 how to write a user application”. The interrupt table can be placed anywhere in local memory, for example somewhere between 0xC000~0xEFDF. For example just on the beginning 0xC000. Then, of course, at the application start the IVBR must be changed to point to a newly placed vector table.

Best regards,

Ladislav

0 Kudos