|
Пара вопросов недают покоя, касательно 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() и по бесконечному циклу в нескольких потоках. Что касается нужности ОСи - "настоящие программисты пишут на фортране на любом языке". Если у вас когда-нибудь, пока программа крутится в цикле чего-либо ожидая, возникало желание в это время заставить программу сделать что-то еще - ОСь бы помогла сделать это легко и естественно - как только один поток захотел чего-то подождать - управление автоматически передается другим потокам. Или если у вас возникнет желание разделить программу на две "нити", которые выполняются параллельно - например одна измеряет и крутит моторы-клапана, а вторая через последовательный порт отвечает на запросы оператора - самое время почитать что-нибудь про ОСь.
|
|
|
|
Сообщений в этой теме
UniBomb Пара вопросов недают покоя Jul 17 2007, 14:22   AlexandrY Живых еще не пробовал.
Цитата(Andy Great @ ... Jul 18 2007, 16:46    Andy Great Цитата(AlexandrY @ Jul 18 2007, 19:46) Жи... Jul 19 2007, 06:53     xyzzy Цитата(Andy Great @ Jul 18 2007, 23:53) М... Jul 20 2007, 00:38 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
|
|
|