Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: c чего начинать?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
shide_3
приветствую. начал осваивать АРМ. скачал IAR. решил поразбирать встроенные примеры для отладочных плат. первой жертвой выбрал USB Mouse.
почитал даташит, вроде все понятно, описание регистров тоже. но вот эти готовые проекты без поллитра не разбереш. много-много готовых всяких функций, дофига файлов в проекте, usb_hw, usb_t9 и т .п. Хватает меня на 5 минут не больше, дальше мозг просто отключается. может, я просто не по правильному пути пошел? реално ли создать свой проект без разбора этой байды? у кого какой опыт хотелось бы узнать. очень тяжко разбираться в чем-то готовом, особенно когда мало комментариев.
ни книжек ни мануалов нормальных то нигде и нет!
премного благодарен за любую помощь
toweroff
Чего сразу в дебри USB лезть? поразбирайтесь пока с портами, таймерами, периферией набортной... поморгайте светодиодом, подключите что-нибудь по SPI, I2C
а потом потихоньку врубайтесь в USB со всеми ее дескрипторами, интерфейсами и прочей..
shide_3
Цитата(toweroff @ Jun 13 2012, 11:13) *
Чего сразу в дебри USB лезть? поразбирайтесь пока с портами, таймерами, периферией набортной... поморгайте светодиодом, подключите что-нибудь по SPI, I2C
а потом потихоньку врубайтесь в USB со всеми ее дескрипторами, интерфейсами и прочей..

тут вопрос даже не в USB, а определиться с тем КАК разбираться. какие из этих библиотек функций могут оказаться полезными?
с общей периферией я вроде знаком, раньше работал с AVR.
кстати, еще не мгу понять , как обозначается в IAR обработчик прерывания? в CodeVisionAVR помнится быо так: interrupt (вектор) {тело}
mempfis_
Цитата(shide_3 @ Jun 13 2012, 11:45) *
тут вопрос даже не в USB, а определиться с тем КАК разбираться. какие из этих библиотек функций могут оказаться полезными?
с общей периферией я вроде знаком, раньше работал с AVR.
кстати, еще не мгу понять , как обозначается в IAR обработчик прерывания? в CodeVisionAVR помнится быо так: interrupt (вектор) {тело}


ARM не AVR. По разнообразию внутренних регистров и битов настройки это всёравно что сравнивать кол-во деталей в игрушечной машинке и самолёте. Как Вам посоветовали - начните с простого - подёргайте ножкой. Потом разберитесь с PLL. Подёргайте ножкой в прерывании от таймера (разберётесь с таймером, VIC/NVIC). А там и за USB беритесь.
Обработчики в ARM7 обозначаются как __irq void isr_name(void) или __fiq. Или как в ARM7 LPC2xxx void isr_name(void). В CORTEX-M3 конкретные названия обработчиков void TMR0_IRQHandler (void).
shide_3
Цитата(toweroff @ Jun 13 2012, 11:13) *
Чего сразу в дебри USB лезть? поразбирайтесь пока с портами, таймерами, периферией набортной... поморгайте светодиодом, подключите что-нибудь по SPI, I2C
а потом потихоньку врубайтесь в USB со всеми ее дескрипторами, интерфейсами и прочей..

а как разбираться?надо отладочную плату раздобыть? в IAR как я понял не предусмотрен симулятор?
kovigor
Цитата(shide_3 @ Jun 14 2012, 16:17) *
а как разбираться?надо отладочную плату раздобыть? в IAR как я понял не предусмотрен симулятор?


Можно собрать самому, что я почти всегда и делаю. Для не очень больших ARM (и для микросхем не в BGA) довольно легко сделать такую плату самому. Если же нужен Линукс, то купите отладочную плату с предустановленным Линуксом. Ну и последнее. По моему скромному мнению, для старта гораздо предпочтительнее Keil, а не IAR ...
shide_3
Цитата(kovigor @ Jun 14 2012, 16:38) *
Можно собрать самому, что я почти всегда и делаю. Для не очень больших ARM (и для микросхем не в BGA) довольно легко сделать такую плату самому. Если же нужен Линукс, то купите отладочную плату с предустановленным Линуксом. Ну и последнее. По моему скромному мнению, для старта гораздо предпочтительнее Keil, а не IAR ...

все дело в том, что возможно в скором будущем подвернется место, там начальство уже купило ИАР, и скорей всего придется иметь дело с ЮСБи
kovigor
Цитата(shide_3 @ Jun 14 2012, 16:48) *
все дело в том, что возможно в скором будущем подвернется место, там начальство уже купило ИАР, и скорей всего придется иметь дело с ЮСБи


IAR - это вторично. Он немного сложнее в освоении, чем Keil, но разобраться можно и с ним. Сложнее разобраться в предметной области, в данном случае - в USB. Мой вам совет - если вы "далеко смотрите в будущее", то покупайте DevKit с предустановленным Линуксом. Почти наверняка он (Линукс) вам в скором времени потребуется ...
http://www.starterkit.ru
shide_3
Цитата(kovigor @ Jun 14 2012, 17:12) *
IAR - это вторично. Он немного сложнее в освоении, чем Keil, но разобраться можно и с ним. Сложнее разобраться в предметной области, в данном случае - в USB. Мой вам совет - если вы "далеко смотрите в будущее", то покупайте DevKit с предустановленным Линуксом. Почти наверняка он (Линукс) вам в скором времени потребуется ...
http://www.starterkit.ru

странная контора СтартерКит.. что-то там все подозрительно дешево. J-Link там 4000, в Терраэлектронике 10000 р. и платы дешевые страшно
похоже торгуют неликвидом чтоли
kovigor
Цитата(shide_3 @ Jun 14 2012, 17:44) *
странная контора СтартерКит.. что-то там все подозрительно дешево. J-Link там 4000, в Терраэлектронике 10000 р. и платы дешевые страшно
похоже торгуют неликвидом чтоли


Платы - их разработки. Потому и дешево. Покупали у них плату на AT91SAM9XE512 и остались довольны ...
shide_3
Цитата(kovigor @ Jun 14 2012, 17:49) *
Платы - их разработки. Потому и дешево. Покупали у них плату на AT91SAM9XE512 и остались довольны ...

допустим, а программаторы (J-link)?
kovigor
Цитата(shide_3 @ Jun 14 2012, 17:54) *
допустим, а программаторы (J-link)?


Не знаю. Я очень далек от маркетинговых проблем. Да и какая мне разница ? Продают дешево, и хорошо ...
toweroff
Цитата(shide_3 @ Jun 14 2012, 18:54) *
допустим, а программаторы (J-link)?

та же терра, похоже, закупает у них (стартеркита)
а так - можно и отсюда
Lotor
Цитата(shide_3 @ Jun 14 2012, 18:44) *
странная контора СтартерКит.. что-то там все подозрительно дешево. J-Link там 4000, в Терраэлектронике 10000 р. и платы дешевые страшно
похоже торгуют неликвидом чтоли

Улыбнуло. Терра такую наценку делает, что это должно быть подозрительно, а не адекватные цены стартеркита. Цены именно боле-менее адекватные, а не дешевые.
Не бойтесь, брал у них пару плат, jlink и altera blaster - проблема была только на одной плате, поменяли без вопросов.
shide_3
а в плане кристалла что легче осваивать (Atmel, NXP)?
смотрю, взять тот же USB, у всех NXP есть DMA, у Атмела он только на самых крутых чипах (samg45), да и регстров вроде меньше у атмела..
у STM вообще usb без dma
kovigor
Цитата(shide_3 @ Jun 15 2012, 11:39) *
а в плане кристалла что легче осваивать (Atmel, NXP)?
смотрю, взять тот же USB, у всех NXP есть DMA, у Атмела он только на самых крутых чипах (samg45), да и регстров вроде меньше у атмела..
у STM вообще usb без dma


Atmel и NXP по сложности освоения примерно одинаковы. Только берите плату с предустановленным Линуксом. STM в освоении заметно сложнее. Да и Линукс вы на нем не запустите, только ucLinux ...
Lotor
Цитата(kovigor @ Jun 15 2012, 14:49) *
Только берите плату с предустановленным Линуксом.

Не ради холивара, но Вы так активно агитируете за линукс, что отдает фанатизмом... sm.gif Новичкам имхо лучше начать с cortex'ов или классических 7 армов.
kovigor
Цитата(Lotor @ Jun 15 2012, 14:03) *
Не ради холивара, но Вы так активно агитируете за линукс, что отдает фанатизмом... sm.gif Новичкам имхо лучше начать с cortex'ов или классических 7 армов.


Вы меня не поняли. Я не агитирую за Линукс, ни в коем случае. Более того, множество задач решаются вообще без привлечения ОС Но я опираюсь на свой опыт и смотрю в будущее. Если человек будет заниматься АРМ, то рано или поздно его задачи достигнут такого уровня, что без ОС (Линукс, например) они в разумное время станут неразрешимыми. Поэтому я всего лишь навсего предлагаю взять отладочую плату "с запасом", ибо в будущем это может очень пригодиться. И пригодится почти наверняка.

С ARM7 начинал я сам, но это было лет 5 назад. После этого работал и с АРМ9, и с Кортексами. Сейчас осваиваю Линукс на Cortex-A8. Я считаю, что начинать с ARM7 вполне допустимо. Если есть желание или необходимость в будущем запустить ОС, то начать лучше все же как минимум с ARM9 ...
Lotor
Цитата(kovigor @ Jun 15 2012, 15:29) *
Вы меня не поняли. Я не агитирую за Линукс, ни в коем случае. Более того, множество задач решаются вообще без привлечения ОС Но я опираюсь на свой опыт и смотрю в будущее. Если человек будет заниматься АРМ, то рано или поздно его задачи достигнут такого уровня, что без ОС (Линукс, например) они в разумное время станут неразрешимыми. Поэтому я всего лишь навсего предлагаю взять отладочую плату "с запасом", ибо в будущем это может очень пригодиться. И пригодится почти наверняка.

С ARM7 начинал я сам, но это было лет 5 назад. После этого работал и с АРМ9, и с Кортексами. Сейчас осваиваю Линукс на Cortex-A8. Я считаю, что начинать с ARM7 вполне допустимо. Если есть желание или необходимость в будущем запустить ОС, то начать лучше все же как минимум с ARM9 ...

Вы всё верно говорите, просто плата "с запасом" с Линуксом может скрыть от начинающего важные базовые аспекты. Хотя опять-так все имхо.
А на счет будущего - никогда не угадаешь. sm.gif Я вот, например, еще год назад о nios ничего не знал, а сейчас жизнь заставляет заниматься PSoC.
kovigor
Цитата(Lotor @ Jun 15 2012, 14:54) *
Вы всё верно говорите, просто плата "с запасом" с Линуксом может скрыть от начинающего важные базовые аспекты. Хотя опять-так все имхо.


Не скроет. Можно ввобще ОС не грузить, даже U-Boot'ом не пользоваться, а просто грузить свое Standalone - приожение из Flash, что я и делал. А ОС начинать осваивать по мере необходимости. Т.е., человек ничем не рискует. Не нужен Линукс ? Ну и не надо, просто не грузим его, и все ...
mempfis_
Цитата(kovigor @ Jun 15 2012, 14:29) *
Если человек будет заниматься АРМ, то рано или поздно его задачи достигнут такого уровня, что без ОС (Линукс, например) они в разумное время станут неразрешимыми. Поэтому я всего лишь навсего предлагаю взять отладочую плату "с запасом", ибо в будущем это может очень пригодиться. И пригодится почти наверняка.

С ARM7 начинал я сам, но это было лет 5 назад. После этого работал и с АРМ9, и с Кортексами. Сейчас осваиваю Линукс на Cortex-A8. Я считаю, что начинать с ARM7 вполне допустимо. Если есть желание или необходимость в будущем запустить ОС, то начать лучше все же как минимум с ARM9 ...


Отладочная плата с запасом (ориентированая на Linux, ARM9) может оказаться тяжелой для освоения. ИМХО ARM7/CORTEX-M3 больше подходят для начального освоения - этому способствует более простая по сравнению с ARM9 структура процессора (но по сравнению с AVR всёравно довольно сложная), развитая переферия и достаточное кол-во примеров в сети. А когда у человека встанут задачи связанные с Linux, то тот кто эти задачи ставит сам предоставит нужные отладки или платы под рабочие проекты. По собственному опыту - надо было освоить AT91SAM7S - купили отладку, для LPC23xx, LPC17xx и STM32F100 - дали готовую плату. Когдато для старта покупал отладку с LPC2468. Поморгал светодиодом и забыл. Сам себе не придумал задачи которые можно былобы решить на ней. А вот когда пошёл работать, тогда были поставлены конкретные задачи с привязкой к конкретному процессору (первым был SAM7S, до него только AVR). Тогда и наметился некоторый вектор в освоении. GPIO, PLL, прерывания и таймеры, USART, наконец первая рабочая версия проекта.
Если выбирать ATMEL vs NXP то я отдаю предпочтение NXP. Ихни CORTEX-M3 LPC17xx оставили хорошие впечатления как по производительности, так и по сложности освоения. С ними приятнее работать чем с ARM7 LPC23xx или AT91SAM7S. STM32 пока не впечатлил из-за привязки к CMSIS (просто небыло времени разбираться с переферией).
В качестве компилятора использую IAR с самого начала. Да он сложнее чем KEIL в настройках, но по примерах легко можно во всём разобраться. Огромный плюс - подержка огромного кол-ва производителей и семейств процессоров.

haker_fox
QUOTE (shide_3 @ Jun 14 2012, 22:44) *
странная контора СтартерКит.. что-то там все подозрительно дешево. J-Link там 4000, в Терраэлектронике 10000 р. и платы дешевые страшно
похоже торгуют неликвидом чтоли

Вы нашу птичку не обижайте! rolleyes.gif
С 2007 у них покупал несколько плат. Все было в норме.

На счет дешевизны. Все относительно. Вы сравниваете с Террой. А почему с ней? Я вот помню одна деталька в терре стоила x рублей, а в чип-дипе - 1,5x. Это же не значит, что я должен брать ее в ЧД.

Более того, Терра является официальным дистрибьютером плат стартеркита. Отсюда и наценка.
Alexey K
Цитата
По моему скромному мнению, для старта гораздо предпочтительнее Keil


Полностью согласен и присоединяюсь.

Насчет Linux думаю, что это следующий шаг.

Starterkit - хорошая контора. Так что есть смысл присмотреться.
shide_3
Цитата(mempfis_ @ Jun 15 2012, 18:04) *
ИМХО ARM7/CORTEX-M3 больше подходят для начального освоения - этому способствует более простая по сравнению с ARM9 структура процессора

а обязательно разбираться в структуре процессора, чтобы программить МК на Си?
kovigor
Цитата(shide_3 @ Jun 18 2012, 10:31) *
а обязательно разбираться в структуре процессора, чтобы программить МК на Си?


Глубоко - нет. Но представление об архитектуре вы иметь обязаны, и даташит (или Reference Manual) прочесть также придется. Еще очень желательно базовое знание ассемблера для вашего МК (это поможет разбираться в содержимом Startup - файлов (.s - файлов)) ...

Кстати, про ARM7 очень хорошо (и по-русски) написано у Мартина Тревора. Во многом эти сведения приложимы и к ARM9 ...
mempfis_
Цитата(shide_3 @ Jun 18 2012, 10:31) *
а обязательно разбираться в структуре процессора, чтобы программить МК на Си?


Структуру процессора с которым работаеш всегда необходимо знать. Одно ядро (ARM7/9/CORTEX-M3) это не весь контроллер - там ещё достаточное кол-во переферии на борту бывает. Си не будет за вас разбираться с настройками таймеров, уартов, FLASH-акселераторов, DMA и т.д.

Как показала практика нет необходимости глубоко разбираться в самом ядре. Достаточно научиться подключать корректный стартап и разбираться в memory-map чтобы редактировать файл линкера под нужные процессоры, ну и для ARM7 понимать разницу в __arm __thumb __irq __fiq. Более важно понимать как работать с переферией.
Lotor
Еще добавлю про стартеркит, что примеры, идущие с их девайсами, подходят скорее для проверки исправности плат, но не для изучения. Так что начинающему придется самостоятельно адаптировать проекты, найденные в сети от других демоборд. Это полезно. =)
shide_3
Цитата(Lotor @ Jun 18 2012, 15:28) *
Так что начинающему придется самостоятельно адаптировать проекты, найденные в сети от других демоборд. Это полезно. =)

а про встроенные примеры IAR вы что можете сказать?

Цитата(mempfis_ @ Jun 15 2012, 18:04) *
Если выбирать ATMEL vs NXP то я отдаю предпочтение NXP.

я вот не пойму почему у атмела, к примеру sam9g45 usb device port 23 регистра, а у равного ему lpc3250 аж 38 регистров. значит lpc сложнее будет для освоения?
kovigor
Цитата(shide_3 @ Jun 18 2012, 16:48) *
а про встроенные примеры IAR вы что можете сказать?


Примеры, те, что я исследовал, вполне рабочие. Что от Кейла, что от ИАРа. Но напрямую использовать их код, скорее всего, не получится. Хотя бы уже потому, что они являются чисто учебными и обычно до совершенства не доводятся. Зато их можно и нужно использовать для обучения работы с подсистемами МК.


Цитата(shide_3 @ Jun 18 2012, 16:48) *
я вот не пойму почему у атмела, к примеру sam9g45 usb device port 23 регистра, а у равного ему lpc3250 аж 38 регистров. значит lpc сложнее будет для освоения?


Сложность примерно одинакова. В обоих случаях есть своя специфика. Просто USB-движки у LPC и ATMEL сделаны по-разному ...


Hamster1979
Цитата(shide_3 @ Jun 14 2012, 18:44) *
странная контора СтартерКит.. что-то там все подозрительно дешево. J-Link там 4000, в Терраэлектронике 10000 р. и платы дешевые страшно
похоже торгуют неликвидом чтоли

стартер кит продает JET-link собственного производства- это клон J-linka и нигде и никогда он 10 000 не стоил. Ребята находятся в ижевске, в элитане(там же в ижевске) покупают детали, насчет плат не знаю, сами все производят поэтому у них все и недорого.

Что касается с чего начать - ИМХО stm32 cortex M3/M4 - у ST Microelectronics есть все для этих процессоров для быстрого старта - библиотека переферии, демо проекты, операционки. И все проекты под несколько сред (IAR, Keil и другие). Демо плату лучше подбирать ту, что сразу поддерживается демо примерами от ST Microelectronics .
Dimoza
Для начинающих работать с STM32 может оказаться любопытной ссылка вот сюда:
http://www.emcu.it/STM32F4xx/STM32F4xx.html#Tutorial
Причём сайт вроде итальянский, а обучалки есть на русском.

P.S.: там по всем STM32 куча всего. Это лично мне именно по F4 была нужна инфа.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.