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

 
 
 
Reply to this topicStart new topic
> тормоза в STR912FAW44
Zandy
сообщение Jan 11 2010, 22:39
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 153
Регистрация: 5-03-05
Из: Москва
Пользователь №: 3 098



Торможу конечно в первую очередь я сам. С ARM познакомился совсем недавно. До этого работал немного с пиками и аврками. Первое знакомство прошло, можно сказать "на ура". Т.е. каких-то верхушек чуть чуть нахватался. Работаю в кейле. Пользуюсь стандартыми фирмваре-библиотеками к STR912, которые прилагаются к кейлу. Вроде мои простенькие программки как-то работают и в симуляторе и в железе.
Изучать глубоко - не изучал. Уж очень сложное нутро, дается очень туго.
Но, верхушки - верхушками, а, как выяснилось недавно, мои проги оказываются работают не так как надо. А именно, исполняемый код тормозит в железе приблизительно в 2 раза по сравнению с симулятором. Коэффициенты в PLL выставлены верно, делители на шины - тоже. Причем, например, таймеры работают правильно. Все временные интервалы именно такие, как и должны быть. Параллельный порт связи с внешней памятью (EMI) тоже имеет тайминги именно такие, как я выставляю при конфигурации (измерял осцилографом). А вот обычные СИшные прцедуры тормозят. Например, простейший цикл (типа delay) в железе выполняется медленнее, чем в симуляторе.
В чем дело? Подскажите, хотя бы где, или в каком направлении "копать". Документация и др. материалы уж очень неподъемные. Изучить все сразу насухую никак не выходит. unsure.gif
//-----------------
По филипсовским армам в сети и на форумах много чего встречал, и книжки русскоязычные есть, а по ST-шным как-то мало информации. Кнечно, может я зря "сел" сразу на STR912, но уж так сложилось. Выбрал его из-за наличия аппаратного EMI-порта, который был нужен.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 12 2010, 08:31
Сообщение #2


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



На STR912 я много чего выложил, и тестов на быстродействие уйма.
С симулятором сравнивайте только если ваша программа из внутренного RAM-а выполняется.

http://www.alylab.eu/OpenProjects/ARMDominator/ARMDominator.

Цитата(Zandy @ Jan 12 2010, 00:39) *
По филипсовским армам в сети и на форумах много чего встречал, и книжки русскоязычные есть, а по ST-шным как-то мало информации. Кнечно, может я зря "сел" сразу на STR912, но уж так сложилось. Выбрал его из-за наличия аппаратного EMI-порта, который был нужен.
Go to the top of the page
 
+Quote Post
Zandy
сообщение Jan 12 2010, 22:17
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 153
Регистрация: 5-03-05
Из: Москва
Пользователь №: 3 098



Да, спасибо, что намекнули насчет RAM. Создал файл, сунул туда функцию на пробу, разместил в RAM. заработало гораздо шустрее. Но..., появилась какая-то временнАя неравномерность выполнения кода. Вроде операторы похожие, и дизассемблерные команды, им соответствующие, идентичные, а временнЫе картинки "пляшут". Но это ладно, хрен с ними.
Я вот почитал ваш сайт. Да! Материал отменный! Спасибо! Но...! Честно говоря, я по прочтении только расстроился, осознав всю истинную полноту своей тупости! Не готов я пока к восприятию такого материала. Не имею я базовой подготовки, а понять ох как хочется!
Если не трудно, намекните, как достучаться до таких вещей, как:

Branch cache enabled
DTCM has 0 wait state 0 wait state
AHB has 0 wait state 0 wait state
AHB Lock transfer disabled
FLASH read with 2 wait states
FLASH Bus clock speed >66 MHz
ARM966ES buffered writes disabled
ARM966ES instruction prefetch buffer enabled

И еще, по-вашему получается, что при работе из Flash программа пашет быстрее, нежели чем, находясь в ОЗУ. Так почему же вы советовали перенести функции туда, да и мои опыты показали положительный эффект?
Go to the top of the page
 
+Quote Post

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

 


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


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