Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: тормоза в STR912FAW44
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Zandy
Торможу конечно в первую очередь я сам. С ARM познакомился совсем недавно. До этого работал немного с пиками и аврками. Первое знакомство прошло, можно сказать "на ура". Т.е. каких-то верхушек чуть чуть нахватался. Работаю в кейле. Пользуюсь стандартыми фирмваре-библиотеками к STR912, которые прилагаются к кейлу. Вроде мои простенькие программки как-то работают и в симуляторе и в железе.
Изучать глубоко - не изучал. Уж очень сложное нутро, дается очень туго.
Но, верхушки - верхушками, а, как выяснилось недавно, мои проги оказываются работают не так как надо. А именно, исполняемый код тормозит в железе приблизительно в 2 раза по сравнению с симулятором. Коэффициенты в PLL выставлены верно, делители на шины - тоже. Причем, например, таймеры работают правильно. Все временные интервалы именно такие, как и должны быть. Параллельный порт связи с внешней памятью (EMI) тоже имеет тайминги именно такие, как я выставляю при конфигурации (измерял осцилографом). А вот обычные СИшные прцедуры тормозят. Например, простейший цикл (типа delay) в железе выполняется медленнее, чем в симуляторе.
В чем дело? Подскажите, хотя бы где, или в каком направлении "копать". Документация и др. материалы уж очень неподъемные. Изучить все сразу насухую никак не выходит. unsure.gif
//-----------------
По филипсовским армам в сети и на форумах много чего встречал, и книжки русскоязычные есть, а по ST-шным как-то мало информации. Кнечно, может я зря "сел" сразу на STR912, но уж так сложилось. Выбрал его из-за наличия аппаратного EMI-порта, который был нужен.
AlexandrY
На STR912 я много чего выложил, и тестов на быстродействие уйма.
С симулятором сравнивайте только если ваша программа из внутренного RAM-а выполняется.

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

Цитата(Zandy @ Jan 12 2010, 00:39) *
По филипсовским армам в сети и на форумах много чего встречал, и книжки русскоязычные есть, а по ST-шным как-то мало информации. Кнечно, может я зря "сел" сразу на STR912, но уж так сложилось. Выбрал его из-за наличия аппаратного EMI-порта, который был нужен.
Zandy
Да, спасибо, что намекнули насчет 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 программа пашет быстрее, нежели чем, находясь в ОЗУ. Так почему же вы советовали перенести функции туда, да и мои опыты показали положительный эффект?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.