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

 
 
> Пара вопросов недают покоя, касательно ARM
UniBomb
сообщение Jul 17 2007, 14:22
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 148
Регистрация: 26-05-05
Пользователь №: 5 416



Решил пока не поздно переходить с AVR на ARM. Переход пока даётся крайне сложно... И всё таки, никак не могу найти ответа на несколько вопросов:

- Все ли контроллеры имеют одну и ту же систему команд? Т.е. например и у филиппса и у атмела есть камни на ядре ARM7TDMI, значит ли это, что они используют оду и ту же мнемонику?

- Какая разница - синтезируемое ядро или нет? (и что это такое?)

- Я так понял что эти камни могут работать как из под ОСи, так и без неё. В таком случает что из себя представляет просто программа? Для каких задач нужна ОСь?

ЗЫ: я попытался гуглить, но ничего путного так и не нашёл. Всё время находились сайты такие как: "Арматура и Сантехника", "Компания ARM-AUTO приглашает на работу", ООО "АРМЯНСКИЙ КОНЬЯК".....
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Jul 17 2007, 15:17
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jul 18 2007, 06:39
Сообщение #3


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() и по бесконечному циклу в нескольких потоках. Что касается нужности ОСи - "настоящие программисты пишут на фортране на любом языке". Если у вас когда-нибудь, пока программа крутится в цикле чего-либо ожидая, возникало желание в это время заставить программу сделать что-то еще - ОСь бы помогла сделать это легко и естественно - как только один поток захотел чего-то подождать - управление автоматически передается другим потокам. Или если у вас возникнет желание разделить программу на две "нити", которые выполняются параллельно - например одна измеряет и крутит моторы-клапана, а вторая через последовательный порт отвечает на запросы оператора - самое время почитать что-нибудь про ОСь.
Go to the top of the page
 
+Quote Post
Andy Great
сообщение Jul 18 2007, 07:17
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057



Цитата(AlexandrY @ Jul 18 2007, 09:39) *
Популярный нынче ARM Cortex (самый реальный, кстати, кандидат на замену AVR) вообще ни с кем из упомянутых не совместим.

Скажите, Александр, а есть уже впечатления от Кортесов? Насколько в кремнии все так же хорошо, как на бумаге?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


RSS Текстовая версия Сейчас: 1st August 2025 - 21:03
Рейтинг@Mail.ru


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