[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Написал небольшую программку для ARM, (типа Hello, world :o) - помигать светодиодами. Если не переключаться в Thumb Mode, все работает (диоды переключаються). Где грабли?
Вот полный листинг:
;-----------------------------------------------
; Special registers area base address
#define ASIC_BASE 0x3ff0000
; I/O Ports interface
#define IOPMOD (ASIC_BASE+0x5000)
#define IOPCON (ASIC_BASE+0x5004)
#define IOPDATA (ASIC_BASE+0x5008)
AREA Hello, CODE, READONLY, INTERWORKING
;-------------------------------------------
; This is the program entry point
;-------------------------------------------
.nothumb
__start::
; Switch to Thumb Mode
adr r0, start+1
bx r0
.size __start,.-__start
.thumb
start:
ldr r0,=IOPMOD ; Configure LED pins as outputldr r1,=0xF0
str r1,[r0]
ldr r0,=IOPDATA
main:
ldr r1,=0xE0 ; Switch on LED1
str r1,[r0]
ldr r1,=0xD0 ; Switch on LED2
str r1,[r0]
ldr r1,=0xB0 ; Switch on LED3
str r1,[r0]
ldr r1,=0x70 ; Switch on LED4
str r1,[r0]b main
.END
<\pre>
Составить ответ ||| Конференция ||| Архив
Ответы
E-mail: info@telesys.ru