Перейти к содержанию
    

Хочу попробовать ARM, подскажите, что для этого нужно?

Хорошо, всем спасибо за советы.

Решил заказывать всё таки плату на Атмеле - SAM7-P256 от Олимекса.

Со временем надо будет что-то типа Вигглера.

А все эти дебаггеры от Вигглера и МТ-Линка до ULink работают со всеми ARM, то есть и к AT91SAM7S256 будут подходить?

 

ЗЫ: купил книгу "Микроконтроллеры ARM7 семейств LPC2000 компании Philips. Вводный курс" :)

Буду осваивать.

 

ЗЗЫ: интересно, почему не выпускают эти контроллеры в PLCC корпусах? Было-бы удобно - в панельку воткнул и порядок!

Изменено пользователем sonycman

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А все эти дебаггеры от Вигглера и МТ-Линка до ULink работают со всеми ARM, то есть и к AT91SAM7S256 будут подходить?
Да, кроме желтых (в прямом смысле :) ) J-Link которые идут в составе ИАРовских KickStart. Эти работают только с процессорами под которые кикстарт заточен.

 

ЗЗЫ: интересно, почему не выпускают эти контроллеры в PLCC корпусах? Было-бы удобно - в панельку воткнул и порядок!
А разве еще что-то выпускается в PLCC? Огромный копус, тяжелый, куча пластмассы. В общем дороже бы они были в PLCC, да и надежность этих панелек не 100%. Панелька предполагает необходимость снимать микросхемы для каких-то целей, например для программирования. А сейчас практически все процессоры имеют внутрисхемное программирование и необходимость в отсоединении от платы пропала.

 

С QFP тоже ведь никаких проблем - макетку достал, кристалл положил, две минуты махания паяльником и готово.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати если посмотреть на даташит lpc2103 можно найти вариант PLCC корпуса, 17х17 по-моему. :) только вот существует ли такое в рироде сказать сложно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Понятно, значит устарели PLCC...

 

Да, кроме желтых (в прямом смысле :) ) J-Link которые идут в составе ИАРовских KickStart. Эти работают только с процессорами под которые кикстарт заточен.

 

С QFP тоже ведь никаких проблем - макетку достал, кристалл положил, две минуты махания паяльником и готово.

 

Ну я если и буду брать дебаггер - то, наверное, или простой ARM-JTAG за 600 руб или MT-LINK.

А может и сам соберу первый, там ведь только несколько буферов...

 

Запаивать TQFP или LQFP не сложно, а вот выпаивать (мало-ли) сложнее.

Нету у меня квадратной насадки на фен.

Изменено пользователем sonycman

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Запаивать TQFP или LQFP не сложно, а вот выпаивать (мало-ли) сложнее.

Нету у меня квадратной насадки на фен.

Я выпаиваю вообще без насадки. Ну а если точно "в морг" то четыре движения обойным ножом вдоль корпуса и паяльником собрать остатки ножек. Но это уже тема для другого форума...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ, помогите, где можно скачать нормальную версию uVision для ARM? Или, может, кряк у кого есть для ознакомительной версии с их сайта?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ, помогите, где можно скачать нормальную версию uVision для ARM? Или, может, кряк у кого есть для ознакомительной версии с их сайта?

Уважаемый sonycman, я прочитал, что вы недавно приобрели книгу "Микроконтроллеры ARM7 семейств LPC2000 компании Philips. Вводный курс". Я сам неделю назад скачал её в inete в djvu (отличное качество). :a14: ARM изучаю недавно, облазил пол инета, и по моему мнению, самоучителя, лучше чем эта книга, для новичков нет. Есть одно но. Нет диска с примерами программ :angry2: . А без примеров сильно теряется смысл прочтения. Не могли бы вы выслать примеры мне на мыло plies? :cheers: (q9собакаtut.by).

По поводу uVision я сделал так (вам тоже советую). Во первых скачать среду (покрасней мере последнюю версию 3.34), можно только с keil.com (в других местах искал не нашёл). Для этого просто заполните форму. Я обычно пишу Name: Fox, Surname:Malder, ну и дальше в это виде ;) . Мыло указать реальное. Они СРАЗУ (а не как некоторые…) высылают прямой линк на среду. Среда весит ~63M. Если скорость ~50KBod/s не советую качать из дома. Я два раза закачивал Opero-й (по 7 часов) чуть не одурел!!! и оба раза закачивалось криво!!! :smile3046: Потом пошел в инет-кафе и за 40 минут закачал без проблем (отдал за всё 0,5$). :rolleyes: Среда Trial-ая. Полазив в инете нашёл генератор ключей. Вставил сгенерированный ключ… и о чудо Trial превратился в Full version до 2029 года. :tongue: :wub: :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, есть ещё вопросы к уважаемым участникам форума. В uVision для ARM можно устанавливать три вида компилятора. RealViwe, Keil, GNU. Про GNU слышал только отрицательнее отзывы (в основном по размеру кода и быстродействию, на некоторых сайтах были описаны почти 10 кратное преимущества вышеописанных компиляторов по сравнению с GNU). Хотя я понимаю, что это сильно зависит от версии компилятора и используемых библиотек (например, float оптимизированная), но неприятный осадок остался :( . В скаченной среде в папке BIN , почему-то есть только компилятор RealView. Про него читал что это родной компилятор разработанный компанией ARM, которая вроде бы купила компанию Keil? (если я не прав поправьте, а то от перегруза информацией стек уже переполнился в мозгах :wacko: )И он вроде как считается наиболее качественным и типа является основным для среды uVision for ARM. Однако на одном форуме прочитал, что кто-то компилировал одну и туже программу в Keil и RealViwe и код в кеил пулучился 400 байт, а в RealViwe 1K. Что наводит на смутные сомнения :unsure: . В книге про PHILIPS контроллеры, все примеры используется Keil компилятор.

Из сказанного выше сформулирую вопросы:

1. Где скачать компилятор keil. Конкретно CA.exe AA.exe LA.exe. Искал, не нашёл :smile3046:

2. Если преимущества у какого-нибудь из этих двух компиляторов.

3. Почему _tutmb _arm __task директивы не понимает компилятор RealViwe. Или есть другие способы обозначить подпрограмму как задачу, что бы компилятор не вставлял лишнее сохранение контекста, или обозначить функцию как tumb. Еслиже подобная настройка отпала за ненадобностью то обясните почему?

4. Как в RelaViwe сгенерировать .ELF file, чтобы вставить его в отладку в proteus. Если никак то может ли это сделать Keil компилятор?

 

Заранее выражаю свой глубочайший :a14: ответившим. Если что-то не так не смейтесь. ARM-ы я изучаю около недели :unsure: .

 

Ну и на последок (извините за наглость). Если кто знает ссылки на русские-аккаунты по ARM. В частности интересует описание регистров Philips контроллеров. А то читаешь их убогий datashet (английский более мнение знаю, со словарем :biggrin: ) и думаешь толи лыжи не едут… :wacko: И ещё, пытаюсь разобраться с прерываниями. Есть куча регистров типа VICxxx но в даташите (долгих лет жизни его писателям :maniac: ) пару скудных строк про эти регистры. Объясните VICIntEnable что включает? Разрешает прерывание каждой ноги порта A, что ли? Не мог бы кто-нибудь привести пример инит- файла с комментариями. Типа запрещаем прерывания, для этого такой регистр так, другой регистр сяк. Инициализируем порты. Инициализируем прерывания и т.д. :a14: :a14: :a14:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2Alex_inventor

Хорошо, завтра взгляну на диск от книги и намылю :)

Я тоже только несколько дней изучаю ARM, да и по C++ у меня только общие знания. Вот буду подтягиваться :)

 

Микровижн скачал и крякнул, всё ОК, спасибо за совет!

 

По компилятору Keil CARM - тоже хотелось бы сравнить его с RV.

 

Сейчас вот смотрю на стартовый файл проекта для AT91SAM7S (который в комплекте идёт) и никак не могу понять, что за команда такая - ADR? Вот кусок кода на ассемблере (во второй строке):

IF :DEF:RAM_INTVEC

ADR R8, Vectors ; Source

LDR R9, =RAM_BASE ; Destination

LDMIA R8!, {R0-R7}

 

В системе команд ARM7TDMI ADR вроде нет. Так что это такое?

Компилиться она вот во что: SUB R8, PC, #0x000000B8.

Просто LDR вместо неё поставить не получается.

Объясните, пожалуйста :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ, помогите, где можно скачать нормальную версию uVision для ARM? Или, может, кряк у кого есть для ознакомительной версии с их сайта?

Есть одно но. Нет диска с примерами программ :angry2: . А без примеров сильно теряется смысл прочтения. Не могли бы вы выслать примеры мне на мыло plies? :cheers: (q9собакаtut.by).

Кажется это они лежат на местном ФыТыПы.

Про GNU слышал только отрицательнее отзывы (в основном по размеру кода и быстродействию, на некоторых сайтах были описаны почти 10 кратное преимущества вышеописанных компиляторов по сравнению с GNU). Хотя я понимаю, что это сильно зависит от версии компилятора и используемых библиотек (например, float оптимизированная), но неприятный осадок остался :( .

Да что Вы ... :biggrin: А если бы на тех "некоторых сайтах" написали что разрыв в 100 раз, то тоже следовало бы поверить??? Вы никогда не задумывались о том, что для того чтобы напарить что-либо платное, когда рядом лежит бесплатное уже недостаточно хвалить, надо запугивать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сейчас вот смотрю на стартовый файл проекта для AT91SAM7S (который в комплекте идёт) и никак не могу понять, что за команда такая - ADR? Вот кусок кода на ассемблере (во второй строке):

IF :DEF:RAM_INTVEC

ADR R8, Vectors ; Source

LDR R9, =RAM_BASE ; Destination

LDMIA R8!, {R0-R7}

 

В системе команд ARM7TDMI ADR вроде нет. Так что это такое?

Компилиться она вот во что: SUB R8, PC, #0x000000B8.

Просто LDR вместо неё поставить не получается.

Объясните, пожалуйста :)

 

В поставке KEIL'а есть файл <..>\ARM\Hlp\RV_asm.pdf "RealView Compilation Tools Version 3.0 for μVision Assembler Guide"

Открываем его и в разделе "2.6.1 Direct loading with ADR and ADRL" читаем:

The ADR and ADRL pseudo-instructions enable you to generate an address, within a certain
range, without performing a data load. ADR and ADRL accept a program-relative
expression, that is, a label with an optional offset where the address of the label is
relative to the current PC.

и чуть ниже

The assembler converts an ADR rn,label pseudo-instruction by generating:
• a single ADD or SUB instruction that loads the address, if it is in range
• an error message if the address cannot be reached in a single instruction.

 

Т.е. ADR - это не команда ARM7TDMI, а просто инструкция ассемблера, облегчающая процесс разработки :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В каталоге BIN лежит собственно Кейловский компилер. RV-компилер лежит в BIN30. Попробуйте в опциях среды выбрать другой компилер (или открыть другой пример, они есть для 3х компилеров в разных ветках: в корневой для собссно Кейла, RV30 и GNU - соответственно, подкаталоги Boards для конкретных плат, Examples - общие). А вообще, читайте доку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Т.е. ADR - это не команда ARM7TDMI, а просто инструкция ассемблера, облегчающая процесс разработки :)

 

Спасибо большое, теперь понял :)

Я уже догадывался, что это макрос какой-то...

 

А оболочка у Кейла удобная, почти как у MS VC++ :)

 

2Alex_inventor

Архив с примерами программ намылил :)

Изменено пользователем sonycman

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2Andy Great:

Да вы правы насчёт размещения компилятора. Действительно BIN32. Однако при установке keil компилятора, среда явно требует файлы CA.exe AA.exe LA.exe. Методом обычного поиска таких файлов не обнаружено. В папке BIN лежат только .dll. В среде при выборе компилятора нужно указать адрес папки с компилятором. Так вот устанавливал различные адреса и BIN, и BIN32. Во всех случаях результат один :( :

Build target 'Target 1'

assembling Startup.s...

--- Error: can't execute 'C:\Program Files\Keil\ARM\BIN\AA'

Target not created

Впрочем, это и понятно. Нужны конкретные вышеописанные файлы. Если у кого есть, может, кто выложит на форуме? Или по мылу (q9собакаtut.by). И опять же повторяю вопрос, а стоит ли его использовать, раз уже в среде при скачивании его нет? Устарел что ли? Или его нет потому, что среда изначально Trial была?

2DRUID3:

По поводу качества кода компиляторов я спорить не буду, по причине других оценок к подходу их выбора. Для меня главное удобство в работе. К примеру для AVR пользуюсь CodeVision, хотя почти на всех сайтах “поносят” его, и восхваляют IAR. Но, попробовав поработать с IAR :smile3046: , понял, что уже не могу отказаться и от стартового инициализатора, и от типа bin, и от helpa, и от того что, я в нём уже как рыба в воде. Короче дело привязанности. A у последних версий код генерируется даже очень “ничего”.

Приведу страницу из книги "сравнение ARM компиляторов", решайте сами:

 

Keil ищу в основном потому, что все примеры в книге написаны для него. Т.е. опять же для удобства. Что бы мне, как новичку, не пришлось решать мелкие проблемы совместимости разных компиляторов. Да и судя по тестам, он почти самый лучший (что условно).

На последок, дорогие участники форума, помогите страждущим кто, сколько может, кто кодом (простым и с комментариями), кто русским help на контроллер, можно и на буржуйском только понятным, шютка!!! :biggrin::biggrin::biggrin: Интересуют, как устроены прерывания серии LPC2xxx (в книге что-то не очень понятно). Всем :a14:

post-24744-1169732807_thumb.jpg

Изменено пользователем Alex_inventor

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...