Да, я зафиксировал такой эффект.
Но именно Dhrystone и Whetstone меняли свои результаты не более чем на 1%
А вот простой цикл (ниже) от простого смещения на 8 байт дает изменение результата на 20% !
;-------------------------------------------------------------------------------------------------------------
; Задержка на (t+1)*10 тактов
;-------------------------------------------------------------------------------------------------------------
us_Delay
MOV R1,#0
B label1
label2
NOP
NOP
NOP
NOP
NOP
ADD R1,R1,#1
label1
CMP R1,R0
BLT label2
BX LR
Причем откдючение Branch cache на полученные пропорции влияния не оказывает.
И именно смещение на 8-ь байт дает худший вариант.
Однозначно что-то с burst FLASH намутили.
Цитата(sergvks @ Jul 31 2007, 15:59)

Попробуйте поэкспериментировать на Whetstone, если добавлять просто NOPы в стартап результат начинает прилично меняться,
хотя никаких memcpy там нет.
А вот с этой проблемой думаю может быть связан нюанс описанный в Errata 09-May-2007 пункт 2.16
И еще, на шине AHB надо обязательно поставить один такт ожидания.
Цитата(sergvks @ Jul 30 2007, 13:32)

И ещё :
SPI->DR=data;
while(!(SPI->SR&SPI_TX_FIFO_not_full));
При попадании этого while на определённые адреса проц на нём зацикливается, добавляем в прогу NOP и всё опять работает. Отсюда вопрос - это что работа конвеера??? Может выравнивание какое надо включить в компиляторе, я уже не знаю, поскажите pls.
