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

 
 
> Переход 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
 
Start new topic
Ответов
arm123
сообщение Oct 22 2009, 12:50
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 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
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 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
aaarrr
сообщение Oct 22 2009, 13:51
Сообщение #5


Гуру
******

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



Цитата(arm123 @ Oct 22 2009, 17:43) *
Но мне не понятно как мы её можем использовать попав уже в обработчик SWI? Это что получается нужно читать команду с которой мы перешли из памяти или как? Поясните пожалуйста.

Да, именно так. Вот, например, обработчик от ARM:
CODE

;;; Copyright ARM Ltd 1998. All rights reserved.

PRESERVE8
AREA SWI_Area, CODE, READONLY

EXPORT SWI_Handler
IMPORT C_SWI_Handler

T_bit EQU 0x20

SWI_Handler

STMFD sp!, {r0-r3, r12, lr} ; Store registers
MOV r1, sp ; Set pointer to parameters
MRS r0, spsr ; Get spsr
STMFD sp!, {r0, r3} ; Store spsr onto stack and another
; register to maintain 8-byte-aligned stack
TST r0, #T_bit ; Occurred in Thumb state?
LDRNEH r0, [lr,#-2] ; Yes: Load halfword and...
BICNE r0, r0, #0xFF00 ; ...extract comment field
LDREQ r0, [lr,#-4] ; No: Load word and...
BICEQ r0, r0, #0xFF000000 ; ...extract comment field

; r0 now contains SWI number
; r1 now contains pointer to stacked registers

BL C_SWI_Handler ; Call main part of handler
LDMFD sp!, {r0, r3} ; Get spsr from stack
MSR spsr_cf, r0 ; Restore spsr
LDMFD sp!, {r0-r3, r12, pc}^ ; Restore registers and return

END


Цитата(arm123 @ Oct 22 2009, 17:43) *
Правильно ли я трактовал? Вы бы не могли привести общие рекомендации когда нужгно использовать ARM а когда Thumb?

Нужно еще прибавить урезанность работы с immediate, методов адресации и т.п.
Я бы сказал, что всегда нужно работать в ARM.
Go to the top of the page
 
+Quote Post
arm123
сообщение Oct 25 2009, 07:10
Сообщение #6


Участник
*

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



Цитата(aaarrr @ Oct 22 2009, 17:51) *
Да, именно так. Вот, например, обработчик от ARM:

Кстати Вы очень часто приводите стандартные примеры от ARM. Но я их что-то нигде найти не могу, подскажите от куда вы их выдираете?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 25 2009, 08:44
Сообщение #7


Гуру
******

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



Цитата(arm123 @ Oct 25 2009, 10:10) *
...примеры от ARM

Все это добро, обычно с компиляторами идет, а от "ARM" это Keil, который давненько уже "ARM Company". Только особо не обольщайтесь, хоть и "Company", но исходники там больше "Студеческие".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 25 2009, 12:06
Сообщение #8


Гуру
******

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



Цитата(zltigo @ Oct 25 2009, 11:44) *
Все это добро, обычно с компиляторами идет, а от "ARM" это Keil, который давненько уже "ARM Company".

Если бы это был Keil, то я бы так и написал. Это добро из комплекта RVDS.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 25 2009, 15:21
Сообщение #9


Гуру
******

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



Цитата(aaarrr @ Oct 25 2009, 15:06) *
Если бы это был Keil, то я бы так и написал. Это добро из комплекта RVDS.

Да, а чей это там логотипчик на
http://www.keil.com/support/man/docs/armcc/armcc_pr01.htm
затесался smile.gif Да и сам сайт Keil. Все смешалось в доме Облонских..


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 25 2009, 16:42
Сообщение #10


Гуру
******

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



Цитата(zltigo @ Oct 25 2009, 18:21) *
Да, а чей это там логотипчик на
http://www.keil.com/support/man/docs/armcc/armcc_pr01.htm
затесался smile.gif Да и сам сайт Keil. Все смешалось в доме Облонских..

Ну и что? RealView Developer Suite и входящие в его состав RealView Compilation Tools - разработка именно ARM, Keil-то тут причем?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 25 2009, 18:52
Сообщение #11


Гуру
******

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



Цитата(aaarrr @ Oct 25 2009, 19:42) *
Keil-то тут причем?

При том,что на сегодняшний день Keil это подразделение ARM занимающееся всеми компиляторами принадлежащими ARM Company.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 25 2009, 19:07
Сообщение #12


Гуру
******

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



Цитата(zltigo @ Oct 25 2009, 21:52) *
При том,что на сегодняшний день Keil это подразделение ARM занимающееся всеми компиляторами принадлежащими ARM Company.

Так таки и всеми?

Keil делал и делает (да, теперь в составе ARM) только MDK - "попсовую" среду, ориентированную на МК, ради которой он и был куплен.
RVDS же существовал и существует как отдельный продукт.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Br.Misha   Переход AVR to ARM   Oct 12 2009, 11:54
- - Xenia   Цитата(Br.Misha @ Oct 12 2009, 15:54) Сна...   Oct 12 2009, 12:09
- - aaarrr   Цитата(Br.Misha @ Oct 12 2009, 15:54) ......   Oct 12 2009, 12:12
- - zltigo   Цитатапосоветуйте с чего начать Moderator С чтения...   Oct 12 2009, 12:28
- - Br.Misha   Большое спасибо всем кто ответил К сожалению AT32...   Oct 12 2009, 21:25
|- - zltigo   Цитата(Br.Misha @ Oct 12 2009, 23:25) Для...   Oct 12 2009, 21:50
|- - GetSmart   Цитата(zltigo @ Oct 13 2009, 03:50) Тогда...   Oct 12 2009, 23:30
|- - zltigo   Цитата(GetSmart @ Oct 13 2009, 01:30) Чел...   Oct 13 2009, 08:55
- - Br.Misha   zltigo, какой та спецконтролер граф дисплея мне не...   Oct 13 2009, 12:58
|- - zltigo   Цитата(Br.Misha @ Oct 13 2009, 15:58) что...   Oct 13 2009, 13:15
- - Dog Pawlowa   Цитата(Br.Misha @ Oct 12 2009, 14:54) Под...   Oct 13 2009, 18:19
|- - zltigo   Цитата(Dog Pawlowa @ Oct 13 2009, 21:19) ...   Oct 13 2009, 18:45
|- - Сергей Борщ   Цитата(aaarrr @ Oct 22 2009, 16:51) Я бы ...   Oct 22 2009, 14:15
|- - arm123   Цитата(aaarrr @ Oct 22 2009, 16:51) Я бы ...   Oct 22 2009, 14:16
||- - zltigo   Цитата(arm123 @ Oct 22 2009, 17:16) Навер...   Oct 22 2009, 14:26
|||- - arm123   Цитата(zltigo @ Oct 22 2009, 17:26) Это ч...   Oct 22 2009, 15:59
|||- - aaarrr   Цитата(arm123 @ Oct 22 2009, 19:59) Давно...   Oct 22 2009, 16:10
||- - aaarrr   Цитата(arm123 @ Oct 22 2009, 18:16) Навер...   Oct 22 2009, 14:27
|- - zltigo   Цитата(aaarrr @ Oct 25 2009, 15:06) Если ...   Oct 25 2009, 19:36
|- - aaarrr   Цитата(zltigo @ Oct 25 2009, 22:36) Что-т...   Oct 25 2009, 19:43
- - arm123   Я понял лучше всего использовать uint32_t и тому п...   Oct 22 2009, 17:20
|- - aaarrr   Цитата(arm123 @ Oct 22 2009, 21:20) И это...   Oct 22 2009, 17:26
|- - zltigo   Цитата(arm123 @ Oct 22 2009, 20:20) но вс...   Oct 22 2009, 17:38
- - arm123   2zltigo, А есть где-нибудь просторах интернета исх...   Oct 25 2009, 09:01
|- - zltigo   Цитата(arm123 @ Oct 25 2009, 12:01) 2zlti...   Oct 25 2009, 10:10
|- - Genadi Zawidowski   Цитата(arm123 @ Oct 25 2009, 13:01) 2zlti...   Oct 25 2009, 17:17
|- - zltigo   Цитата(Genadi Zawidowski @ Oct 25 2009, 20...   Oct 25 2009, 19:58
|- - aaarrr   Цитата(zltigo @ Oct 25 2009, 22:58) таког...   Oct 25 2009, 20:04
|- - Genadi Zawidowski   Цитата(zltigo @ Oct 25 2009, 23:58) Не пр...   Oct 25 2009, 20:51
|- - aaarrr   Цитата(Genadi Zawidowski @ Oct 25 2009, 23...   Oct 25 2009, 21:02
|- - zltigo   Цитата(aaarrr @ Oct 26 2009, 00:02) Да, е...   Oct 25 2009, 21:05
|- - aaarrr   Цитата(zltigo @ Oct 26 2009, 00:05) Неуже...   Oct 25 2009, 21:06
- - Genadi Zawidowski   Если бы вы, как внимательные читатели, не обратили...   Oct 25 2009, 21:16
- - Br.Misha   Хай! Я купил себе три STM32: две STM32F100C8T6...   May 9 2011, 09:28
- - aaarrr   Я бы советовал избегать любых визардов как чумы.   May 9 2011, 12:18
- - Br.Misha   Ок, тогда визард отпадает. Почти уверен что дальше...   May 9 2011, 20:51
|- - Artem_Petrik   Цитата(Br.Misha @ May 9 2011, 23:51) Тут ...   May 10 2011, 16:48
- - Br.Misha   не нашел дискавери, заказал на ибее вот такую штук...   May 17 2011, 23:54
- - Br.Misha   дня 4 назад пришла та отладочная плата. Начал учит...   May 29 2011, 21:23
- - aaarrr   Цитата(Br.Misha @ May 30 2011, 01:23) На ...   May 29 2011, 21:49


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

 


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


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