Impossible de compiler le fichier de l'ensemble de bras avec armasm
Question
J'utilise libmpeg2 pour montrer la vidéo dans mon projet pocket pc. Dernière version de cette lib a accélération pour le processeur ARM, certaines des fonctions sont réécrites ensemble dans le bras (dans motion_comp_arm_s.S de fichiers distincts). Le problème est armasm à partir de Visual Studio 9 cant compiler, produire beaucoup d'erreurs. Ma question est, quel bras assemblage compilateur est approprié pour un tel code?
.text
@ ----------------------------------------------------------------
.align
.global MC_put_o_16_arm
MC_put_o_16_arm:
@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
pld [r1]
stmfd sp!, {r4-r11, lr} @ R14 is also called LR
and r4, r1, #3
adr r5, MC_put_o_16_arm_align_jt
add r5, r5, r4, lsl #2
ldr pc, [r5]
...
Merci pour toute aide
La solution
C'est la syntaxe utilisée par le GNU assembleur . Le code lui-même devrait être (plus ou moins) le même pour toute l'assembleur; pour faire de cette construction avec l'assembleur Microsoft, les principaux changements sont les suivants:
- Modifier les caractères
@
(dénotant commentaires) à;
- Modifier les directives (les mots commençant par
.
) documenté ici à leurs équivalents Microsoft, documenté ici . Par exemple.text
devientCODE
.
Cela devrait corriger la plupart des erreurs.
Autres conseils
Utiliser le compilateur ARM DRV
Syntaxe d'un exemple de code va comme ceci
AREA ARMex, CODE, READONLY
ENTRY
START
MOV R0,#1
MOV R1,#2
ADD R0,R0,R1
END
Enregistrez le code test.s
commande pour compiler et générer le fichier d'objet est
armasm --arm test -o test.s