продолжим, матчасть - тема вечная :-) может я не совсем прав, но write-back и STR в порт есть вещи малосвязанные... по крайней мере
loop
STR R1, [R2,#0x4]
STR R1, [R2,#0xC]
B loop
это то что у Serge сгенерил компилер... а значит это не есть извращение :-)
вопрос у меня был и остается - почему STR/LDR в область RAM выполняется за штатные 2/3 clk а та же операция с адресом порта за 7/8 соответственно...
еще точнее, "почему" я почти понимаю - тормозит "AHB to VPB Bridge"
но мне это явно не нравится...
в моей задачке надо выгребать/разгребать данные с видео АЦП, пробуференные в FIFO -шке и 200 кил у меня вызывают тоску... :-(
пока я делаю так: (мож кто лучше присоветукт...)
и жду сэмплов LPC2214 от филипса с внешним интерфейсом на память...
fifo_read
MOV R12, #0x80000000 ;result
FR_loop
STR R2, [R3,#0x4] ;RCK_set = 7clk
LDRB R8, [R3] ;Port_read = 8clk
STR R2, [R3,#0xC] ;RCK_clr = 7clk
MOVS R12, R12, LSR #8
ADD R12, R12, R8, LSL #24
BCC FR_loop
MOV PC, lr