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

 
 
> ARM9-Cortex clock control, он сам частоту себе подымает ?
WitFed
сообщение Sep 19 2014, 10:40
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 271
Регистрация: 6-12-11
Из: Taganrog
Пользователь №: 68 701



Подобные названию топика запросы не нагугливают конкретики. Кто в проблему погружен ?
Я на неделе обнаружил, что процессор из SoC на плате Альтеры стартует на очень слабой частоте. Функция:
Код
void my_chk() {
  volatile int i = 0;
  for (; i < 800*1000*1000; i++);
}

из 8-6 тактов цикла (в зависимости от оптимизации) работает порядка 4 минут в Baremetal режиме, а если её вызвать из Линукс-приложения (бывает на той же плате такая бяка) -- то 7 секунд.
Частота ARM-а позиционируется до 925 МГц, Линукс-результат очень подходит к этому числу.
А то, что у меня получается в без-ОС-ом случае -- на 25 МГц, которые подаются на процессор, судя по документации Альтеры, в которой больше нарыть ничего не удалось.
И ARM-овая избыточно подробна и необозрима, неудобна, ужасно пугающа, как много раз мне нагуглилось...
В ARM-ядре есть какие-то механизмы, PLL, регистры, чтобы установить множитель ко входу тактовой частоты ?
По идее, чтобы отсчитать 1 мс в любой ОС, нужно точно знать, на какой частоте ты работаешь, и запитать от неё таймер, а не надеяться на что-то внешнее.
Тогда 25 МГц и умножитель будут лучшим решением.
Но вдруг именно эту частоту 25 снаружи нужно подымать до 925 ? И Альтера должна дать описание, а их 10%, как я вижу ? Хотя и разбавленные...
Кто на ARM-ах собаку съел, как у них дело обстоит ?

И, пожалуйста, киньте конкретных ссылок для более-менее пристойного изучения этой архитектуры "сверху вниз" без ДТП, а в последнем случае уж и TRM из pdf сгодятся wink.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
WitFed
сообщение Oct 24 2014, 12:11
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 271
Регистрация: 6-12-11
Из: Taganrog
Пользователь №: 68 701



Похоже, я опять не туда попал wink.gif Тут микроконтроллеры, а есть спец-форум про SoC, там уже наблюдаются вопли по этим "модным" ПЛИС CycloneV со встроенными 2 ядрами ARM и тучей нечётких файлов документации, но без "единого" обозримого User Guide из 300 листов на всё про всё, как у нормальных людей, или хотя бы примеров кода на каждый случай. Книжек научно-приличных по ARM-ам я пока не встретил на нашем языке, чтобы быть в теме, по этим грёбаным необъятным мануалам забодался лазить в последние полгода, где всё самое интересное, типа раскладки управляющих регистров -- в конце, но до этого прелюдии забивают голову кучей мусора... wink.gif
Я писал Альтере -- включите в SoC EDS все файлы, которые необходимы для полного понимания процессов в HPS, или хотя бы прямые ссылки на них, просто имена, если лицензиары кривят с доступом ! А лучше сваяйте man-friendly manual вместо DoxyGen-отписок. Но пока сырость продукта в процовой части пахнет изо всех щелей. ПЛИСовая -- как обычно, на любителя, наши к такому продукту давно привыкли, уже не дёргаются.

...У меня в среде разработки DS-5 при отладке писано "Cortex-A9_0 #1 running", так что в Альтере считают, что есть такой проц ! И даже убеждаюсь на практике, что он живой и исполняющий инструкции, хотя и медленно.
В Cyclone V SoC Development Kit and SoC Embedded Design Suite можно увидеть общий план, в Altera SoC Embedded Design Suite User Guide -- стартовая точка, в Clock Manager описание блока клоков, который вроде рулит всеми частотами для всех встроенных чиповых девайсов системы, ARM-у типа как уже не надо разгонять ничего внутри, о чём я собственно и вопрошал, вдруг у кого в кэше сидят общие принципы. Там 3 PLL на всё про всё, читаю их регистры -- нормальные дефолтные значения, должно быть 925 на проце ! А по факту -- тормозит, как будто идёт bypass входной частоты PLL-ки наружу без применения к-тов.
В Линуксе всё летает, но я читаю тамошние регистры, пишу несколько отличающихся значених в Baremetal своём куда надо -- нифига по скорости.
Но я не хочу встроенный Линукс, куда толкает в принципе Альтера, ибо не видел достойных описаний встроенных систем на его основе и не люблю использовать тучи ресурсов непонятно на что.
Сколько исходников ни дай -- от их количества только хуже, доказать рабочесть системы можно только практикой, а не теоретическими выкладками, а последнее всегда предпочтительнее, потом уж второе...
Есть у кого положительный русскоязычный опыт выжимания приличной работы из этого SoC-а ?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 25 2014, 06:28
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(WitFed @ Oct 24 2014, 18:11) *
..У меня в среде разработки DS-5 при отладке писано "Cortex-A9_0 #1 running", так что в Альтере считают, что есть такой проц !

Cortex-A9 и ARM9 - чувствуете разницу?
Это совершенно разные ядра с разной архитектурой и системой команд.
Go to the top of the page
 
+Quote Post
SII
сообщение Oct 28 2014, 07:09
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414



Цитата(jcxz @ Oct 25 2014, 09:28) *
Это совершенно разные ядра с разной архитектурой и системой команд.


С разной микроархитектурой. Архитектура у ядер Cortex-A (ARMv7-A) является эволюционным развитием архитектуры ядер ARM9 (ARMv4T или ARMv5T* в зависимости от конкретного ядра). Система команд у них тоже является результатом эволюционного развития (у Cortex-A есть всё, что есть у более ранних ядер, но имеются и новые команды, отсутствовавшие ранее). Так что здесь будет правильным говорить о разных версиях архитектуры, но никак не о разных архитектурах. Разные архитектуры -- это, например, ARM и IA-32 (x86).
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 22:31
Рейтинг@Mail.ru


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