ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
7 июля
186887
Dany (26.03.2010 09:36, просмотров: 8085)
Не получается заполнить IVT адресами, используя линкер. Что не так? /* ** Memory Regions */ MEMORY { data (a!xr) : ORIGIN = 0x800, LENGTH = 0x4000 reset : ORIGIN = 0x0, LENGTH = 0x4 ivt : ORIGIN = 0x4, LENGTH = 0xFC aivt : ORIGIN = 0x104, LENGTH = 0xFC program (xr) : ORIGIN = 0x400, LENGTH = 0x1000 config4 : ORIGIN = 0x2ABF8, LENGTH = 0x2 config3 : ORIGIN = 0x2ABFA, LENGTH = 0x2 config2 : ORIGIN = 0x2ABFC, LENGTH = 0x2 config1 : ORIGIN = 0x2ABFE, LENGTH = 0x2 } __CONFIG3 = 0x2ABFA; __CONFIG2 = 0x2ABFC; __CONFIG1 = 0x2ABFE; __IVT_BASE = 0x4; __AIVT_BASE = 0x104; __DATA_BASE = 0x800; __CODE_BASE = 0x400; /* ** ==================== Section Map ====================== */ SECTIONS { /* ** ========== Program Memory ========== */ /* ** Reset Instruction */ .reset : { SHORT(ABSOLUTE(__reset)); SHORT(0x04); SHORT((ABSOLUTE(__reset) >> 16) & 0x7F); SHORT(0); } >reset /* ** Interrupt Vector Tables ** ** The primary and alternate tables are loaded ** here, between sections .reset and .text. ** Vector table source code appears below. */ /* ** Interrupt Vector Table */ .ivt __IVT_BASE : { LONG(ABSOLUTE(0x1404)); /* __ReservedTrap0*/ LONG(ABSOLUTE(0x1408)); /* __OscillatorFail*/ LONG(ABSOLUTE(0x140C)); /* __AddressError*/ LONG(ABSOLUTE(0x1410)); /* __StackError*/ LONG(ABSOLUTE(0x1414)); /* __MathError*/ LONG(ABSOLUTE(0x150C)); /* __ReservedTrap5 not implemented */ LONG(ABSOLUTE(0x150C)); /* __ReservedTrap6 not implemented */ LONG(ABSOLUTE(0x150C)); /* __ReservedTrap7 not implemented */ LONG(ABSOLUTE(0x1418)); /* __INT0Interrupt*/ LONG(ABSOLUTE(0x141C)); /* __IC1Interrupt*/ LONG(ABSOLUTE(0x1420)); /* __OC1Interrupt*/ LONG(ABSOLUTE(0x1424)); /* __T1Interrupt*/ LONG(ABSOLUTE(0x150C)); /* __Interrupt4 not implemented */ LONG(ABSOLUTE(0x1428)); /* __IC2Interrupt*/ LONG(ABSOLUTE(0x142C)); /* __OC2Interrupt*/ LONG(ABSOLUTE(0x1430)); /* __T2Interrupt*/ LONG(ABSOLUTE(0x1434)); /* __T3Interrupt*/ LONG(ABSOLUTE(0x1438)); /* __SPI1ErrInterrupt*/ LONG(ABSOLUTE(0x143C)); /* __SPI1Interrupt*/ LONG(ABSOLUTE(0x1440)); /* __U1RXInterrupt*/ LONG(ABSOLUTE(0x1444)); /* __U1TXInterrupt*/ LONG(ABSOLUTE(0x1448)); /* __ADC1Interrupt*/ LONG(ABSOLUTE(0x150C)); /* __Interrupt14 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt15 not implemented */ LONG(ABSOLUTE(0x144C)); /* __SI2C1Interrupt*/ LONG(ABSOLUTE(0x1450)); /* __MI2C1Interrupt*/ LONG(ABSOLUTE(0x1454)); /* __CompInterrupt*/ LONG(ABSOLUTE(0x1458)); /* __CNInterrupt*/ LONG(ABSOLUTE(0x145C)); /* __INT1Interrupt*/ LONG(ABSOLUTE(0x150C)); /* __Interrupt21 not implemented */ LONG(ABSOLUTE(0x1460)); /* __IC7Interrupt*/ LONG(ABSOLUTE(0x1464)); /* __IC8Interrupt*/ LONG(ABSOLUTE(0x150C)); /* __Interrupt24 not implemented */ LONG(ABSOLUTE(0x1468)); /* __OC3Interrupt*/ LONG(ABSOLUTE(0x146C)); /* __OC4Interrupt*/ LONG(ABSOLUTE(0x1470)); /* __T4Interrupt*/ LONG(ABSOLUTE(0x1474)); /* __T5Interrupt*/ LONG(ABSOLUTE(0x1478)); /* __INT2Interrupt*/ LONG(ABSOLUTE(0x147C)); /* __U2RXInterrupt*/ LONG(ABSOLUTE(0x1480)); /* __U2TXInterrupt*/ LONG(ABSOLUTE(0x1484)); /* __SPI2ErrInterrupt*/ LONG(ABSOLUTE(0x1488)); /* __SPI2Interrupt*/ LONG(ABSOLUTE(0x150C)); /* __Interrupt34 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt35 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt36 not implemented */ LONG(ABSOLUTE(0x148C)); /* __IC3Interrupt*/ LONG(ABSOLUTE(0x1490)); /* __IC4Interrupt*/ LONG(ABSOLUTE(0x1494)); /* __IC5Interrupt*/ LONG(ABSOLUTE(0x1498)); /* __IC6Interrupt*/ LONG(ABSOLUTE(0x149C)); /* __OC5Interrupt*/ LONG(ABSOLUTE(0x14A0)); /* __OC6Interrupt*/ LONG(ABSOLUTE(0x14A4)); /* __OC7Interrupt*/ LONG(ABSOLUTE(0x14A8)); /* __OC8Interrupt*/ LONG(ABSOLUTE(0x14AC)); /* __PMPInterrupt*/ LONG(ABSOLUTE(0x150C)); /* __Interrupt46 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt47 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt48 not implemented */ LONG(ABSOLUTE(0x14B0)); /* __SI2C2Interrupt*/ LONG(ABSOLUTE(0x14B4)); /* __MI2C2Interrupt*/ LONG(ABSOLUTE(0x150C)); /* __Interrupt51 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt52 not implemented */ LONG(ABSOLUTE(0x14B8)); /* __INT3Interrupt*/ LONG(ABSOLUTE(0x14BC)); /* __INT4Interrupt*/ LONG(ABSOLUTE(0x150C)); /* __Interrupt55 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt56 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt57 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt58 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt59 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt60 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt61 not implemented */ LONG(ABSOLUTE(0x14C0)); /* __RTCCInterrupt*/ LONG(ABSOLUTE(0x150C)); /* __Interrupt63 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt64 not implemented */ LONG(ABSOLUTE(0x14C4)); /* __U1ErrInterrupt*/ LONG(ABSOLUTE(0x14C8)); /* __U2ErrInterrupt*/ LONG(ABSOLUTE(0x14CC)); /* __CRCInterrupt*/ LONG(ABSOLUTE(0x150C)); /* __Interrupt68 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt69 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt70 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt71 not implemented */ LONG(ABSOLUTE(0x14D0)); /* __LVDInterrupt*/ LONG(ABSOLUTE(0x150C)); /* __Interrupt73 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt74 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt75 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt76 not implemented */ LONG(ABSOLUTE(0x14D4)); /* __CTMUInterrupt*/ LONG(ABSOLUTE(0x150C)); /* __Interrupt78 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt79 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt80 not implemented */ LONG(ABSOLUTE(0x14D8)); /* __U3ErrInterrupt*/ LONG(ABSOLUTE(0x14DC)); /* __U3RXInterrupt*/ LONG(ABSOLUTE(0x14E0)); /* __U3TXInterrupt*/ LONG(ABSOLUTE(0x14E4)); /* __SI2C3Interrupt*/ LONG(ABSOLUTE(0x14E8)); /* __MI2C3Interrupt*/ LONG(ABSOLUTE(0x14EC)); /* __USB1Interrupt*/ LONG(ABSOLUTE(0x14F0)); /* __U4ErrInterrupt*/ LONG(ABSOLUTE(0x14F4)); /* __U4RXInterrupt*/ LONG(ABSOLUTE(0x14F8)); /* __U4TXInterrupt*/ LONG(ABSOLUTE(0x14FC)); /* __SPI3ErrInterrupt*/ LONG(ABSOLUTE(0x1500)); /* __SPI3Interrupt*/ LONG(ABSOLUTE(0x1504)); /* __OC9Interrupt*/ LONG(ABSOLUTE(0x1508)); /* __IC9Interrupt*/ LONG(ABSOLUTE(0x150C)); /* __Interrupt94 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt95 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt96 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt97 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt98 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt99 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt100 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt101 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt102 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt103 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt104 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt105 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt106 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt107 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt108 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt109 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt110 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt111 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt112 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt113 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt114 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt115 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt116 not implemented */ LONG(ABSOLUTE(0x150C)); /* __Interrupt117 not implemented */ } >ivt ...