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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Переход AVR to ARM, посоветуйте с чего начать:)
Br.Misha
сообщение Oct 12 2009, 11:54
Сообщение #1


Местный
***

Группа: Validating
Сообщений: 253
Регистрация: 21-12-08
Пользователь №: 42 646



Здраствуйте!
Вобщем давно уже я програмлю AVR и с недавнего времени мне стало не хватать ресурсов. Наиболее мне не нравиться их скорость, очень мала для некоторых задач(в последнее время я стал юзать цветные граф.дисплеи, ММС и т.д.). Поэтому теперь хочу перейти на ARM.
Через пару месяцев я хочу разработать один девайс в котором мне нада заюзать граф.дисплей, ИК связь, ММС с FAT16/32 (я хз как на ARM но на AVR FAT очень сильно жрет ресурсы МК) и ещё желательно USB (хотя бы 1.0) ну и всё это нада будет сделать с батарейным питанием от литий-ионной батарейки на 3.6V.
Сначала я смотрел на AT91SAM но они были очень дорогие а потом увидел LPC21** и они мне очень понравились(особенно их цена).
Подойдет ли LPC для моего проекта? еси да, то напишите пожалуйста какую литературу мне нада почитать и какой компил использовать.

Заранее спасиба!

Сообщение отредактировал Br.Misha - Oct 12 2009, 12:00
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 12 2009, 12:09
Сообщение #2


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Br.Misha @ Oct 12 2009, 15:54) *
Сначала я смотрел на AT91SAM но они были очень дорогие а потом увидел LPC21** и они мне очень понравились(особенно их цена).


А какая у них цена? Может быть вам взглянуть на платформу AVR32, раз уж вы давно на AVR программите? AT32uc3A**** - самое оно, если вам Linux под микроконтролером запускать не надо. Предельно экономичен и многфункционален, и USB 2.0 у него есть, и даже Ethernet. А цена примерно того же порядка, как у старших моделей AVR8. А станет тесно и там, то всегда можно перейти на AT32ap7, которые с ним совместимы.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 12 2009, 12:12
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Br.Misha @ Oct 12 2009, 15:54) *
...а потом увидел LPC21** и они мне очень понравились(особенно их цена).

Лучше посмотрите 23 и 24 - должны понравится еще сильнее.

Цитата(Br.Misha @ Oct 12 2009, 15:54) *
Подойдет ли LPC для моего проекта? еси да, то напишите пожалуйста какую литературу мне нада почитать и какой компил использовать.

ИМХО, обязательная литература:
- ARM7TDMI Technical Reference Manual
- User Manual на выбранный кристалл
- Technical Reference Manual на VIC
Пункты 1 и 3 доступны на arm.com
Без прочтения данной литературы неизбежно будут вопросы по работе прерываний.

Компилятор - какой нравится. Если привыкли к IAR'у - используйте его, если нет - посмотрите Keil.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 12 2009, 12:28
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата
посоветуйте с чего начатьsmile.gif

Moderator
С чтения ветки для начинающих. Тему перенес. Впредь темы с избитыми вопросами размещенные где попало будут удаляться.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Br.Misha
сообщение Oct 12 2009, 21:25
Сообщение #5


Местный
***

Группа: Validating
Сообщений: 253
Регистрация: 21-12-08
Пользователь №: 42 646



Большое спасибо всем кто ответилsmile.gif

К сожалению AT32 очень дорогие(самая дешевая стоет 105 грн) и в магазине тока под заказ не менее чем 10 шт.
У LPC23 очень много ног, минимум 100. Хотя я хз для чего они предназначены но врятле они мне пригодяться, самый дешевый (LPC2364FBD100) 55 грн.
А вот еси посмотреть на LPC21 то там самый простой LPC2101FBD48 и стоет 30 грн и у него 44 ноги, я думаю что для меня этого достаточно.
Для меня главное - СКОРОСТЬ
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 12 2009, 21:50
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Br.Misha @ Oct 12 2009, 23:25) *
Для меня главное - СКОРОСТЬ

Тогда зачем было нужно поминать всуе
Цитата
хочу разработать один девайс в котором мне нада заюзать граф.дисплей, ММС и т.д.

Контроллеров которых у 21xx нет.
Цитата
Хотя я хз для чего они предназначены но врятле они мне пригодяться

Обалдеть sad.gif
И поле этого
Цитата
я думаю что для меня этого достаточно.

sad.gif Детский сад какой-то...


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Oct 12 2009, 23:30
Сообщение #7


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Oct 13 2009, 03:50) *
Тогда зачем было нужно поминать всуе

Попробую предположить. Чел хочет начать с "эконом-класса", а уже когда "прижмёт" то воспользоваться наворотами 23хх/24хх. Там минимум изменений потребуется.

Сообщение отредактировал GetSmart - Oct 12 2009, 23:31


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 13 2009, 08:55
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(GetSmart @ Oct 13 2009, 01:30) *
Чел хочет...

Полагаю, что просто банальное "радиолюбительство" со всеми вытекающими последствиями.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Br.Misha
сообщение Oct 13 2009, 12:58
Сообщение #9


Местный
***

Группа: Validating
Сообщений: 253
Регистрация: 21-12-08
Пользователь №: 42 646



zltigo, какой та спецконтролер граф дисплея мне не нужен потому что на этих дисплеях обычный SPI интерфейс
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 13 2009, 13:15
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Br.Misha @ Oct 13 2009, 15:58) *
что на этих дисплеях

от мобильников из мусорника
Цитата
обычный SPI интерфейс

И MMC карточку где-то нашел, о о существовании SD и контроллере Вы не подозреваете..... Вот я и говорю - радиолюбительство. Совсем другие "критерии" оценки и об этом нужно обязательно упоминать с самого начала, иначе просто пустая трата времени.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Oct 13 2009, 18:19
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Br.Misha @ Oct 12 2009, 14:54) *
Подойдет ли LPC для моего проекта?

Для какого проекта, браток?
А то модераторы нервничают wink.gif
SPI для ЖКИ, SPI для SD-card, UARTс IrDA, USB device... Ффсе?
Память внутренняя.
STM32 гляньте, один из самых дешевых контроллеров ARM.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 13 2009, 18:45
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Dog Pawlowa @ Oct 13 2009, 21:19) *
UARTс IrDA

Которого, кстати, тоже у 21xx нет в отличие от 23/24xx. Для SD SPI тоже не нативный интерфейс. Про использование дисплеев от старинных мобилок вместо нормальных LCD подключаемых набортным LCD контролерам тоже уже писал. Но это все это видимо из разряда
Цитата
хз для чего они предназначены но врятле они мне пригодяться


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
arm123
сообщение Oct 22 2009, 12:50
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 22-10-09
Пользователь №: 53 141



В это теме задавались вопросы исключительно по выбору производителей микроконтроллеров с архитектурой ARM.
Но я хочу задать несколько конкретных вопросов по самой архитектуре.
Прочитал я ARM7TDMI Technical Reference Manual. Вроде все понятно за исключение некоторых нюансов. Так начнем с исключительных ситуаций.
Аварийные ситуации. Насколько я понял возникает в зависимости от линии ABORT. Но вот совсем непонятно применение данной искл. ситуации. В документе описывается пример с виртуальной памятью, но если чесно перечитывал 5 раз, ничего не понял вообще, не могли бы вы обьяснить тот пример более по-простому? Ну и если можно привести ещё парочку промеров, где можно удачно применять аварийные ситуации?
Как я понял они есть двух видов: аварийная предварительная выборка и аварийны данные. Я вообще не нашел в документе где описывается различие между ними. Не обьясните в чем между ними разница? И зачем они возникают.

Программные прерывание. Очень хорошо понял зачем они применяются благодаря объяснению: ТЫЦ
Но я так и не поня как процессор попадает в это состояние? И что мне нужно в кде написать что бы попасть в это прерывание?

И ещё вопрос: команды thunb выполняются медленнее? Правильно ли это? И ещё какие минусы применения thumb ещё наблюдаются?

Спасибо.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 22 2009, 13:01
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(arm123 @ Oct 22 2009, 16:50) *
Ну и если можно привести ещё парочку промеров, где можно удачно применять аварийные ситуации?

"Удачно применить" их можно разве что при отладке - узнать, например, где процессор обратился по невыровненному адресу или к несуществующей памяти.

Цитата(arm123 @ Oct 22 2009, 16:50) *
Как я понял они есть двух видов: аварийная предварительная выборка и аварийны данные. Я вообще не нашел в документе где описывается различие между ними. Не обьясните в чем между ними разница? И зачем они возникают.

Prefetch Abort - исключение, возникающее при попытке ядра прочитать инструкцию, Data Abort - при попытке прочитать или записать данные.

Вообще же, так как сигнал ABORT является внешним, то ситуации, в которых он генерируются, зависят от конкретной реализации контроллера памяти и отличаются у разных производителей.

Цитата(arm123 @ Oct 22 2009, 16:50) *
Программные прерывание. Очень хорошо понял зачем они применяются благодаря объяснению: ТЫЦ
Но я так и не поня как процессор попадает в это состояние? И что мне нужно в кде написать что бы попасть в это прерывание?

Попадает по команде SWI. Компиляторы, как правило, предоставляют обертку, позволяющую оформить SWI как вызов:
Код
__swi int func(int, int);


Цитата(arm123 @ Oct 22 2009, 16:50) *
И ещё вопрос: команды thunb выполняются медленнее? Правильно ли это? И ещё какие минусы применения thumb ещё наблюдаются?

Thumb - это всего лишь метод упаковки команд, на скорость выполнения он не влияет. А вот на скорость выполнения программы в целом - да, влияет, и не в лучшую сторону.
Учитывая постоянно растущий объем доступной на кристалле памяти, использование Thumb представляется все менее целесообразным.
Go to the top of the page
 
+Quote Post
arm123
сообщение Oct 22 2009, 13:43
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 22-10-09
Пользователь №: 53 141



Цитата(aaarrr @ Oct 22 2009, 16:01) *
Попадает по команде SWI. Компиляторы, как правило, предоставляют обертку, позволяющую оформить SWI как вызов

Спасибо, я все понял не понятно одно. Вот есть основная программа и обработчик swi.
В обработчик мы попадаем как swi 14, к примеру. 14 находится в поле команты как констанка, которая игнорируется процессором. Но мне не понятно как мы её можем использовать попав уже в обработчик SWI? Это что получается нужно читать команду с которой мы перешли из памяти или как? Поясните пожалуйста.


А скорость при Thumb попадает из-за того что компилятор не может оптимально выстраивать конструкции, например я вычитал что в режиме thumb процессор только инструкции перехода могут выполнятся по условию.
Получается конструкцию: если (условие) то Операция1 иначе Операция1
в режиме ARM можно выполнить так:
1. Вычислить условие и поставить Флаг1 по результатам вычисления
2. Выполнить Операция1 при условии выставленного Флаг1
3. Выполнить Операция2 при условии невыставленного Флаг1

а в режиме Thumb мы как и в других системах должны использовать привычную для x86 конструкцию:

1. Вычислить условие
2. Если условие выполнено, то идти к 5
3. Выполнить Операция1
4. Идти к 6
5. Выполнить Операция2
6. …


Получается в режиме ARM код лишен одного условного и одного безусловного перехода, которые обычно больно бьют по производительности конвейерных архитектур.

Правильно ли я трактовал? Вы бы не могли привести общие рекомендации когда нужгно использовать ARM а когда Thumb?
Go to the top of the page
 
+Quote Post

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

 


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


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