AT91SAM9260: С чего начать?

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: AT91SAM9260: С чего начать?

Сообщение SII »

Вся необходимая информация по загрузчику конкретного МК находится в даташите на этот МК (плюс в еррате, где описаны допущенные разработчиками МК багоглюки; для АТМЕЛовских АРМов еррата размещается в конце даташита, у других фирм она часто является отдельным документом). Вообще говоря, у разных МК даже одной фирмы загрузчики несколько отличаются, а с учётом ошибок отличия могут быть очень большими. Например, у того же Атмела AT91SAM9261 из-за ошибок в загрузчике не может загружаться из NAND Flash, а загрузка с SD-карты вообще не предусмотрена, и на практике единственная возможность загрузки без использования ПК -- это SPI DataFlash. У AT91SM9G45 из NAND Flash загрузка уже работает, но не работает контроль CRC, поэтому на практике сей способ загрузки малоработоспособен, зато с SD-карты он загружается без проблем, ну и т.д.
Реклама
lishni
Родился
Сообщения: 16
Зарегистрирован: Пт авг 26, 2011 10:42:29

Re: AT91SAM9260: С чего начать?

Сообщение lishni »

хорошо, но что-то пока сложно полностью бутлоадер разбирать буду по-отдельности разбираться со основными возможностями, (кстати что как минимум нужно знать чтобы самому написать бутлоадер ? )

на данный момент изучаю ШИМ, программный ШИМ проблем уже не составляет (сделал плавное зажигание и выключение светодиода столько счастья :)) ) , а вот как реализовать аппаратный? мне бы примерчик хотя бы для ARM 7 где регистры почти схожи с моим AT91SAM9260.

:)
Реклама
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: AT91SAM9260: С чего начать?

Сообщение Satyr »

Аппаратный ШИМ - он не в ядре, а перефирия
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: AT91SAM9260: С чего начать?

Сообщение SII »

Самый-самый-самый начальный загрузчик писать на 9260, подозреваю, не требуется, ведь стандартный загрузчик, по идее, есть в ПЗУ процессора (как он имеется на 9261 и 9G45). Некий другой загрузчик нужен лишь в том случае, если нужно грузиться с устройства, не поддерживаемого стандартным загрузчиком. Например, так загружается Линух на 9261: стандартный загрузчик из ПЗУ грузит промежуточный из SPI DataFlash, а уже тот -- загрузчик Линуха из NAND Flash (говорю по памяти, так что в чём-то могу ошибиться, но общая схема там такова, поскольку прямая загрузка из NAND Flash там невозможна). Таким образом, если желаете написать свой загрузчик, то для начала надо написать какой-нибудь хелловорлд (мигающий светодиодами или там выводящий сообщение через DBGU) и поместить его на устройство, поддерживаемое стандартным загрузчиком из ПЗУ процессора. Благодаря этому можно убедиться, что Ваш код корректно загружается означенным загрузчиком и может нормально выполнять свои функции. Ну а когда этого добились, можно браться за собственно загрузчик: изучать документацию на устройство, с которого собираетесь, грузиться, и лепить соответствующий код.

Пы.Сы. С ШИМом точно не помогу: мне он ни разу пока не требовался, поэтому я им вообще не занимался. Но думаю, особых проблем быть не должно, достаточно просто внимательно даташит на процессор изучить. Кроме того, может, АТМЕЛ предлагает какие примеры на своём сайте.
Реклама
Эиком - электронные компоненты и радиодетали
lishni
Родился
Сообщения: 16
Зарегистрирован: Пт авг 26, 2011 10:42:29

Re: AT91SAM9260: С чего начать?

Сообщение lishni »

Да Шим это периферия согласен)

Да SII там уже изначально есть свой загрузчик (При подключени J-link и DBGU в терминале пишет RAM BOOT>). Мне это необходимо для того чтобы потом готовый прибор можно было перепрошивать через Ethernet а не как сейчас (J-link)

Кстати вопросы появились!

1 вопрос:

Я вот программу написал запустил в IAR отладку и как бы запускаю её пошаговое выполнение, все хорошо отлаживаю смотрю что как работает, но пока не до конца понимаю, это я зашиваю в процессор свою программу (или временно зашиваю?) или же J-link что-то делает? непонятно.

2 вопрос :

Например: я закончил программу все готово, могу ли я зашить теперь программу окончательно в прибор через J-link или нужно через другой интерфейс это делать?
Реклама
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: AT91SAM9260: С чего начать?

Сообщение SII »

Опять-таки, с 9260 я дела не имел, поэтому исхожу из 9261. У этих процессоров внутри есть только однократно программируемое ПЗУ со стандартным загрузчиком и какой-то объём ОЗУ (у 9261 -- 160 Кбайт, например). Соответственно, в сам процессор ничего прошить нельзя, можно прошить лишь в какую-либо микросхему внешней памяти (подозреваю, что только в SPI DataFlash: у 9261 есть ошибка в загрузчике, из-за которой он не в состоянии загружаться из NAND Flash, ну а загрузки с, например, SD-карты и вовсе не предусмотрено, в отличие от более позднего 9G45).

IARом тоже не пользуюсь, работаю в KEILе, но принцип их работы с АРМом по-любому одинаков. Через отладчик (J-Link в данном случае) образ программы записывается во внутреннюю память контроллера либо во внешнее ОЗУ (при необходимости производится настройка контроллера памяти, PLL и другой аппаратуры). Процессом загрузки управляет специальный скрипт; со средой, вероятно, поставляются некие стандартные скрипты для каждого поддерживаемого типа контроллера, хотя при необходимости всегда можно написать свой. В дальнейшем загруженный код может выполняться.

Прошивка во внешнем ПЗУ выполняется примерно по такой схеме. Во внутренее ОЗУ через программатор загружается программка, которая в дальнейшем получает от ПК код, который надо зашивать в ПЗУ, и выполняет саму зашивку. Эти программки тоже стандартные, обычно называются алгоритмами прошивки или ещё что-нибудь в этом роде.

Встроенный загрузчик, насколько помню, умеет прошивать через RS-232, при этом на ПК используется SAM-BA. Но сам никогда этим не пользовался: нужды не было.
Реклама
lishni
Родился
Сообщения: 16
Зарегистрирован: Пт авг 26, 2011 10:42:29

Re: AT91SAM9260: С чего начать?

Сообщение lishni »

хм, по ходу изучения этой темы еще возникают вопросы: :dont_know:

1. как устроена память процессора? в какой последовательности выполняется переход к основной Моей программе (читал что сначала программа записывается в одну память потом загрузчик или еще что-то копирует ее в другую область памяти и.т.д) Что именно куда и как это происходит?)

2.Каков основной алгоритм бутлоадера? то есть что нужно проинициализировать и какова его цель? (похоже как раз найти прогу и скопировать её куда надо?)
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: AT91SAM9260: С чего начать?

Сообщение SII »

lishni писал(а):1. как устроена память процессора?
Некорректный вопрос :) Потому что ответ на него примерно такой: "у процессора нет памяти" (если уж совсем формально говорить, ведь процессор -- исполнитель программы и обработчик данных, а не устройство хранения информации) либо "состоит из триггеров + управляющих схем" (память-то статическая).
в какой последовательности выполняется переход к основной Моей программе (читал что сначала программа записывается в одну память потом загрузчик или еще что-то копирует ее в другую область памяти и.т.д) Что именно куда и как это происходит?)
В даташите всё расписано.
2.Каков основной алгоритм бутлоадера? то есть что нужно проинициализировать и какова его цель? (похоже как раз найти прогу и скопировать её куда надо?)
Да, найти, загрузить и передать ей управление. Возможно, правда, что сначала придётся настроить синхронизацию, контроллер внешней памяти и т.п. вещи.
lishni
Родился
Сообщения: 16
Зарегистрирован: Пт авг 26, 2011 10:42:29

Re: AT91SAM9260: С чего начать?

Сообщение lishni »

ну да там вместо процессора, микроконтроллер)
Ладно, это вещи сугубо индивидуальные для каждого процессора буду читать литературу.
Спасибо за ответ
lishni
Родился
Сообщения: 16
Зарегистрирован: Пт авг 26, 2011 10:42:29

Re: AT91SAM9260: С чего начать?

Сообщение lishni »

В итоге я решил "основы аналоговой и цифровой электроники", и полностью Attiny2313 изучить чтобы потом перейти на ARM т.к пока, что трудно все дается + английский язык :tea:
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: AT91SAM9260: С чего начать?

Сообщение SII »

Ну, на всяких там АТтиньках и прочих мегах существенно проще инициализация, после которой, собственно, можно к работе приступать: фактически она сводится к установке начального значения указателя стека. В АРМе этих самых указателей вагон, но главная сложность, наверное -- запуск PLL на нужной частоте. Плюс ещё варианты с начальной загрузкой (у 8-разрядных особых вариантов, как правило, нет: всё лежит во встроенной флэш-памяти)... А вот периферия -- это уже другой вопрос. У АТМЕЛовских АРМов периферийные контроллеры достаточно сложные, но и обычно более удобные в работе и функциональные, чем, например, у NXP.
lishni
Родился
Сообщения: 16
Зарегистрирован: Пт авг 26, 2011 10:42:29

Re: AT91SAM9260: С чего начать?

Сообщение lishni »

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

Заранее спасибо!)
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: AT91SAM9260: С чего начать?

Сообщение SII »

Ну, собственно, понимать, как работает память, не обязательно :) (Хотя, конечно, полезно). В даташите на МК описан контроллер памяти, который нужно правильным образом настроить, исходя из таймингов памяти (извлекаются из даташита на конкретные микросхемы памяти) и частоты синхронизации контроллера памяти. Если всё сделано правильно, заработает без проблем. Ну а где читать "вообще"... Понятно, что есть спецификации JEDEC, где всё точно расписано (именно им соответствуют выпускаемые микросхемы памяти), но для "общего развития" они, пожалуй, слишком подробны и сложны...
lishni
Родился
Сообщения: 16
Зарегистрирован: Пт авг 26, 2011 10:42:29

Re: AT91SAM9260: С чего начать?

Сообщение lishni »

о это уже попроще будет, буду копать в эту сторону)
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»