В качестве примера используется стандартный пример C:\Keil\ARM\Examples\Blinky
После размещения кода таким образом
Нажмите для просмотра прикрепленного файла вот еще на всяки случай Нажмите для просмотра прикрепленного файла
вот что будет в map-файле:
Код
LARM LINKER/LOCATER V2.40e 10/20/2006 15:15:17 PAGE 1
LARM LINKER/LOCATER V2.40e, INVOKED BY:
C:\KEIL\ARM\BIN\LA.EXE .\Obj\Startup.obj, .\Obj\Blinky.obj, .\Obj\Time.obj TO .\Obj\Blinky PRINT (.\Lst\Blinky.map) CASE
>> CLASSES (DATA (0X40000000-0X40003FFF), CODE (0XF00-0X3FFFF), CONST (0XF00-0X3FFFF)))
CPU MODE: LITTLE ENDIAN
INPUT MODULES INCLUDED:
.\Obj\Startup.obj (STARTUP)
COMMENT TYPE 0: AA V2.40b
.\Obj\Blinky.obj (Blinky)
COMMENT TYPE 0: CARM V2.40e
.\Obj\Time.obj (Time)
COMMENT TYPE 0: CARM V2.40e
C:\KEIL\ARM\LIB\CAL.LIB (FIQ)
COMMENT TYPE 0: AA V2.40b
C:\KEIL\ARM\LIB\CAL.LIB (IRQ)
COMMENT TYPE 0: AA V2.40b
C:\KEIL\ARM\LIB\CAL.LIB (DABT)
COMMENT TYPE 0: AA V2.40b
C:\KEIL\ARM\LIB\CAL.LIB (PABT)
COMMENT TYPE 0: AA V2.40b
C:\KEIL\ARM\LIB\CAL.LIB (SWI)
COMMENT TYPE 0: AA V2.40b
C:\KEIL\ARM\LIB\CAL.LIB (UNDEF)
COMMENT TYPE 0: AA V2.40b
ACTIVE MEMORY CLASSES OF MODULE: .\Obj\Blinky (STARTUP)
BASE START END USED MEMORY CLASS
========================================================
00000000H 40000000H 40003FFFH 00000494H DATA
00000000H 00000F00H 0003FFFFH 00000264H CODE
00000000H 00000F00H 0003FFFFH 00000018H CONST
INTERRUPT FUNCTIONS
TYPE STACK SIZE FUNCTION NAME
=================================
irq tc0?A
MEMORY MAP OF MODULE: .\Obj\Blinky (STARTUP)
START STOP LENGTH ALIGN RELOC MEMORY CLASS SEGMENT NAME
=========================================================================
00000000H 0000010FH 00000110H 4 AT.. CODE STARTUPCODE
00000110H 00000EFFH 00000DF0H --- --- **GAP**
00000F00H 00000F0FH 00000010H 4 UNIT CONST ?C_CLRSEG
00000F10H 00000F17H 00000008H 4 UNIT CONST ?C_INITSEG
00000F18H 00000F2FH 00000018H 4 UNIT CODE ?PR?wait?T?Blinky
00000F30H 00000FCBH 0000009CH 4 UNIT CODE ?PR?main?Blinky
00000FCCH 00001013H 00000048H 4 UNIT CODE ?PR?init_timer?T?Time
00001014H 00001053H 00000040H 4 UNIT CODE ?PR?tc0?A?Time
00001054H 00001057H 00000004H 4 UNIT CODE ?C?FIQ
00001058H 0000105BH 00000004H 4 UNIT CODE ?C?IRQ
0000105CH 0000105FH 00000004H 4 UNIT CODE ?C?DABT
00001060H 00001063H 00000004H 4 UNIT CODE ?C?PABT
00001064H 0000106BH 00000008H 4 UNIT CODE ?C?UNDEF
0000106CH 3FFFFFFFH 3FFFEF94H --- --- **GAP**
40000000H 4000048FH 00000490H 4 UNIT DATA STACK
LARM LINKER/LOCATER V2.40e 10/20/2006 15:15:17 PAGE 2
40000490H 40000493H 00000004H 4 UNIT DATA ?DT0?Time
PUBLIC SYMBOLS OF MODULE: .\Obj\Blinky (STARTUP)
VALUE CLASS TYPE PUBLIC SYMBOL NAME
================================================
00000F00H --- --- ?C?CLRTAB
00000F30H --- --- ?C?INIT
00000F10H --- --- ?C?INITTAB
0000105CH CODE --- DAbt_Handler?A
00001054H CODE --- FIQ_Handler?A
00001058H CODE --- IRQ_Handler?A
00001060H CODE --- PAbt_Handler?A
00001064H CODE --- SWI_Handler?A
00001068H CODE --- Undef_Handler?A
00000000H CODE --- __startup
000000F0H CODE --- exit?A
000000F4H CODE --- exit?T
00000FCCH CODE --- init_timer?T
00000F64H CODE --- main
00001014H CODE --- tc0?A
40000490H DATA LONG timeval
00000F18H CODE --- wait?T
Program Size: data=1172 const=24 code=612
LARM RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)
LARM LINKER/LOCATER V2.40e, INVOKED BY:
C:\KEIL\ARM\BIN\LA.EXE .\Obj\Startup.obj, .\Obj\Blinky.obj, .\Obj\Time.obj TO .\Obj\Blinky PRINT (.\Lst\Blinky.map) CASE
>> CLASSES (DATA (0X40000000-0X40003FFF), CODE (0XF00-0X3FFFF), CONST (0XF00-0X3FFFF)))
CPU MODE: LITTLE ENDIAN
INPUT MODULES INCLUDED:
.\Obj\Startup.obj (STARTUP)
COMMENT TYPE 0: AA V2.40b
.\Obj\Blinky.obj (Blinky)
COMMENT TYPE 0: CARM V2.40e
.\Obj\Time.obj (Time)
COMMENT TYPE 0: CARM V2.40e
C:\KEIL\ARM\LIB\CAL.LIB (FIQ)
COMMENT TYPE 0: AA V2.40b
C:\KEIL\ARM\LIB\CAL.LIB (IRQ)
COMMENT TYPE 0: AA V2.40b
C:\KEIL\ARM\LIB\CAL.LIB (DABT)
COMMENT TYPE 0: AA V2.40b
C:\KEIL\ARM\LIB\CAL.LIB (PABT)
COMMENT TYPE 0: AA V2.40b
C:\KEIL\ARM\LIB\CAL.LIB (SWI)
COMMENT TYPE 0: AA V2.40b
C:\KEIL\ARM\LIB\CAL.LIB (UNDEF)
COMMENT TYPE 0: AA V2.40b
ACTIVE MEMORY CLASSES OF MODULE: .\Obj\Blinky (STARTUP)
BASE START END USED MEMORY CLASS
========================================================
00000000H 40000000H 40003FFFH 00000494H DATA
00000000H 00000F00H 0003FFFFH 00000264H CODE
00000000H 00000F00H 0003FFFFH 00000018H CONST
INTERRUPT FUNCTIONS
TYPE STACK SIZE FUNCTION NAME
=================================
irq tc0?A
MEMORY MAP OF MODULE: .\Obj\Blinky (STARTUP)
START STOP LENGTH ALIGN RELOC MEMORY CLASS SEGMENT NAME
=========================================================================
00000000H 0000010FH 00000110H 4 AT.. CODE STARTUPCODE
00000110H 00000EFFH 00000DF0H --- --- **GAP**
00000F00H 00000F0FH 00000010H 4 UNIT CONST ?C_CLRSEG
00000F10H 00000F17H 00000008H 4 UNIT CONST ?C_INITSEG
00000F18H 00000F2FH 00000018H 4 UNIT CODE ?PR?wait?T?Blinky
00000F30H 00000FCBH 0000009CH 4 UNIT CODE ?PR?main?Blinky
00000FCCH 00001013H 00000048H 4 UNIT CODE ?PR?init_timer?T?Time
00001014H 00001053H 00000040H 4 UNIT CODE ?PR?tc0?A?Time
00001054H 00001057H 00000004H 4 UNIT CODE ?C?FIQ
00001058H 0000105BH 00000004H 4 UNIT CODE ?C?IRQ
0000105CH 0000105FH 00000004H 4 UNIT CODE ?C?DABT
00001060H 00001063H 00000004H 4 UNIT CODE ?C?PABT
00001064H 0000106BH 00000008H 4 UNIT CODE ?C?UNDEF
0000106CH 3FFFFFFFH 3FFFEF94H --- --- **GAP**
40000000H 4000048FH 00000490H 4 UNIT DATA STACK
LARM LINKER/LOCATER V2.40e 10/20/2006 15:15:17 PAGE 2
40000490H 40000493H 00000004H 4 UNIT DATA ?DT0?Time
PUBLIC SYMBOLS OF MODULE: .\Obj\Blinky (STARTUP)
VALUE CLASS TYPE PUBLIC SYMBOL NAME
================================================
00000F00H --- --- ?C?CLRTAB
00000F30H --- --- ?C?INIT
00000F10H --- --- ?C?INITTAB
0000105CH CODE --- DAbt_Handler?A
00001054H CODE --- FIQ_Handler?A
00001058H CODE --- IRQ_Handler?A
00001060H CODE --- PAbt_Handler?A
00001064H CODE --- SWI_Handler?A
00001068H CODE --- Undef_Handler?A
00000000H CODE --- __startup
000000F0H CODE --- exit?A
000000F4H CODE --- exit?T
00000FCCH CODE --- init_timer?T
00000F64H CODE --- main
00001014H CODE --- tc0?A
40000490H DATA LONG timeval
00000F18H CODE --- wait?T
Program Size: data=1172 const=24 code=612
LARM RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)
Таким образом получается что наш код переваливает в первый сектор [0x0000 1000 - 0x0000 1FFF]
Компилится нормально, линкуется нормально а когда пытаюсь прошить выдает следующее:
Цитата
Build target 'LPC2100'
linking...
Program Size: data=1172 const=24 code=612
creating hex file from ".\Obj\Blinky"...
".\Obj\Blinky" - 0 Error(s), 0 Warning(s).
Load "D:\\Kap\\Haltura\\Blinky\\Obj\\Blinky.ELF"
Erase Done.
Programming Done.
Contents missmatch at: 00001000H (Flash=FFH Required=04H) !
Contents missmatch at: 00001001H (Flash=FFH Required=40H) !
Contents missmatch at: 00001002H (Flash=FFH Required=00H) !
Contents missmatch at: 00001003H (Flash=FFH Required=E0H) !
Contents missmatch at: 00001004H (Flash=FFH Required=14H) !
Contents missmatch at: 00001005H (Flash=FFH Required=10H) !
Contents missmatch at: 00001006H (Flash=FFH Required=00H) !
Contents missmatch at: 00001007H (Flash=FFH Required=00H) !
Contents missmatch at: 00001008H (Flash=FFH Required=00H) !
Contents missmatch at: 00001009H (Flash=FFH Required=F1H) !
Contents missmatch at: 0000100CH (Flash=FFH Required=00H) !
Contents missmatch at: 0000100DH (Flash=FFH Required=F2H) !
Contents missmatch at: 00001010H (Flash=FFH Required=10H) !
Contents missmatch at: 00001011H (Flash=FFH Required=F0H) !
Contents missmatch at: 00001014H (Flash=FFH Required=03H) !
Contents missmatch at: 00001015H (Flash=FFH Required=00H) !
Contents missmatch at: 00001016H (Flash=FFH Required=2DH) !
Contents missmatch at: 00001017H (Flash=FFH Required=E9H) !
Contents missmatch at: 00001018H (Flash=FFH Required=28H) !
Contents missmatch at: 00001019H (Flash=FFH Required=00H) !
Contents missmatch at: 0000101AH (Flash=FFH Required=9FH) !
Contents missmatch at: 0000101BH (Flash=FFH Required=E5H) !
Contents missmatch at: 0000101CH (Flash=FFH Required=00H) !
Contents missmatch at: 0000101DH (Flash=FFH Required=10H) !
Contents missmatch at: 0000101EH (Flash=FFH Required=90H) !
Contents missmatch at: 0000101FH (Flash=FFH Required=E5H) !
Contents missmatch at: 00001020H (Flash=FFH Required=01H) !
Contents missmatch at: 00001021H (Flash=FFH Required=10H) !
Contents missmatch at: 00001022H (Flash=FFH Required=81H) !
Contents missmatch at: 00001023H (Flash=FFH Required=E2H) !
Contents missmatch at: 00001024H (Flash=FFH Required=00H) !
Contents missmatch at: 00001025H (Flash=FFH Required=10H) !
Contents missmatch at: 00001026H (Flash=FFH Required=80H) !
Contents missmatch at: 00001027H (Flash=FFH Required=E5H) !
Contents missmatch at: 00001028H (Flash=FFH Required=01H) !
Contents missmatch at: 00001029H (Flash=FFH Required=10H) !
Contents missmatch at: 0000102AH (Flash=FFH Required=A0H) !
Contents missmatch at: 0000102BH (Flash=FFH Required=E3H) !
Contents missmatch at: 0000102CH (Flash=FFH Required=18H) !
Contents missmatch at: 0000102DH (Flash=FFH Required=00H) !
Contents missmatch at: 0000102EH (Flash=FFH Required=9FH) !
Contents missmatch at: 0000102FH (Flash=FFH Required=E5H) !
Contents missmatch at: 00001030H (Flash=FFH Required=00H) !
Contents missmatch at: 00001031H (Flash=FFH Required=10H) !
Contents missmatch at: 00001032H (Flash=FFH Required=80H) !
Contents missmatch at: 00001033H (Flash=FFH Required=E5H) !
Contents missmatch at: 00001034H (Flash=FFH Required=00H) !
Contents missmatch at: 00001035H (Flash=FFH Required=10H) !
Contents missmatch at: 00001036H (Flash=FFH Required=A0H) !
Contents missmatch at: 00001037H (Flash=FFH Required=E3H) !
Contents missmatch at: 00001038H (Flash=FFH Required=10H) !
Contents missmatch at: 00001039H (Flash=FFH Required=00H) !
Contents missmatch at: 0000103AH (Flash=FFH Required=9FH) !
Contents missmatch at: 0000103BH (Flash=FFH Required=E5H) !
Contents missmatch at: 0000103CH (Flash=FFH Required=00H) !
Contents missmatch at: 0000103DH (Flash=FFH Required=10H) !
Contents missmatch at: 0000103EH (Flash=FFH Required=80H) !
Contents missmatch at: 0000103FH (Flash=FFH Required=E5H) !
Contents missmatch at: 00001040H (Flash=FFH Required=03H) !
Contents missmatch at: 00001041H (Flash=FFH Required=00H) !
Contents missmatch at: 00001042H (Flash=FFH Required=BDH) !
Contents missmatch at: 00001043H (Flash=FFH Required=E8H) !
Contents missmatch at: 00001044H (Flash=FFH Required=04H) !
Contents missmatch at: 00001045H (Flash=FFH Required=F0H) !
Contents missmatch at: 00001046H (Flash=FFH Required=5EH) !
Contents missmatch at: 00001047H (Flash=FFH Required=E2H) !
Contents missmatch at: 00001048H (Flash=FFH Required=90H) !
Contents missmatch at: 00001049H (Flash=FFH Required=04H) !
Contents missmatch at: 0000104AH (Flash=FFH Required=00H) !
Contents missmatch at: 0000104BH (Flash=FFH Required=40H) !
Contents missmatch at: 0000104CH (Flash=FFH Required=00H) !
Contents missmatch at: 0000104DH (Flash=FFH Required=40H) !
Contents missmatch at: 0000104EH (Flash=FFH Required=00H) !
Contents missmatch at: 0000104FH (Flash=FFH Required=E0H) !
Contents missmatch at: 00001050H (Flash=FFH Required=30H) !
Contents missmatch at: 00001051H (Flash=FFH Required=F0H) !
Contents missmatch at: 00001054H (Flash=FFH Required=FEH) !
Contents missmatch at: 00001057H (Flash=FFH Required=EAH) !
Contents missmatch at: 00001058H (Flash=FFH Required=FEH) !
Contents missmatch at: 0000105BH (Flash=FFH Required=EAH) !
Contents missmatch at: 0000105CH (Flash=FFH Required=FEH) !
Contents missmatch at: 0000105FH (Flash=FFH Required=EAH) !
Contents missmatch at: 00001060H (Flash=FFH Required=FEH) !
Contents missmatch at: 00001063H (Flash=FFH Required=EAH) !
Contents missmatch at: 00001064H (Flash=FFH Required=FEH) !
Contents missmatch at: 00001067H (Flash=FFH Required=EAH) !
Contents missmatch at: 00001068H (Flash=FFH Required=FEH) !
Contents missmatch at: 0000106BH (Flash=FFH Required=EAH) !
Verify Failed!
linking...
Program Size: data=1172 const=24 code=612
creating hex file from ".\Obj\Blinky"...
".\Obj\Blinky" - 0 Error(s), 0 Warning(s).
Load "D:\\Kap\\Haltura\\Blinky\\Obj\\Blinky.ELF"
Erase Done.
Programming Done.
Contents missmatch at: 00001000H (Flash=FFH Required=04H) !
Contents missmatch at: 00001001H (Flash=FFH Required=40H) !
Contents missmatch at: 00001002H (Flash=FFH Required=00H) !
Contents missmatch at: 00001003H (Flash=FFH Required=E0H) !
Contents missmatch at: 00001004H (Flash=FFH Required=14H) !
Contents missmatch at: 00001005H (Flash=FFH Required=10H) !
Contents missmatch at: 00001006H (Flash=FFH Required=00H) !
Contents missmatch at: 00001007H (Flash=FFH Required=00H) !
Contents missmatch at: 00001008H (Flash=FFH Required=00H) !
Contents missmatch at: 00001009H (Flash=FFH Required=F1H) !
Contents missmatch at: 0000100CH (Flash=FFH Required=00H) !
Contents missmatch at: 0000100DH (Flash=FFH Required=F2H) !
Contents missmatch at: 00001010H (Flash=FFH Required=10H) !
Contents missmatch at: 00001011H (Flash=FFH Required=F0H) !
Contents missmatch at: 00001014H (Flash=FFH Required=03H) !
Contents missmatch at: 00001015H (Flash=FFH Required=00H) !
Contents missmatch at: 00001016H (Flash=FFH Required=2DH) !
Contents missmatch at: 00001017H (Flash=FFH Required=E9H) !
Contents missmatch at: 00001018H (Flash=FFH Required=28H) !
Contents missmatch at: 00001019H (Flash=FFH Required=00H) !
Contents missmatch at: 0000101AH (Flash=FFH Required=9FH) !
Contents missmatch at: 0000101BH (Flash=FFH Required=E5H) !
Contents missmatch at: 0000101CH (Flash=FFH Required=00H) !
Contents missmatch at: 0000101DH (Flash=FFH Required=10H) !
Contents missmatch at: 0000101EH (Flash=FFH Required=90H) !
Contents missmatch at: 0000101FH (Flash=FFH Required=E5H) !
Contents missmatch at: 00001020H (Flash=FFH Required=01H) !
Contents missmatch at: 00001021H (Flash=FFH Required=10H) !
Contents missmatch at: 00001022H (Flash=FFH Required=81H) !
Contents missmatch at: 00001023H (Flash=FFH Required=E2H) !
Contents missmatch at: 00001024H (Flash=FFH Required=00H) !
Contents missmatch at: 00001025H (Flash=FFH Required=10H) !
Contents missmatch at: 00001026H (Flash=FFH Required=80H) !
Contents missmatch at: 00001027H (Flash=FFH Required=E5H) !
Contents missmatch at: 00001028H (Flash=FFH Required=01H) !
Contents missmatch at: 00001029H (Flash=FFH Required=10H) !
Contents missmatch at: 0000102AH (Flash=FFH Required=A0H) !
Contents missmatch at: 0000102BH (Flash=FFH Required=E3H) !
Contents missmatch at: 0000102CH (Flash=FFH Required=18H) !
Contents missmatch at: 0000102DH (Flash=FFH Required=00H) !
Contents missmatch at: 0000102EH (Flash=FFH Required=9FH) !
Contents missmatch at: 0000102FH (Flash=FFH Required=E5H) !
Contents missmatch at: 00001030H (Flash=FFH Required=00H) !
Contents missmatch at: 00001031H (Flash=FFH Required=10H) !
Contents missmatch at: 00001032H (Flash=FFH Required=80H) !
Contents missmatch at: 00001033H (Flash=FFH Required=E5H) !
Contents missmatch at: 00001034H (Flash=FFH Required=00H) !
Contents missmatch at: 00001035H (Flash=FFH Required=10H) !
Contents missmatch at: 00001036H (Flash=FFH Required=A0H) !
Contents missmatch at: 00001037H (Flash=FFH Required=E3H) !
Contents missmatch at: 00001038H (Flash=FFH Required=10H) !
Contents missmatch at: 00001039H (Flash=FFH Required=00H) !
Contents missmatch at: 0000103AH (Flash=FFH Required=9FH) !
Contents missmatch at: 0000103BH (Flash=FFH Required=E5H) !
Contents missmatch at: 0000103CH (Flash=FFH Required=00H) !
Contents missmatch at: 0000103DH (Flash=FFH Required=10H) !
Contents missmatch at: 0000103EH (Flash=FFH Required=80H) !
Contents missmatch at: 0000103FH (Flash=FFH Required=E5H) !
Contents missmatch at: 00001040H (Flash=FFH Required=03H) !
Contents missmatch at: 00001041H (Flash=FFH Required=00H) !
Contents missmatch at: 00001042H (Flash=FFH Required=BDH) !
Contents missmatch at: 00001043H (Flash=FFH Required=E8H) !
Contents missmatch at: 00001044H (Flash=FFH Required=04H) !
Contents missmatch at: 00001045H (Flash=FFH Required=F0H) !
Contents missmatch at: 00001046H (Flash=FFH Required=5EH) !
Contents missmatch at: 00001047H (Flash=FFH Required=E2H) !
Contents missmatch at: 00001048H (Flash=FFH Required=90H) !
Contents missmatch at: 00001049H (Flash=FFH Required=04H) !
Contents missmatch at: 0000104AH (Flash=FFH Required=00H) !
Contents missmatch at: 0000104BH (Flash=FFH Required=40H) !
Contents missmatch at: 0000104CH (Flash=FFH Required=00H) !
Contents missmatch at: 0000104DH (Flash=FFH Required=40H) !
Contents missmatch at: 0000104EH (Flash=FFH Required=00H) !
Contents missmatch at: 0000104FH (Flash=FFH Required=E0H) !
Contents missmatch at: 00001050H (Flash=FFH Required=30H) !
Contents missmatch at: 00001051H (Flash=FFH Required=F0H) !
Contents missmatch at: 00001054H (Flash=FFH Required=FEH) !
Contents missmatch at: 00001057H (Flash=FFH Required=EAH) !
Contents missmatch at: 00001058H (Flash=FFH Required=FEH) !
Contents missmatch at: 0000105BH (Flash=FFH Required=EAH) !
Contents missmatch at: 0000105CH (Flash=FFH Required=FEH) !
Contents missmatch at: 0000105FH (Flash=FFH Required=EAH) !
Contents missmatch at: 00001060H (Flash=FFH Required=FEH) !
Contents missmatch at: 00001063H (Flash=FFH Required=EAH) !
Contents missmatch at: 00001064H (Flash=FFH Required=FEH) !
Contents missmatch at: 00001067H (Flash=FFH Required=EAH) !
Contents missmatch at: 00001068H (Flash=FFH Required=FEH) !
Contents missmatch at: 0000106BH (Flash=FFH Required=EAH) !
Verify Failed!
Может это Keil денег хочет ? Как это лечить ?
Хотя вродь нигде не написано что Evaluation, Limit ... etc :
Нажмите для просмотра прикрепленного файла
П.С. Не спрашивайте зачем я так размещаю код. Нужна дырка. Того требует задача.
П.П.С. Если увеличить начальный адрес с 0xF00 и выше (0x1000, 0x2000...) везде одно и тоже.
Этим примером хотел показать что нулевой сектор прошивается а вот уже последующие нехотят.
Вот настройки U-LINK'a
Нажмите для просмотра прикрепленного файла