Нашел их, но после замены arm-rtems на современный toolchain имею такую ошибку
$ PATH=/opt/gcc-arm-none-eabi-5_2-2015q4/bin:$PATH make
cd arm && make
-------- begin --------
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 5.2.1 20151202 (release) [ARM/embedded-5-branch revision 231848]
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiling C: src/sirfmemdump.c
arm-none-eabi-gcc -c -mthumb -mcpu=arm7tdmi -mthumb-interwork -I. -gdwarf-2 -Os -ffunction-sections -fdata-sections -W -Wall -Wcast-align -Wimplicit -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wshadow -Wunused -Wa,-adhlns=src/sirfmemdump.lst -I./include -Wcast-qual -MD -MP -MF .dep/sirfmemdump.o.d -Wnested-externs -std=gnu99 -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations src/sirfmemdump.c -o src/sirfmemdump.o
/tmp/cc4BLFEB.s: Assembler messages:
/tmp/cc4BLFEB.s:769: Error: lo register required -- `ldmia ip!,{R0-R3}'
Makefile:327: recipe for target 'src/sirfmemdump.o' failed
Edit
Хмм, поменялись какие-то правила для inline asm
asm volatile(
"LDMIA %[src]!, {R0-R3} \n\t"
"MOV LR, PC \n\t"
"BX %[f_p] \n\t"
"STMIA %[dst]!, {R0-R3} \n\t"
:
: [f_p]"r"(f_p), [src]"r"(&src.u8), [dst]"r"(&dst[0])
: "memory", "r0", "r1", "r2", "r3", "lr"
);
.s
.syntax divided
@ 183 "src/sirfmemdump.c" 1
LDMIA ip!, {R0-R3}
MOV LR, PC
BX r5
STMIA r6!, {R0-R3}
Edit2
Rn must be in the range r0-r7 http://infocenter.arm.com/help/topic/com.arm.doc.dui0068b/BABEFCIB.html
ip=r12 http://infocenter.arm.com/help/topic/com.arm.doc.dui0040d/ch06s02s01.html
Edit3
“r” нельзя применять в thumb моде http://www.ethernut.de/en/documents/arm-inline-asm.html
“l”