Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ARM9
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Zelepuk
Хочу написатьт программу под IAR простейшую для SAM9260. В даташите сказано что начальный встреный загрузчик ищет какойто шестой вектор.

Что это такое (на простом языке) и как мне включить этот вектор в программу?


Планируется что программа содержит инклуды ioAT91SAM9260.h и intrisics.h (как в родных AVR)

Этого достатачно для написания программы?

Хочу инициализировать DBGU и ногами подрыгать.



tturist
если "по-простому" то так: SAM9260 - это чип, не предназначенный для решения задач ногодрыганься. это чип, предназначенный для работы под какой-либо операционной системой. не мучайтесь вы так. все задачи по инициализации и загрузке, работе с периферией решены уже специально для вас разработчиками ОС. не надо биться головой в открытую дверь. путь, по которому вы шли при освоении 8-ми разрядных контроллеров, для данного чипа - не верный. абсолютное большинство задач, для которых SAM9260 применяется, делаются под ОС. хотите осваивать SAM9260 - осваивайте ОС.
Zelepuk
Хорошо. Меня всегда интересовал вот какой вопрос:

На AVR всегда можно было добиться работы устройства в ЖЁСТКОМ реальном времени. Теперь мощи нехватает. Нужен процессор для решения DSP-задач. Полноценный DSP - это дорого. ARM за счёт своих мипсов должен справится.

Как добиться реакции системы ЖЁСТКОГО реального времени, работая c ARM9 под ОС?

P.S. Покупная ОСРВ не рассматривается.
DpInRock
Вы бы почитали собственные темы на эти темы.
Вам уже давались все ответы на ваши вопросы.
На месте вектора 6 ставится длина того, чего грузится.
Можете ставить руками, можете Иаром.



Туриста, разумеется, слушать не стоит.
Zelepuk
Цитата(DpInRock @ Dec 3 2010, 20:50) *
Вы бы почитали собственные темы на эти темы.
Вам уже давались все ответы на ваши вопросы.
На месте вектора 6 ставится длина того, чего грузится.
Можете ставить руками, можете Иаром.



Туриста, разумеется, слушать не стоит.


но вы хоть убейте меня... не понимаю я что означает 6 вектор.


Что означает IARом ставить(есть встроеные средства?)

Руками - это как я понял то, что вы упоминали, используя PUBLIC vector...
этот код я запихивал в IAR - не работает, выдаёт ошибку (просто тупо копировал в main).


неужели не дано(((((

Может пора уйти в лес и посвятить свою жизнь чтению доки((( поможет?
DpInRock
Тупо - нельзя. Там есть масса примеров иаре. Ищите файл с названием примерно Startup.s.
И вот туда это копируют. В форуме эта тема избита до крови. Место - куда копировать - вы в этом файле увидите.

C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\PowerPac\BoardSupport\ATMEL\AT91SAM9260\Setup

вот тут клондайк. Все что нужно. Ни шагу в сторону. Токо тут.
Zelepuk
Цитата(DpInRock @ Dec 4 2010, 00:43) *
Тупо - нельзя. Там есть масса примеров иаре. Ищите файл с названием примерно Startup.s.
И вот туда это копируют. В форуме эта тема избита до крови. Место - куда копировать - вы в этом файле увидите.

C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\PowerPac\BoardSupport\ATMEL\AT91SAM9260\Setup

вот тут клондайк. Все что нужно. Ни шагу в сторону. Токо тут.


Спасибо! Золотой вы человек!

На след неделе опять войну начну с SAM9260....

Отпишусь, с вашего позволения, потом.
Zelepuk
Пока что всё то, что хотел получилось! Большое спасибо!

Но, возможно кто-нибудь объяснит, что за файлы *.s и *.mac добавлены в IAR проект?

Как я понимаю это чисто компиляторские штучки?

зачем они? И можно ли без них?
DpInRock
Разве по содержимому *.s сложно догадаться что это такое? Это часть программы на ассемблере. Обычно, это стартовая часть программы.

*.mac можете смело игнорировать.
Zelepuk
спасибо.
SII
Цитата(Zelepuk @ Dec 4 2010, 00:34) *
Может пора уйти в лес и посвятить свою жизнь чтению доки((( поможет?


В лес уходить не обязательно, а вот чтение документации весьма пользительно. Как и достаточно свободное владение ассемблером. Любую задачу на языке высокого уровня не решишь, но даже если его хватает, понимание того, как именно работает микроконтроллер, как минимум не мешает эффективному решению задач, а часто очень даже помогает. В частности, если б Вы немного потрудились и ознакомились бы с разделом справочного руководства по архитектуре ARM, посвящённым прерываниям, у Вас не возник бы вопрос, а что такое шестой вектор (правда, возник бы другой: а почему шестой, если, согласно данному руководству, он не используется? Но на этот вопрос ответ был бы получен из документации на используемый Вами микроконтроллер: там хранится длина загружаемой программы, а хранится там именно потому, что этот вектор, в отличие от других, не используется при обработке прерываний).

В общем, не пытайтесь решать серьёзные задачи с наскоку и без подготовки -- в итоге потеряете куда больше времени, чем потратив его на эту самую подготовку.
Zelepuk
Спасибо за дельные советы.

Только вот проблема в том, что в голове все эти доки систематизировать не удаётся (только вы перечислили две доки, где одна ссылается на другую).

Итак, пытаюсь понять что мне нужно для системного освоения предмета:

1) Описание конкретного проца (AT91SAM9260)
2) Описание архитектуры ARM
3) Дока по IAR EWARM_USER_GUIDE.pdf
ничего не пропустил?
tturist
совет изучать ассемблер на АРМ9 я бы хорошим не назвал. в тех исключительно редких случаях, когда это действительно нужно, советы уже как правило не спрашивают.
я вижу здесь собрались исключительно сторонники программировать 32-разрядные процессоры в суперлупе и спорить с ними бесполезно.
Цитата
На AVR всегда можно было добиться работы устройства в ЖЁСТКОМ реальном времени. Теперь мощи нехватает. Нужен процессор для решения DSP-задач. Полноценный DSP - это дорого. ARM за счёт своих мипсов должен справится.

я бы посоветовал вам учесть несколько фактов:
- внутренней памяти на борту SAM9260 имеет довольно мало (смотрите по своей задаче);
- внешняя память работает только на половинной частоте (к вопросу о производительности и МИПсах);
- если вы поставите внешнюю память на 32 разряда на 100МГц, вам захочется сделать это на 4-х слойной плате.
после этого говорить о том что это будет система дешевле чем построенная на DSP вряд ли получится.
- есть весьма дешевые DSP от TI (цены от 10$, здесь, если я правильно понимаю). по производительности на сигнальных алгоритмах они скорее всего будут выигрывать.
если вам нужен процессор для решения DSP задач, выбирайте DSP. у TI вроде как есть и своя RTOS под это дело (лишним не будет), и готовые бесплатные библиотеки DSP алгоритмов. и самое главное с усложнением своих задач вам будет куда развиваться.
Zelepuk
А я учитываю главный для меня на сегодняшний день факт: доставаемость платы.

Вы знаете отладочную плату в районе 5т.р. со след характеристиками:
- поддержка в проце внешней SD-ram (и соответвенное её присутствие метров на 5-10 хотябы)
- внутренняя Dataflash или внешняя хотябы на 0.5мБ
- разъём SDcard
- LQFP-подобный корпус
- j-tag отладчик по божеской цене
- выведеная наружу внешняя шина данных

P.S. не готов платить за плату + отладчик\программатор больше 10т.р.

Я не знаю другие варианты как платы на ARM9-платформе...
Есть в терее платка на базе Delfino С2000 даже плавучка там поддерживается, но опять засада - нету достаточной по объёму SD-RAM.
DRUID3
Цитата(Zelepuk @ Dec 3 2010, 16:07) *
Как добиться реакции системы ЖЁСТКОГО реального времени, работая c ARM9 под ОС?

А что за задача?
Zelepuk
Цитата(DRUID3 @ Dec 9 2010, 17:12) *
А что за задача?


Ну например нужно вовремя щёлкнуть релюшкой, если пришёл какой-либо сигнал(наступило событие). Понимаю что при этом задача решается на AVR. а если событие получается после обработки сигнала? Получается нужно ещё и посчитать быстро, а потом принять решение щёлкнуть\не щёлкнуть.

Примерно так.
IJAR
Цитата(Zelepuk @ Dec 10 2010, 09:13) *
Ну например нужно вовремя щёлкнуть релюшкой, если пришёл какой-либо сигнал(наступило событие). Понимаю что при этом задача решается на AVR. а если событие получается после обработки сигнала? Получается нужно ещё и посчитать быстро, а потом принять решение щёлкнуть\не щёлкнуть.

Примерно так.


А ARM7 Вам не подходит ?
Тактовая не ахти, порядка 50 МГц
но это же 32 разрядный процессор
очень быстро работает с короткой (32) и длинной плавучкой (64 бита)
Zelepuk
ARM7 думаю подойдёт для этой цели. Большой разницы я не вижу. И там и там разбираться надо))

Только вот про плавучку не понял? Понимаю SHARC какой-нибудь работает с плавучкой, но ARM...)
sergeeff
Я с большим удивлением на нашем форуме смотрю, что народ использует "плавучку" по чем зря. По моему - от недостатка понимания, как работает арифметика с плавающей точкой. Особенно в плане ошибок округления. Очень хорошо об этих проблемах написал Герб Саттер в "Новых сложных задачах на С++":

"Запомните, что вычисления с плавающей точкой - таинственная и странная вещь. Будьте внимательны при использовании чисел с плавающей точкой и избегайте преобразования типов с плавающей точкой. Почти все, что люди (как они думают) знают об арифметике, оказывается не верно применительно к вычислениям с плавающей точкой...

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

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

Для начала вы бы свои алгоритмы погоняли на PC, а потом уже было бы понятно, на каком процессоре остановить выбор.
Zelepuk
Алгоритмы-то я давно гоняю на PC.

Задача решается на ARM9 и всё. Это уважаемый IJAR про плавучку упомянул. Не знаю зачем.

Кстати что значит очень быстро работает с плавучкой???? в контескте ARM))
esaulenka
Цитата(Zelepuk @ Dec 11 2010, 09:44) *
Кстати что значит очень быстро работает с плавучкой???? в контескте ARM))

Да, очень интересный вопрос.

Где-нибудь можно найти тесты - сравнения, насколько меняется производительность, если считать не fixed point, а float ?
IJAR
Цитата(Zelepuk @ Dec 10 2010, 21:51) *
ARM7 думаю подойдёт для этой цели. Большой разницы я не вижу. И там и там разбираться надо))

Только вот про плавучку не понял? Понимаю SHARC какой-нибудь работает с плавучкой, но ARM...)


Как разница налицо - в отличие от ARM9260 у ARM7 существенно больший внутреннй ресурс
по RAM - до 64 КБайт и (у ARM9260 - 4 Кбайт) и по FLAS - 512 Кбайт (у ARM9260 - 8 Кбайт)
Т.е. для програаммы USER на 9260 надо вешать внешние RAM и FLASH.
Если "западло" возиться с железом - есть готовые встраиваемые модули установленной внешней памятью
и процессором 9260 + нужные интерфейсы (стандартные) + выведенные на внешний разъем pin-ы
процессора например:
http://starterkit.ru/html/index.php?name=s...=view&id=23
MMNet1001 от PROPOX http://www.sklep.propox.com/index.php?d=produkt&id=2118
есть Terraelectronica

Что касается плавучки, то Вы же сами пишете что Вам надо что то считать
по моему опыту с библиотекой плав арифметики ARM7 по сравнению с Meg-ой
работает существенно быстрее
TigerSHARC
Цитата(IJAR @ Dec 17 2010, 11:55) *
Как разница налицо - в отличие от ARM9260 у ARM7 существенно больший внутреннй ресурс
по RAM - до 64 КБайт и (у ARM9260 - 4 Кбайт) и по FLAS - 512 Кбайт (у ARM9260 - 8 Кбайт)
Т.е. для програаммы USER на 9260 надо вешать внешние RAM и FLASH.
Если "западло" возиться с железом - есть готовые встраиваемые модули установленной внешней памятью
и процессором 9260 + нужные интерфейсы (стандартные) + выведенные на внешний разъем pin-ы
процессора например:
http://starterkit.ru/html/index.php?name=s...=view&id=23
MMNet1001 от PROPOX http://www.sklep.propox.com/index.php?d=produkt&id=2118
есть Terraelectronica

Что касается плавучки, то Вы же сами пишете что Вам надо что то считать
по моему опыту с библиотекой плав арифметики ARM7 по сравнению с Meg-ой
работает существенно быстрее


Считать-то можно и на интах.
А для плавучки свои монстры есть (SHARC)
sergeeff
Цитата(IJAR @ Dec 17 2010, 12:55) *
Что касается плавучки, то Вы же сами пишете что Вам надо что то считать
по моему опыту с библиотекой плав арифметики ARM7 по сравнению с Meg-ой
работает существенно быстрее


Замечание из разряда :"Mercedes вообще-то конфортнее и ездит быстрее, чем Запорожец".
Zelepuk
Палата с AT91SAM9260 у меня есть уже готовая. Там и SD-RAM и dataflash есть.
sergeeff
Цитата(Zelepuk @ Dec 17 2010, 15:02) *
Палата с AT91SAM9260 у меня есть уже готовая. Там и SD-RAM и dataflash есть.


Так полный вперед! Не забудьте научиться включать кеши и настраивать MMU. Тогда все будет летать как надо.
Zelepuk
Цитата(sergeeff @ Dec 17 2010, 15:10) *
Так полный вперед! Не забудьте научиться включать кеши и настраивать MMU. Тогда все будет летать как надо.


Я так понимаю это вы говорите о тех файлах *.s ассемблерных что в примерах фигурируют. Как раз с ними разбираюсь(((

сложновато smile3046.gif , дорогу осилит идущий 1111493779.gif
IJAR
Цитата(Zelepuk @ Dec 17 2010, 15:24) *
Я так понимаю это вы говорите о тех файлах *.s ассемблерных что в примерах фигурируют. Как раз с ними разбираюсь(((

сложновато smile3046.gif , дорогу осилит идущий 1111493779.gif


bb-offtopic.gif

Слон-живописец написал пейзаж,
Но раньше, чем послать его на вернисаж, Он пригласил друзей взглянуть на полотно:
Что, если вдруг не удалось оно?
Вниманием гостей художник наш польщен! Какую критику сейчас услышит он?
Не будет ли жесток звериный суд?
Низвергнут? Или вознесут?
Ценители пришли. Картину Слон открыл, Кто дальше встал, кто подошел поближе.
"Ну, что же,- начал Крокодил,Пейзаж хорош! Но Нила я не вижу..." "Что Нила нет, в том нет большой бед- Сказал Тюлень.- Но где снега? Где льды?"
"Позвольте!- удивился Крот.-
Есть кое-что важней, чем лед!
Забыл художник огород".
"Хрю-хрю,- заметила Свия, Картина удалась, друзья!
Но с точки зренья нас, Свиней,
Должны быть желуди на ней".
Все пожеланья принял Слон.
Опять за краски взялся он
И всем друзьям по мере сил
Слоновьей кистью угодил,
Изобразив снега, и лед,
И Нил, и дуб, и огород,
И даже мед!
(На случай, если вдруг Медведь
Придет картину посмотреть...)
Картина у Слона готова,
Друзей созвал художник снова.
Взглянули гости на пейзаж
И прошептали: "Ералаш!"
Мой друг! не будь таким слоном:
Советам следуй, но с умом!
На всех друзей не угодишь,
Себе же только навредишь.
santa2.gif
=====================================

А вот когда Вы напишете весь Soft прибора врукопашную
(как я понял ОС Вы использовать не собираетесь)
смотрите чтобы не получилось как в следующем примере

Ежи однажды сдали тему
Прибор иль целую систему
Но суть не в этом, дело в том
Что приключилося потом.

Чтоб впредь они старались пуще
Мешок грибов им «сверху» спущен.
И вот настал желанный день
Мешок доставлен, водворен на пень

И только вышел главный еж,
Он рта еще не отворил,
Как на мешок Лев лапу наложил.
Потом за Львом явился Бык
Он как и Лев стесняться не привык
Слизнул пяток боровиков – и был таков
Потом еще пришел Шакал
Он де кому то помогал
Потом …….

Досталось и ежам немножко
Опенок и от груздя ножка

Мораль
Какая тут мораль?
Ежей – трудяг вот только жаль

crying.gif
Zelepuk
Я не собираюсь реализовывать "прибор". Я просто хочу руками поработаь с процессором. Про ОС опять стоит вопрос "жёсткого" реального времени (не QNX же покупать в самом деле).

Неужели без ОС так сложно сделать фильтр длинный на ARM9 и послать сигнал на пин по выполнении фильтрации. И для этого нужно ось городить?

Работа носит скорее учебный характер, из разряда "просто ужасно интересно".
А вы мне оси предлагаете...

С осями потом... дайте арм пощупать....
sergeeff
Сами решили - делайте. Все можно попробовать без всяких там ОС. Тем более, что не так уж много чего вам потребуется по началу. Плата готовая есть - отлично.

Советам, что сами себе навредите, не особо следуйте. Во-первых освоение любого нового добавляет знаний и расширяет кругозор. ARM'ы активно прут на рынок и их изучение уж точно не помешает.
ved365
Тоже ковыряю AT91SAM9260, но работаю в Linux, потому что мне так проще (пока), и все базовые утилиты под рукой - make, ассемблер, линкер и SAM-BA. Пока только написал "Hello world" - вывожу в COM порт "Hello" sm.gif Теперь буду делать "эхо". В розовых мечтах - своя ОС на ARM. Чую, рано или поздно, придется перейти на С. IAR'ы и Keil'ы считаю профессиональными IDE и для обучения не пригодными. Тоже самое, что писать лабы на С++ в Visual Studio .NET 2010 (если вы понимаете, о чём я говорю). Overkill, одним словом.

Остаётся открытым вопрос отладки. Пока кроме прямого метода рассматривания исходника с последующей корректировкой, записью во флеш и просмотром результата (получилось/не получилось) ничего не использую, т.к. не знаю, как sm.gif
Zelepuk
Цитата(ved365 @ Dec 19 2010, 04:36) *
Тоже ковыряю AT91SAM9260, но работаю в Linux, потому что мне так проще (пока), и все базовые утилиты под рукой - make, ассемблер, линкер и SAM-BA. Пока только написал "Hello world" - вывожу в COM порт "Hello" sm.gif Теперь буду делать "эхо". В розовых мечтах - своя ОС на ARM. Чую, рано или поздно, придется перейти на С. IAR'ы и Keil'ы считаю профессиональными IDE и для обучения не пригодными. Тоже самое, что писать лабы на С++ в Visual Studio .NET 2010 (если вы понимаете, о чём я говорю). Overkill, одним словом.

Остаётся открытым вопрос отладки. Пока кроме прямого метода рассматривания исходника с последующей корректировкой, записью во флеш и просмотром результата (получилось/не получилось) ничего не использую, т.к. не знаю, как sm.gif

Спасибо что написали. Интересно с новичками тоже пообщаться.
Не знаете потому что IAR боитесь использовать, там есть отладочный интерфейс для J-Link. Хотя сам я пока его не использовал.
Я делаю первые шаги без ОС. С родным bootstrap работаю. Там есть инициализация железа, вывод на COM-порт.Всё что нужно.
sergeeff
Цитата(Zelepuk @ Dec 19 2010, 10:28) *
Спасибо что написали. Интересно с новичками тоже пообщаться.
Не знаете потому что IAR боитесь использовать, там есть отладочный интерфейс для J-Link. Хотя сам я пока его не использовал.
Я делаю первые шаги без ОС. С родным bootstrap работаю. Там есть инициализация железа, вывод на COM-порт.Всё что нужно.


Отладочный интерфейс штука, конечно удобная, но не слишком обольщайтесь. Если посмотрите, на форуме куча сообщений типа: при отладке работает, на рабочем проекте - нет. Особенно трудоемко идет отладка процедур, работающих с железом. Там не так просто приостановиться или даже printf'ом что-то вывести на консоль - слишком долго и нарушает временную логику работы.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.