У меня случилась такая проблема. Сразу предупрежу что в плане программирования на IAR-овском ассемблере я новичок, хотя вообщем систему команд THUMB-2 знаю. Приведу сразу свой код который я пытаюсь написать на IAR 6.4.0 неважно что и как он должен делать. Программа предполагается для STM32F407VG и в настройках был выбран именно этот микроконтроллер.
NAME main
NEXT MACRO
LDRH R1,[R0,#2]
LDR PC,[R8,R1,LSL #2]
ENDM
COMPILE MACRO
IF _args == 1
DC16 \1
ENDIF
IF _args == 2
DC16 =\1
DC32 =\1
ENDIF
ENDM
PUBLIC __iar_program_start
SECTION .intvec : CODE (1)
THUMB
SECTION ThreadedCode : DATA (1)
DC16 123
;MACRO LIT 1
;MACRO LIT 2
__iar_program_start
B main
SECTION WORDS : CODE (1)
THUMB
;NEXT LDRH R1,[R0,#2]
; LDR PC,[R8,R1,LSL #2]
ENTER push {R0}
ADD R0,R8,R1,LSL #2
LDRH R1,[R0,#4]
LDR PC,[R8,R1,LSL #2]
EXIT pop {R0}
NEXT
PLUS LDMIA R2!,{R4,R5}
ADD R4,R5,R4
STMDB R2!,{R4}
NEXT
LIT ADD R1,R1,#1
LDR R1,[R8,R1,LSL #2]
STMDB R2!,{R4}
NEXT
;LDRH R1,[R0],#2
;LDR PC,[R8,R1,LSL #2]
SECTION .text : CODE (1)
THUMB
main NOP
ADD R1,R2,R3
B main
END
дело в том что как только я добавляю в код секцию для данных:
SECTION ThreadedCode : DATA (1)
DC16 123
то ИАР начинает выдавать ошибку Error[Lp001]: no definition for init routine "__iar_copy_init3"
вообщем подскажите в чём проблема и как её исправить??