[an error occurred while processing this directive] [an error occurred while processing this directive]
ARM: Thumb Mode
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Linuxoid 28 мая 2002 г. 20:13

Написал небольшую программку для 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 output

ldr 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