|
Не работает bin файл для SAM7S |
|
|
|
Jan 8 2010, 20:30
|
Группа: Участник
Сообщений: 11
Регистрация: 6-01-10
Пользователь №: 54 650

|
Уважаемые форумчане, помогите пожалуйста чайнику! Создал свой проект (IAR 5.4) для мигания светодиодами (контроллер AT91SAM7S256), в эмуляторе (RDI) все прекрасно работает, лампочки мигают, функции вызываются и т.д. Когда создаю bin файл и прошиваю, ничего не работает. Прошивал различными способами, через самбу, флешер и встроенный флеш лоадер - результат одинаковый (то есть нулевой). То же самое происходит и при отладке из флеш - "фирменные" проекты продолжают работать после переброски питания, а мой нет. Все файлы конфигурации брал из IARовских примеров атмейл. Настройки проекта также брал из рабочих примеров. Установил более свежий H-JTAG, флешлоадер стал выдавать ошибку Skipping flash loading pass because there is no data in the designated range: 0x100000-0x140000. То есть по идее, данные не в том диапазоне находятся, но как это исправить не понимаю. Проект прикладываю. Заранее спасибо!
Прикрепленные файлы
LED.rar ( 120.6 килобайт )
Кол-во скачиваний: 21
|
|
|
|
|
 |
Ответов
|
Jan 8 2010, 20:47
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760

|
Цитата(Arkasha @ Jan 8 2010, 23:30)  Все файлы конфигурации брал из IARовских примеров атмейл. Настройки проекта также брал из рабочих примеров. 1) В ИАР-е используются icf-файлы - в нем указания для компоновщика (linker) о том, по каким адресам разместить код-данные. 2) Все примеры включают в себя по два таких файла - один для размещения кода-данных в ОЗУ (для временной отладки) и один для размещения кода-данных во флэши (при запуске отладчика все это заливается во флэш - опционально можно отключить). 3) Разберитесь в настройках проекта - "linker" (где указать используемый icf-файл), debugger (галка для использования mac-файла и путь к нему при отладке из ОЗУ; галка для использования flashloadder-а при заливке проги во флэш). Посмотрите userguide и т.п.
|
|
|
|
|
Jan 8 2010, 21:08
|
Группа: Участник
Сообщений: 11
Регистрация: 6-01-10
Пользователь №: 54 650

|
Цитата(Student Pupkin @ Jan 8 2010, 23:47)  Разберитесь в настройках проекта - "linker" (где указать используемый icf-файл), debugger (галка для использования mac-файла и путь к нему при отладке из ОЗУ; галка для использования flashloadder-а при заливке проги во флэш). Прошу прощения, немного ввел в заблуждение, в процессе экспериментов поменял mac и icf файлы на другие. На самом деле я изначально использовал файлы at91sam7s-ek-flash.mac и flash.icf из из атмейловского примера getting started. Все настройки тоже из этого проекта. Сейчас вернул их на место, ошибка при запуске флеш дебага изчезла, но бинарник по прежнему не работает и после переброса питания перестает работать. Руководство лопатил несколько дней, но понят в чем проблема так и не смог.
Сообщение отредактировал rezident - Jan 8 2010, 21:33
Причина редактирования: Излишнее цитирование.
|
|
|
|
|
Jan 8 2010, 23:33
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760

|
Цитата(Arkasha @ Jan 9 2010, 00:08)  ошибка при запуске флеш дебага изчезла, но бинарник по прежнему не работает Т.е. расклад, видимо, такой: 1) В IAR-е жмете Download and Debug, затем запускаете под отладчиком программу ( Go - F5) и все работает (светодиод мигает). Закрываете отладчик. 2) Отключаете питание, отцепляете JTAG от платы, включаете питание - ничего не работает, программа не запускается. 3) Пробуете зашить полученный в IAR-е bin-файл. Для этого запускаете очистку флэш-памяти (с помощью пина ERASE), затем прошиваете самбой . Зашиваете, но ничего не работает. Так? Может про пин ERASE забываете? Или может с ним косяк в плате, и каждый раз после передергивания питания флэш очищается?
|
|
|
|
|
Jan 9 2010, 07:00
|
Группа: Участник
Сообщений: 11
Регистрация: 6-01-10
Пользователь №: 54 650

|
Цитата(Student Pupkin @ Jan 9 2010, 02:33)  Т.е. расклад, видимо, такой: ... Так? Может про пин ERASE забываете? Все так, только JTAG не отцепляю и пин ERASE не использую. Прошиваю либо флешером (там есть ERASE) либо самбой. И то и другое не работает. Причем только на моем проекте, примеры работают при любом способе прошивки,а также и после Download and Debug. Более того, пытался даже "сдергивать" образ памяти прямо из окна memory в дебаггере, сохранять в hex файл, перегонять в бинарник hex2bin_ом и прошивать. Так вот, опять же, примеры после такой операции работают, а мой проект нет. Видимо что-то неверно в проекте изначально, может быть стартап (в атмейловском примере свой, а у меня стандартный) или что-то еще. Странно только, почему в дебаггере работает.
Сообщение отредактировал rezident - Jan 9 2010, 10:58
Причина редактирования: Излишнее цитирование.
|
|
|
|
|
Jan 9 2010, 08:32
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760

|
Цитата(Arkasha @ Jan 9 2010, 10:00)  Странно только, почему в дебаггере работает. В принципе отличие тут одно - при запуске под отладчиком предварительно выполняется mac-файл. Хотя я с атмеловскими контроллерами не знаком вообще, однако в файле at91sam7s-ek-flash.mac имеется строчка _InitPLL() Код * Function description * Initializes the PMC. * 1. Enable the Main Oscillator * 2. Configure PLL to 96MHz * 3. Switch Master Clock (MCK) on PLL/2 = 48MHz Так что возможно все дело в тактовой частоте - при запуске под отладчиком генератор запускается по командам из mac-файла. У вас же в main нигде явно генератор не запускается. Не знаю, от чего камень тактируется при старте (см. даташит), но явно это не 48 МГц. Возможно, что просто Delay(8000000) превращается в ого-го задержку  . В примере, кстати, светодиод должен сразу загореться или после задержки?
|
|
|
|
|
Jan 9 2010, 12:38
|
Группа: Участник
Сообщений: 11
Регистрация: 6-01-10
Пользователь №: 54 650

|
Цитата(Student Pupkin @ Jan 9 2010, 11:32)  В принципе отличие тут одно - при запуске под отладчиком предварительно выполняется mac-файл. Похоже вы правы - если отключить мак файл, то отладчик зависает в функции wait, в то время как getting started работает и с отключенным маком. Спасибо большое, буду разбираться с клоками. А для чего вообще тогда этот мак, если и без него работает? Что то поторопился с выводами, не в этом дело похоже.. Запускается все и без маков. Попробовал в обоих проектах отключить маки, оба прекрасно работают в отладчике и без них. Если даже ставлю задержку в один такт или вообще отключаю все равно бинарник не работает. Макро файл похоже, подхватывается системный по умолчанию. Но на проблему с частотой все равно не похоже при задержке в один такт светодиоды хоть раз бы мигнули.
Сообщение отредактировал Arkasha - Jan 9 2010, 13:28
Причина редактирования: Нарушение п.3.4 Правил форума.
|
|
|
|
Сообщений в этой теме
Arkasha Не работает bin файл для SAM7S Jan 8 2010, 20:30       Arkasha Цитата(Сергей Борщ @ Jan 9 2010, 23:12) И... Jan 10 2010, 09:16      Student Pupkin Цитата(Arkasha @ Jan 9 2010, 15:38) А для... Jan 9 2010, 20:18 Arkasha Ничего не понимаю - сейчас взял другой проект с са... Jan 10 2010, 12:07 ADA007 Цитата(Arkasha @ Jan 10 2010, 16:07) Я пр... Jan 10 2010, 16:42 Arkasha Я в основном флешером прошиваю, который из H-JTAGа... Jan 10 2010, 19:31 Student Pupkin Цитата(Arkasha @ Jan 10 2010, 22:31) Сам ... Jan 10 2010, 22:02 Arkasha Getting started это атмейловский пример из поставк... Jan 14 2010, 10:28 dimka76 Цитата(Arkasha @ Jan 8 2010, 23:30) Проек... Jan 14 2010, 12:25 Arkasha Спасибо вам огромное! Сейчас буду разбираться.... Jan 15 2010, 13:55 Arkasha Почему то при каждом запуске спрашивает про местон... Jan 15 2010, 20:18 dimka76 Цитата(Arkasha @ Jan 15 2010, 23:18) Поче... Jan 16 2010, 05:08  Arkasha Цитата(dimka76 @ Jan 16 2010, 08:08) Быва... Jan 16 2010, 10:28   dimka76 Ну, тогда не знаю.
Попробуйте заново проект собра... Jan 19 2010, 06:22   rat Цитата(Arkasha @ Jan 16 2010, 16:28) Проб... Mar 16 2011, 09:52
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|