|
ARM9-Cortex clock control, он сам частоту себе подымает ? |
|
|
|
Sep 19 2014, 10:40
|
Местный
  
Группа: Свой
Сообщений: 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 сгодятся
|
|
|
|
|
 |
Ответов
|
Oct 24 2014, 12:11
|
Местный
  
Группа: Свой
Сообщений: 271
Регистрация: 6-12-11
Из: Taganrog
Пользователь №: 68 701

|
Похоже, я опять не туда попал  Тут микроконтроллеры, а есть спец-форум про SoC, там уже наблюдаются вопли по этим "модным" ПЛИС CycloneV со встроенными 2 ядрами ARM и тучей нечётких файлов документации, но без "единого" обозримого User Guide из 300 листов на всё про всё, как у нормальных людей, или хотя бы примеров кода на каждый случай. Книжек научно-приличных по ARM-ам я пока не встретил на нашем языке, чтобы быть в теме, по этим грёбаным необъятным мануалам забодался лазить в последние полгода, где всё самое интересное, типа раскладки управляющих регистров -- в конце, но до этого прелюдии забивают голову кучей мусора...  Я писал Альтере -- включите в 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-а ?
|
|
|
|
|
Oct 28 2014, 07:09
|
Знающий
   
Группа: Свой
Сообщений: 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).
|
|
|
|
|
Oct 29 2014, 05:36
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(jcxz @ Oct 28 2014, 21:33)  Неужто Cortex-A ближе к ARM7/9 чем к Cortex-M? Возьмите от Cortex-M систему команд, добавьте к нему кеши и MMU примерно от ARM9/11, и еще NEON, и получится Cortex-A. Вот как-то так. В общем, все оно близко друг к другу, сложно сказать, к кому ближе, к Cortex-M (по базовому набору инструкций), или к ARM9 (по возможностям кеширования, защиты и виртуализации памяти и векторным операциям). Скорее, все же к ARM9
|
|
|
|
Сообщений в этой теме
WitFed ARM9-Cortex clock control Sep 19 2014, 10:40 MiklPolikov Судя по вопросу, вы совсем не попытались изучить д... Oct 7 2014, 18:27 jcxz Судя по вопросу, чел даже не понял какое у него яд... Oct 8 2014, 09:21    SII Цитата(jcxz @ Oct 28 2014, 21:33) Я конеч... Oct 29 2014, 16:17 Mahagam кроме тактовой, вы ещё про кэши не забывайте. они ... Oct 24 2014, 12:37 SM Ну, во первых, понятный, внятный и всеобъемлющий h... Oct 28 2014, 08:02
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|