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

 
 
> Пара вопросов недают покоя, касательно 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
AlexandrY
сообщение Jul 18 2007, 16:46
Сообщение #5


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" (надеюсь это имя ещё не занято) - свой ГУЙ, многозадачность, аудио/видео, простятцкие игры, оффисные приложения и т.д. Сложно ли вообще всё это сделать?
Go to the top of the page
 
+Quote Post
Andy Great
сообщение Jul 19 2007, 06:53
Сообщение #6


Знающий
****

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



Цитата(AlexandrY @ Jul 18 2007, 19:46) *
Живых еще не пробовал.
В общем случае не сложно, но при этом будет очень дорого.
Посмотрите что могут 2-3х летней давности мобильники. Большинство было сделано на ARM7
Объем кода при этом у них достигал 5-8 МБайт.
Написать столько все самому нереально, но можно купить.

Чур меня! У меня не настолько большие проекты, даже в перспективе. Может кто уже пробовал живые? Ау!
Go to the top of the page
 
+Quote Post
xyzzy
сообщение Jul 20 2007, 00:38
Сообщение #7


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

Группа: Свой
Сообщений: 95
Регистрация: 10-04-05
Пользователь №: 4 003



Цитата(Andy Great @ Jul 18 2007, 23:53) *
Может кто уже пробовал живые? Ау!


Намедни взял вот эту платку на LM3S6965:
http://www.luminarymicro.com/products/lm3s...uation_kit.html
http://www.luminarymicro.com/products/6900s.html

Это в общем-то первый ARM, с которым вплотную столкнулся, так что пока, что вижу - то пою и на полную картину мира не претендую. smile.gif

Что понравилось (сами чипы от Luminary и тех поддержка)
* периферия и документация вглядят довольно вразумительно
* Thumb-2 - все прелести компактности Thumb при скорости не-thumb.
http://www.arm.com/pdfs/Thumb-2%20Core%20T...0-%20Final4.pdf
* Luminary нахаляву дает исходники драйверов ко всей периферии и они даже работают. beer.gif
* минимальный геморрой с прерываниями. Вектор сразу указывает на C-функцию.
проц сам сохраняет/восстанавливает контекст когда надо, причем сделано это,
похоже, с толком.
* Есть GCC порт с поддержкой Thumb-2 (тащить с couderoucery.com)
* Есть поддержка в FreeRTOS.
* Можно отлаживаться и шить флэш через OpenOCD
* младшие модели - и впрямь, похоже, могут составить конкуренцию AVR. http://www.luminarymicro.com/products/100_...es_devices.html

Чего не хватает:
* У Luminary yе видать модели с поддержкой внешней памяти. 64К SRAM и 256К флэша мне маловато.


--------------------
--xyzzy
Go to the top of the page
 
+Quote Post

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


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

 


RSS Текстовая версия Сейчас: 2nd August 2025 - 23:45
Рейтинг@Mail.ru


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