реклама на сайте
подробности

 
 
> Не работает bin файл для SAM7S
Arkasha
сообщение Jan 8 2010, 20:30
Сообщение #1





Группа: Участник
Сообщений: 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
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Student Pupkin
сообщение Jan 8 2010, 20:47
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760



Цитата(Arkasha @ Jan 8 2010, 23:30) *
Все файлы конфигурации брал из IARовских примеров атмейл. Настройки проекта также брал из рабочих примеров.

1) В ИАР-е используются icf-файлы - в нем указания для компоновщика (linker) о том, по каким адресам разместить код-данные.
2) Все примеры включают в себя по два таких файла - один для размещения кода-данных в ОЗУ (для временной отладки) и один для размещения кода-данных во флэши (при запуске отладчика все это заливается во флэш - опционально можно отключить).
3) Разберитесь в настройках проекта - "linker" (где указать используемый icf-файл), debugger (галка для использования mac-файла и путь к нему при отладке из ОЗУ; галка для использования flashloadder-а при заливке проги во флэш). Посмотрите userguide и т.п.
Go to the top of the page
 
+Quote Post
Arkasha
сообщение Jan 8 2010, 21:08
Сообщение #3





Группа: Участник
Сообщений: 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
Причина редактирования: Излишнее цитирование.
Go to the top of the page
 
+Quote Post
Student Pupkin
сообщение Jan 8 2010, 23:33
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 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 забываете? Или может с ним косяк в плате, и каждый раз после передергивания питания флэш очищается?
Go to the top of the page
 
+Quote Post
Arkasha
сообщение Jan 9 2010, 07:00
Сообщение #5





Группа: Участник
Сообщений: 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
Причина редактирования: Излишнее цитирование.
Go to the top of the page
 
+Quote Post
Student Pupkin
сообщение Jan 9 2010, 08:32
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 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) превращается в ого-го задержку smile.gif.
В примере, кстати, светодиод должен сразу загореться или после задержки?
Go to the top of the page
 
+Quote Post
Arkasha
сообщение Jan 9 2010, 12:38
Сообщение #7





Группа: Участник
Сообщений: 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 Правил форума.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 9 2010, 20:12
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Arkasha @ Jan 9 2010, 14:38) *
при задержке в один такт светодиоды хоть раз бы мигнули.
И вы верите, что успели бы увидеть вспышку длительностью пусть даже 10 тактов пусть даже внутреннего 32 КГц генератора? Я не верю. Предлагаю простое решение - включайте/выключайте диод в бесконечном цикле. Если увидете свечение - уже хорошо. А определить - горит он или очень часто мигает при отсутствии осцилографа можно вольтметром - вольтметр покажет усредненное напряжение на ножке. Если светодиод мигает, то на выводе контроллера усредненное напряжение будет меньше напряжения питания.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 02:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01439 секунд с 7
ELECTRONIX ©2004-2016