реклама на сайте
подробности

 
 
> STR-E912: 19MIPS на 96 МГц?, Тормоз.... или
SimpleSoft
сообщение Oct 26 2007, 05:53
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 273
Регистрация: 3-11-05
Пользователь №: 10 442



День добрый.

Есть плата Olimex STR-E912.
Среда CrossWorks 1.7. Проект простой. Начальные настройки (PLL = 96MHz и проч). Программа работает из Flash.

для теста скорости написал такой тест:
mov r8, pc
mov r7, #0
add r7, r7, #1
mov pc, r8

Жду 10 сек... после прерываю выполнение и смотрю регистр r7. r7 = 189194738 => 19MIPS
Либо подключенный JTAG так влияет?

Подскажите, пожалуйста, что не так?

Сообщение отредактировал SimpleSoft - Oct 26 2007, 05:54
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dron_Gus
сообщение Oct 27 2007, 10:08
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Я же Вам предложил посчитать необходимое количество тактов на выполнение Вашего цикла. Найдите документ ARM instruction set и посмотрите сколько тактов требует инструкция mov, если операнд - pc, а требует она три такта. Итого Ваш цикл требует 5 тактов. 19 * 5 = 95. На линейном коде (без переходов) это и будет 95 MIPS.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
SimpleSoft
сообщение Oct 27 2007, 21:22
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 273
Регистрация: 3-11-05
Пользователь №: 10 442



Цитата(Dron_Gus @ Oct 27 2007, 13:08) *
Я же Вам предложил посчитать необходимое количество тактов на выполнение Вашего цикла. Найдите документ ARM instruction set и посмотрите сколько тактов требует инструкция mov, если операнд - pc, а требует она три такта. Итого Ваш цикл требует 5 тактов. 19 * 5 = 95. На линейном коде (без переходов) это и будет 95 MIPS.


Спасибо. Действительно, при коде:

b _LOOP_MY
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
...
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
b _LOOP_MY

в r7 = ~48 000 000...

но вот где же преславутые однотактные комманды....???
Go to the top of the page
 
+Quote Post
SimpleSoft
сообщение Oct 27 2007, 22:52
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 273
Регистрация: 3-11-05
Пользователь №: 10 442



Цитата(SimpleSoft @ Oct 28 2007, 00:22) *
Спасибо. Действительно, при коде:

b _LOOP_MY
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
...
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
asm("add r7, r7, #1");
b _LOOP_MY

в r7 = ~48 000 000...

но вот где же преславутые однотактные комманды....???


отвечу сам) а вот они!

---------------------------------------
прочитал тут *http://electronix.ru/forum/lofiversion/index.php/t32933.html
что
Flash Memory Interface Clock 96 MHz
и
FLASH read with 2 wait states
FLASH Bus clock speed >66 MHz

у меня при FMI_Config(FMI_READ_WAIT_STATE_2, FMI_WRITE_WAIT_STATE_1, FMI_PWD_ENABLE,\
FMI_LVD_ENABLE, FMI_FREQ_HIGH);

система вешается намертво.

yeah.gif Удалось получить 96MIPS при работе из SRAM при таких параметрах:
MCLK = fPLL = 96MHz
RCLKDIV = 1
AHBDIV = 1
APBDIV = 1
BRCLK=MCLK
SCU->PCR0.WSR_DTCM = 0
SCU->SCR0.WSR_AHB = 0

Пошел дальше, провёл эксперимент:
MCLK = fPLL = 120MHz
результат -> 120 MIPS.
Дальше не пробовал, смысла не вижу. smile.gif
Спасибо кто помогал.
Go to the top of the page
 
+Quote Post
koyodza
сообщение Oct 30 2007, 13:09
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



APBDIV = 1? Т.е. частота АРВ 96МГц? Глючить будет, АРВ не должна быть выше 48МГц
К тому же у STR91 действительно есть ряд настроек, влияющих на производительность. Например, PFQ/BC при включении уменьшал время выполнения "тяжелой" функции с 3,65мсек до 3мсек на 911F и до 2,8мсек на 911FA
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 13:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01423 секунд с 7
ELECTRONIX ©2004-2016