Вот примерчик ошибки в генерации кода для cortex
код такой
volatile int *p;
void proc(void) { *p = 1; }
здесь чтения переменной быть *p быть не должно!
только запись!
а генерится и чтение тоже
CODE
proc:
movw r3, #:lower16:p
movt r3, #:upper16:p
ldr r3, [r3, #0] !!!!!!!!!!!!!!!!! Во это совсем не надо!
mov r2, #1
str r2, [r3, #0]
bx lr
.size proc, .-proc
.comm p,4,4
.ident "GCC: (Klen's GCC package (KGP) for ARM/elf platform) 4.6.0 20101212 (experimental)"
Сообщение отредактировал Jat - Dec 16 2010, 03:57