2013-09-30 3 views
0

Я беру класс сборки и получается, что я не могу запустить программу Assembly они дали из-за того Windows 95 соответствует ххКомпиляция и запуск сборки ARM thumb-2 в Rasperry pi?

Я бегу Rasperry PI и может легко запустить ассамблею для ARM кода через

http://thinkingeek.com/2013/01/09/arm-assembler-raspberry-pi-chapter-1/

/* -- first.s */ 
/* This is a comment */ 
.global main /* 'main' is our entry point and must be global */ 
.func main /* 'main' is a function */ 

main:   /* This is main */ 
    mov r0, #2 /* Put a 2 inside the register r0 */ 
    bx lr  /* Return from main */ 

$ as -o first.o first.s 
$ gcc -o first first.o 
$ ./first ; echo $? 
2 

Но это стандартный ARM 32 бит настройки и необходимо скомпилировать и запустить для установки пальца 2, например:

AREA PrintText, CODE, READONLY 
SWI_WriteC EQU &0  ;output character in r0 
SWI_Exit EQU &11 ;finish program 
     ENTRY 

     BL Print ;call print subroutine 
     = "Text to print",&0a,&0d,0 
     ALIGN 
     SWI  SWI_Exit ;finish 
Print  LDRB r0,[r14], #1 ;get a character 
     CMP  r0, #0  ;end mark NUL? 
     SWINE SWI_WriteC ;if not, print 
     BNE Print 
     ADD r14, r14, #3 ; pass next word boundary 
     BIC r14, r14, #3 ; round back to boundary 
     MOV pc, r14  ;return 
     END 

Кто-нибудь знает, что мне нужно в Pi, чтобы запустить этот стиль большого пальца? EDIT:

для команд выше Я попытался добавить -mthumb, но не думаю, что это правильно, так как я не вижу никаких изменений.

в -mthumb -o test.o test.s

+0

малина пи является ARM11 (ARMv6somethingjsomething). Он не поддерживает только thumb-2 extensions. –

+0

Я не уверен, что это просто большой или большой палец-2, мне нужна идея, это всего лишь 16 регистров 1, являющихся ПК. это просто большой палец? – Darxval

+0

Я бы попробовал ответ Севы, если это просто большой палец, это не то, как я это делаю, но кажется правдоподобным ... github.com/dwelch67/raspberrypi Я уверен, что у меня есть примеры большого пальца, если вы хотите использовать .thumb и .thumb_func с помощью инструментов gnu. –

ответ

0

Смотрите, если ваш ассемблер будет принимать следующую строку:

AREA PrintText, CODE, READONLY, THUMB 
+0

Ошибка: неправильная область инструкции PrintText, CODE, READONLY, THUMB – Darxval

+0

К сожалению. Поддерживает ли Pi Thumb вообще? –

+0

Знаете ли вы, что мне нужно передать gcc и как? – Darxval

0
.code 32 @ stuff after this line is arm code 

.globl hello_arm 
hello_arm: @an arm function 


.thumb @stuff after this line is thumb 

.thumb_func @the next function is a thumb function and called properly 
.globl hello 
hello: @ a thumb function 
Смежные вопросы