|
Пара вопросов недают покоя, касательно ARM |
|
|
|
 |
Ответов
|
Jul 17 2007, 15:17
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Попробую ответить в меру своих поверхностных знаний: Цитата(UniBomb @ Jul 17 2007, 17:22)  - Все ли контроллеры имеют одну и ту же систему команд? Т.е. например и у филиппса и у атмела есть камни на ядре ARM7TDMI, значит ли это, что они используют оду и ту же мнемонику? Они совместимы снизу вверх, т.е. код для ARM7 идет на ARM9, от ARM9 на ARM10, ARM11 и т.д. В ARM9 добавлена команда CLZ по сравнению с ARM7, может еще какие-то. Между собой все ARM7 имеют одинаковую систему команд. Но кристаллы от разных производителей имеют совершенно разную периферию (и соответственно разные имена SFR и приемы работы с периферией) вплоть до контроллера прерываний. Цитата(UniBomb @ Jul 17 2007, 17:22)  - Какая разница - синтезируемое ядро или нет? (и что это такое?) Какая-то разница есть. Слышал, что у синтезируемого ядра на такт отличается время входа в прерывание (в какую сторону - не помню). Думаю, что на реальных задачах заморачивать себе голову этим вопросом не стоит. Цитата(UniBomb @ Jul 17 2007, 17:22)  - Я так понял что эти камни могут работать как из под ОСи, так и без неё. В таком случает что из себя представляет просто программа? Для каких задач нужна ОСь? Да и AVR могут работать из-под ОСи, и примеров таких много - FreeRTOS, Ethernut, scmRTOS и т.д. "просто программа" представляет из себя то же самое что и на AVR - бесконечный цикл в main(). "Программа под ОСью - вызов функции старта OS в main() и по бесконечному циклу в нескольких потоках. Что касается нужности ОСи - "настоящие программисты пишут на фортране на любом языке". Если у вас когда-нибудь, пока программа крутится в цикле чего-либо ожидая, возникало желание в это время заставить программу сделать что-то еще - ОСь бы помогла сделать это легко и естественно - как только один поток захотел чего-то подождать - управление автоматически передается другим потокам. Или если у вас возникнет желание разделить программу на две "нити", которые выполняются параллельно - например одна измеряет и крутит моторы-клапана, а вторая через последовательный порт отвечает на запросы оператора - самое время почитать что-нибудь про ОСь.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jul 18 2007, 06:39
|

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

|
Придется уточнить. Команды не совсем совместимы между ARM7, ARM9 и т.д ни сверху вниз ни снизу вверх . На бинарном уровне так точно. Из-за различий в конвеере разных ядер по разному отрабатывается вход и выход из прерываний в ARM7 м ARM9. Еще для ARM10, ARM11 возникают проблемы выравнивания при переходе с ARM7. Популярный нынче ARM Cortex (самый реальный, кстати, кандидат на замену AVR) вообще ни с кем из упомянутых не совместим. Исходники на C еще с некоторой натяжкой можно говорить что переносимы снизу вверх от ARM7 к ARM9, а вот на asm-е врядли. Еще не надо забывать про 15-й сопроцессор, который у каждого ядра оригинальный. А вот периферия не всегда разная, просто выбор большой. Например UART у многих производителей реализуется одинаково. Дальше, например, 2-й SSP порт у LPC (Philips) и у STR91x (ST) одинаковые. Тоже с I2C и т.д. Такая знаменитая ОС-ь как uCOS для AVR даже лучше поддерживается чем для ARM. На сайте самого Atmel-а выложены порт и сами мсходники uCOS. Так, что серьезный пользователь AVR сам может поучить как пользоваться RTOS. Синтезируемые ядра это просто ядра описание которых переведенно на язык типа VHDL. Это означает, что при определенных обстоятельствах юзер накопав эти исходники сможет внедрить ядро ARM в свой чип FPGA. (Не прикольно, на мой взгляд. Они там будут очень медленными ) Цитата(Сергей Борщ @ Jul 17 2007, 18:47)  Они совместимы снизу вверх, т.е. код для ARM7 идет на ARM9, от ARM9 на ARM10, ARM11 и т.д. В ARM9 добавлена команда CLZ по сравнению с ARM7, может еще какие-то. Между собой все ARM7 имеют одинаковую систему команд. Но кристаллы от разных производителей имеют совершенно разную периферию (и соответственно разные имена SFR и приемы работы с периферией) вплоть до контроллера прерываний.
Какая-то разница есть. Слышал, что у синтезируемого ядра на такт отличается время входа в прерывание (в какую сторону - не помню). Думаю, что на реальных задачах заморачивать себе голову этим вопросом не стоит.Да и AVR могут работать из-под ОСи, и примеров таких много - FreeRTOS, Ethernut, scmRTOS и т.д. "просто программа" представляет из себя то же самое что и на AVR - бесконечный цикл в main(). "Программа под ОСью - вызов функции старта OS в main() и по бесконечному циклу в нескольких потоках. Что касается нужности ОСи - "настоящие программисты пишут на фортране на любом языке". Если у вас когда-нибудь, пока программа крутится в цикле чего-либо ожидая, возникало желание в это время заставить программу сделать что-то еще - ОСь бы помогла сделать это легко и естественно - как только один поток захотел чего-то подождать - управление автоматически передается другим потокам. Или если у вас возникнет желание разделить программу на две "нити", которые выполняются параллельно - например одна измеряет и крутит моторы-клапана, а вторая через последовательный порт отвечает на запросы оператора - самое время почитать что-нибудь про ОСь.
|
|
|
|
|
Jul 18 2007, 16:46
|

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

|
Живых еще не пробовал. Цитата(Andy Great @ Jul 18 2007, 10:47)  Скажите, Александр, а есть уже впечатления от Кортесов? Насколько в кремнии все так же хорошо, как на бумаге? В общем случае не сложно, но при этом будет очень дорого. Посмотрите что могут 2-3х летней давности мобильники. http://aly.projektas.lt/Mobile/mobile.htmБольшинство было сделано на ARM7 Объем кода при этом у них достигал 5-8 МБайт. Написать столько все самому нереально, но можно купить. Бюджет такой покупки будет не меньше 1 млн. баксов. Если платформа не для мобил или KПК, то можно купить все и за 100 тыс. $ но понадобятся еще расходы на кастомизацию. Без игр, оффисных приложений, c упрощенным сетевым стеком можно слепить и из подручных средств. Для програмной обработки видео ARM7 однозначно не подходит, но в паре с ПЛИС как менеджер видеопотока работать может. Цитата(UniBomb @ Jul 18 2007, 17:54)  А вот ещё такой вопрос. Можно ли на ARM7 построить что-то типа КПК. Т.е. всё как положено - экран, кнопки. Можно и без тачпада. И под всё это дело написать свою операционку аля "UniOS" (надеюсь это имя ещё не занято) - свой ГУЙ, многозадачность, аудио/видео, простятцкие игры, оффисные приложения и т.д. Сложно ли вообще всё это сделать?
|
|
|
|
|
Jul 20 2007, 00:38
|
Частый гость
 
Группа: Свой
Сообщений: 95
Регистрация: 10-04-05
Пользователь №: 4 003

|
Цитата(Andy Great @ Jul 18 2007, 23:53)  Может кто уже пробовал живые? Ау! Намедни взял вот эту платку на LM3S6965: http://www.luminarymicro.com/products/lm3s...uation_kit.htmlhttp://www.luminarymicro.com/products/6900s.htmlЭто в общем-то первый ARM, с которым вплотную столкнулся, так что пока, что вижу - то пою и на полную картину мира не претендую. Что понравилось (сами чипы от Luminary и тех поддержка) * периферия и документация вглядят довольно вразумительно * Thumb-2 - все прелести компактности Thumb при скорости не-thumb. http://www.arm.com/pdfs/Thumb-2%20Core%20T...0-%20Final4.pdf* Luminary нахаляву дает исходники драйверов ко всей периферии и они даже работают. * минимальный геморрой с прерываниями. Вектор сразу указывает на C-функцию. проц сам сохраняет/восстанавливает контекст когда надо, причем сделано это, похоже, с толком. * Есть GCC порт с поддержкой Thumb-2 (тащить с couderoucery.com) * Есть поддержка в FreeRTOS. * Можно отлаживаться и шить флэш через OpenOCD * младшие модели - и впрямь, похоже, могут составить конкуренцию AVR. http://www.luminarymicro.com/products/100_...es_devices.htmlЧего не хватает: * У Luminary yе видать модели с поддержкой внешней памяти. 64К SRAM и 256К флэша мне маловато.
--------------------
--xyzzy
|
|
|
|
Сообщений в этой теме
UniBomb Пара вопросов недают покоя Jul 17 2007, 14:22 UniBomb ЦитатаНо кристаллы от разных производителей имеют ... Jul 17 2007, 15:34 rezident Цитата(UniBomb @ Jul 17 2007, 21:34) ЗЫ:.... Jul 17 2007, 15:58 SergeyDDD www.gaw.ru/html.cgi/txt/doc/micros/arm/arh/index.h... Jul 17 2007, 16:22 Сергей Борщ Цитата(UniBomb @ Jul 17 2007, 18:34) А во... Jul 17 2007, 16:29 Oldring Цитата(UniBomb @ Jul 17 2007, 19:34) А во... Jul 18 2007, 10:25 defunct Цитата(UniBomb @ Jul 17 2007, 18:34) Кста... Jul 20 2007, 13:34 UniBomb т.е. мк - это уже и есть "встраиваемая систем... Jul 17 2007, 16:20 rezident Цитата(UniBomb @ Jul 17 2007, 22:20) Част... Jul 17 2007, 16:23 UniBomb ЦитатаКупи себе книгу http://www.phnet.ru/book/ind... Jul 17 2007, 16:46 jasper ЦитатаПопулярный нынче ARM Cortex (самый реальный,... Jul 18 2007, 08:02 vesago имхо работа с армом или авр принципиально не отлич... Jul 18 2007, 10:04 UniBomb ЦитатаКоманды не совсем совместимы между ARM7, ARM... Jul 18 2007, 14:24 Oldring Цитата(UniBomb @ Jul 18 2007, 18:24) А мо... Jul 19 2007, 08:27 UniBomb ЦитатаВ общем случае не сложно, но при этом будет ... Jul 19 2007, 19:25 AlexandrY А как иначе понимать выражение "офисное прило... Jul 19 2007, 21:36 UniBomb ЦитатаА как иначе понимать выражение "офисное... Jul 20 2007, 13:07 AlexandrY Ну вы описали принцип работы больших осей типа Win... Jul 20 2007, 19:08 UniBomb 2 defunct
Про этот сайт я конечно же знаю. Знал е... Jul 20 2007, 13:46 defunct Цитата(UniBomb @ Jul 20 2007, 16:46) ЗЫ:.... Jul 20 2007, 13:56 UniBomb Всё равно не буду спорить.... Jul 20 2007, 14:11 VAI ЦитатаКстати, а есть в запаснике линк на хоть како... Jul 20 2007, 14:32 UniBomb 2 VAI
Спасибо, очень ценная ссылка. Надо бы ещё в... Jul 20 2007, 14:51 UniBomb Всем спасибо за внимание, я получил ответы на все ... Jul 23 2007, 04:17
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|