AT91SAM9260: С чего начать?
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM9260: С чего начать?
Вся необходимая информация по загрузчику конкретного МК находится в даташите на этот МК (плюс в еррате, где описаны допущенные разработчиками МК багоглюки; для АТМЕЛовских АРМов еррата размещается в конце даташита, у других фирм она часто является отдельным документом). Вообще говоря, у разных МК даже одной фирмы загрузчики несколько отличаются, а с учётом ошибок отличия могут быть очень большими. Например, у того же Атмела AT91SAM9261 из-за ошибок в загрузчике не может загружаться из NAND Flash, а загрузка с SD-карты вообще не предусмотрена, и на практике единственная возможность загрузки без использования ПК -- это SPI DataFlash. У AT91SM9G45 из NAND Flash загрузка уже работает, но не работает контроль CRC, поэтому на практике сей способ загрузки малоработоспособен, зато с SD-карты он загружается без проблем, ну и т.д.
- Реклама
Re: AT91SAM9260: С чего начать?
хорошо, но что-то пока сложно полностью бутлоадер разбирать буду по-отдельности разбираться со основными возможностями, (кстати что как минимум нужно знать чтобы самому написать бутлоадер ? )
на данный момент изучаю ШИМ, программный ШИМ проблем уже не составляет (сделал плавное зажигание и выключение светодиода столько счастья
) , а вот как реализовать аппаратный? мне бы примерчик хотя бы для ARM 7 где регистры почти схожи с моим AT91SAM9260.

на данный момент изучаю ШИМ, программный ШИМ проблем уже не составляет (сделал плавное зажигание и выключение светодиода столько счастья
Re: AT91SAM9260: С чего начать?
Аппаратный ШИМ - он не в ядре, а перефирия
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM9260: С чего начать?
Самый-самый-самый начальный загрузчик писать на 9260, подозреваю, не требуется, ведь стандартный загрузчик, по идее, есть в ПЗУ процессора (как он имеется на 9261 и 9G45). Некий другой загрузчик нужен лишь в том случае, если нужно грузиться с устройства, не поддерживаемого стандартным загрузчиком. Например, так загружается Линух на 9261: стандартный загрузчик из ПЗУ грузит промежуточный из SPI DataFlash, а уже тот -- загрузчик Линуха из NAND Flash (говорю по памяти, так что в чём-то могу ошибиться, но общая схема там такова, поскольку прямая загрузка из NAND Flash там невозможна). Таким образом, если желаете написать свой загрузчик, то для начала надо написать какой-нибудь хелловорлд (мигающий светодиодами или там выводящий сообщение через DBGU) и поместить его на устройство, поддерживаемое стандартным загрузчиком из ПЗУ процессора. Благодаря этому можно убедиться, что Ваш код корректно загружается означенным загрузчиком и может нормально выполнять свои функции. Ну а когда этого добились, можно браться за собственно загрузчик: изучать документацию на устройство, с которого собираетесь, грузиться, и лепить соответствующий код.
Пы.Сы. С ШИМом точно не помогу: мне он ни разу пока не требовался, поэтому я им вообще не занимался. Но думаю, особых проблем быть не должно, достаточно просто внимательно даташит на процессор изучить. Кроме того, может, АТМЕЛ предлагает какие примеры на своём сайте.
Пы.Сы. С ШИМом точно не помогу: мне он ни разу пока не требовался, поэтому я им вообще не занимался. Но думаю, особых проблем быть не должно, достаточно просто внимательно даташит на процессор изучить. Кроме того, может, АТМЕЛ предлагает какие примеры на своём сайте.
Re: AT91SAM9260: С чего начать?
Да Шим это периферия согласен)
Да SII там уже изначально есть свой загрузчик (При подключени J-link и DBGU в терминале пишет RAM BOOT>). Мне это необходимо для того чтобы потом готовый прибор можно было перепрошивать через Ethernet а не как сейчас (J-link)
Кстати вопросы появились!
1 вопрос:
Я вот программу написал запустил в IAR отладку и как бы запускаю её пошаговое выполнение, все хорошо отлаживаю смотрю что как работает, но пока не до конца понимаю, это я зашиваю в процессор свою программу (или временно зашиваю?) или же J-link что-то делает? непонятно.
2 вопрос :
Например: я закончил программу все готово, могу ли я зашить теперь программу окончательно в прибор через J-link или нужно через другой интерфейс это делать?
Да 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: С чего начать?
Опять-таки, с 9260 я дела не имел, поэтому исхожу из 9261. У этих процессоров внутри есть только однократно программируемое ПЗУ со стандартным загрузчиком и какой-то объём ОЗУ (у 9261 -- 160 Кбайт, например). Соответственно, в сам процессор ничего прошить нельзя, можно прошить лишь в какую-либо микросхему внешней памяти (подозреваю, что только в SPI DataFlash: у 9261 есть ошибка в загрузчике, из-за которой он не в состоянии загружаться из NAND Flash, ну а загрузки с, например, SD-карты и вовсе не предусмотрено, в отличие от более позднего 9G45).
IARом тоже не пользуюсь, работаю в KEILе, но принцип их работы с АРМом по-любому одинаков. Через отладчик (J-Link в данном случае) образ программы записывается во внутреннюю память контроллера либо во внешнее ОЗУ (при необходимости производится настройка контроллера памяти, PLL и другой аппаратуры). Процессом загрузки управляет специальный скрипт; со средой, вероятно, поставляются некие стандартные скрипты для каждого поддерживаемого типа контроллера, хотя при необходимости всегда можно написать свой. В дальнейшем загруженный код может выполняться.
Прошивка во внешнем ПЗУ выполняется примерно по такой схеме. Во внутренее ОЗУ через программатор загружается программка, которая в дальнейшем получает от ПК код, который надо зашивать в ПЗУ, и выполняет саму зашивку. Эти программки тоже стандартные, обычно называются алгоритмами прошивки или ещё что-нибудь в этом роде.
Встроенный загрузчик, насколько помню, умеет прошивать через RS-232, при этом на ПК используется SAM-BA. Но сам никогда этим не пользовался: нужды не было.
IARом тоже не пользуюсь, работаю в KEILе, но принцип их работы с АРМом по-любому одинаков. Через отладчик (J-Link в данном случае) образ программы записывается во внутреннюю память контроллера либо во внешнее ОЗУ (при необходимости производится настройка контроллера памяти, PLL и другой аппаратуры). Процессом загрузки управляет специальный скрипт; со средой, вероятно, поставляются некие стандартные скрипты для каждого поддерживаемого типа контроллера, хотя при необходимости всегда можно написать свой. В дальнейшем загруженный код может выполняться.
Прошивка во внешнем ПЗУ выполняется примерно по такой схеме. Во внутренее ОЗУ через программатор загружается программка, которая в дальнейшем получает от ПК код, который надо зашивать в ПЗУ, и выполняет саму зашивку. Эти программки тоже стандартные, обычно называются алгоритмами прошивки или ещё что-нибудь в этом роде.
Встроенный загрузчик, насколько помню, умеет прошивать через RS-232, при этом на ПК используется SAM-BA. Но сам никогда этим не пользовался: нужды не было.
Re: AT91SAM9260: С чего начать?
хм, по ходу изучения этой темы еще возникают вопросы:
1. как устроена память процессора? в какой последовательности выполняется переход к основной Моей программе (читал что сначала программа записывается в одну память потом загрузчик или еще что-то копирует ее в другую область памяти и.т.д) Что именно куда и как это происходит?)
2.Каков основной алгоритм бутлоадера? то есть что нужно проинициализировать и какова его цель? (похоже как раз найти прогу и скопировать её куда надо?)
1. как устроена память процессора? в какой последовательности выполняется переход к основной Моей программе (читал что сначала программа записывается в одну память потом загрузчик или еще что-то копирует ее в другую область памяти и.т.д) Что именно куда и как это происходит?)
2.Каков основной алгоритм бутлоадера? то есть что нужно проинициализировать и какова его цель? (похоже как раз найти прогу и скопировать её куда надо?)
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM9260: С чего начать?
Некорректный вопросlishni писал(а):1. как устроена память процессора?
В даташите всё расписано.в какой последовательности выполняется переход к основной Моей программе (читал что сначала программа записывается в одну память потом загрузчик или еще что-то копирует ее в другую область памяти и.т.д) Что именно куда и как это происходит?)
Да, найти, загрузить и передать ей управление. Возможно, правда, что сначала придётся настроить синхронизацию, контроллер внешней памяти и т.п. вещи.2.Каков основной алгоритм бутлоадера? то есть что нужно проинициализировать и какова его цель? (похоже как раз найти прогу и скопировать её куда надо?)
Re: AT91SAM9260: С чего начать?
ну да там вместо процессора, микроконтроллер)
Ладно, это вещи сугубо индивидуальные для каждого процессора буду читать литературу.
Спасибо за ответ
Ладно, это вещи сугубо индивидуальные для каждого процессора буду читать литературу.
Спасибо за ответ
Re: AT91SAM9260: С чего начать?
В итоге я решил "основы аналоговой и цифровой электроники", и полностью Attiny2313 изучить чтобы потом перейти на ARM т.к пока, что трудно все дается + английский язык 
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM9260: С чего начать?
Ну, на всяких там АТтиньках и прочих мегах существенно проще инициализация, после которой, собственно, можно к работе приступать: фактически она сводится к установке начального значения указателя стека. В АРМе этих самых указателей вагон, но главная сложность, наверное -- запуск PLL на нужной частоте. Плюс ещё варианты с начальной загрузкой (у 8-разрядных особых вариантов, как правило, нет: всё лежит во встроенной флэш-памяти)... А вот периферия -- это уже другой вопрос. У АТМЕЛовских АРМов периферийные контроллеры достаточно сложные, но и обычно более удобные в работе и функциональные, чем, например, у NXP.
Re: AT91SAM9260: С чего начать?
Поразбирался с загрузчиком, основной алгоритм понятен.
Возникли вопросы с памятью, на схеме ARM и две микросхемы памяти. В коде они инициализируются и проводятся тесты с ними на работоспособность я полагаю.
Подскажите где можно почитать вообще по работе с памятью микроконтроллера?(кроме даташитов) не обязательно ARM можно и AVR. Но нужно чтобы было описание как работать с внешней памятью SDRAM.
Заранее спасибо!)
Возникли вопросы с памятью, на схеме ARM и две микросхемы памяти. В коде они инициализируются и проводятся тесты с ними на работоспособность я полагаю.
Подскажите где можно почитать вообще по работе с памятью микроконтроллера?(кроме даташитов) не обязательно ARM можно и AVR. Но нужно чтобы было описание как работать с внешней памятью SDRAM.
Заранее спасибо!)
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM9260: С чего начать?
Ну, собственно, понимать, как работает память, не обязательно
(Хотя, конечно, полезно). В даташите на МК описан контроллер памяти, который нужно правильным образом настроить, исходя из таймингов памяти (извлекаются из даташита на конкретные микросхемы памяти) и частоты синхронизации контроллера памяти. Если всё сделано правильно, заработает без проблем. Ну а где читать "вообще"... Понятно, что есть спецификации JEDEC, где всё точно расписано (именно им соответствуют выпускаемые микросхемы памяти), но для "общего развития" они, пожалуй, слишком подробны и сложны...
Re: AT91SAM9260: С чего начать?
о это уже попроще будет, буду копать в эту сторону)


