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

 
 
> 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



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

 


RSS Текстовая версия Сейчас: 24th June 2025 - 15:50
Рейтинг@Mail.ru


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