Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: IAR Embedded Workbench
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Limp
Всем доброго дня!
Товарищи, помогите разобраться новичку, которому приходится начинать с абсолютного нуля.
Фирма приобрела плату AT91SAM7x-EK (AT91SAM7x256) вместе с IAR-ом, но без JTAG. Поставила ужасающе маленькие сроки для изучения и программирования.
Здесь на форуме я перелопатил кучу тем по получению бинарного файла в IAR-е, но все равно не получилось.
Загрузил проект, котоый был поставлен вместе с платой. Скидываю на форум данный проект в rar -е.
Установил в IAR-e Project->Options->Debugger-> Setup->Driver-> Simulator. Раньше стоял J-Link.
В окне Workspace выбираю проект Basic Flash_Debug и компилирую.
Все компилируется и запускается в симуляторе. Но bin-файла нет. А мне нужно SAM-BA -ой загрузить программу во флэшку.
Выбираю Project->Options->Linker->Extra Output->Format->Output format->raw binary. При этом добавляется лишь файл Basic.а79.
В Extra options пробовал вставить команду -Oraw-binary,(CODE)=.bin или -Ompds-code,(CODE)=.bin
При этом bin-файл создавался, но какой-то левый, с таким содержанием, коглда я его просматриваю в IAR-е:
tàŸåty ` I?"
` I b�nÉüÕ IÁb�nIüÕ�n üÕ ! c�n üÕ k "
C c�n ü H I ` à !AC J KSP@ ¬(÷Û
H I ` ¼à hTh h

Что у меня в проекте не так?
Как сделать bin-файл?
Знаю, что тут на форуме уже не раз обсуждалась эта тема, но мне как новичку еще много не понятно в ваших объяснениях. Следовал некоторым советам на форуме, и пересмотрел кучу PDF в Helpe, но все равно не получилось.
Пожалуйста, помогите!!!
И еще...
В окне Workspace есть Basic RAM_Debug для, как я понимаю, отладки с помощью JTAG в ОЗУ платы, а для чего проект Basic - bin?
Буду очень признателен, если кто-нибудь скинет свой простенький проект, где бы мигали диоды, для AT91SAM7x-EK (AT91SAM7x256) с bin-файлом.
KRS
Цитата(Limp @ Feb 6 2008, 16:27) *
При этом bin-файл создавался, но какой-то левый, с таким содержанием, коглда я его просматриваю в IAR-е:
tàŸåty ` I?"
` I b�nÉüÕ IÁb�nIüÕ�n üÕ ! c�n üÕ k "
C c�n ü H I ` à !AC J KSP@ ¬(÷Û
H I ` ¼à hTh h

На то он и bin файл, в текстовом виде его не посмотреть.

А по поводу отладчика - самый быстрый и дешовый вариант IMHO собрать wiggler и использовать H-JTAG будет отлично работать!
Limp
Цитата(KRS @ Feb 6 2008, 16:36) *
На то он и bin файл, в текстовом виде его не посмотреть.

А по поводу отладчика - самый быстрый и дешовый вариант IMHO собрать wiggler и использовать H-JTAG будет отлично работать!


Wiggler мне ни о чем не говорит.
Почему просматриваю такой код когда ставлю -Ointel-extended,(CODE)=.hex
:020000040000FA
:100000000F0000EAFEFFFFEAFEFFFFEAFEFFFFEA45
:10001000FEFFFFEAFEFFFFEA1C0000EA0090A0E1FD
:10002000040198E5D3F021E30E502DE90FE0A0E1A3
:1000300010FF2FE10E50BDE8D1F021E30900A0E14F
:1000400004F05EE2A0D09FE5A0009FE50FE0A0E1F4
:1000500010FF2FE190009FE5D1F021E390809FE514
:10006000D2F021E300D0A0E1600040E213F021E3F0
:1000700000D0A0E17C009FE50FE0A0E110FF2FE1A0
:1000800074E09FE574009FE510FF2FE1FEFFFFEA9B
:1000900004E04EE200402DE900E04FE100402DE990
:1000A00001002DE948E09FE500019EE500E18EE5B5
:1000B00013F021E30E502DE90FE0A0E110FF2FE136
:1000C0000E50BDE892F021E324E09FE530E18EE59B
:1000D0000100BDE80040BDE80EF06FE10080FDE8E2
:1000E000FEFFFFEAFEFFFFEAFEFFFFEA000021003D
:1000F0000501000000F0FFFF990100008C000000E6
:100100007902000000B51A489F21C943194A0A60C4
:100110001949802212020A6018490162816EC907DA
:10012000FCD51749C162816E4907FCD5816E09076C
:10013000FCD504210163816E0907FCD5016B032204
:100140000A430263816E0907FCD50E480E4901601F
:10015000012005E0042141430A4A0C4B5350401C46
:100160001F28F7DB0A480B49016001BC0047C04665
:1001700000FCFFFF0001300044FDFFFF010600000E
:10018000051C190080F0FFFFE0000000E400000003
:1001900034F1FFFFE8000000124A134870B481B048
:1001A000111C121D0AE00B6854681568002B03D05F
:1001B0005B1EE65CEE54FBD10C310C3281420CD25A
:1001C00053681468A342EED10D680026231C002D4D
:1001D000F2D06D1E5E55FCD1EEE701B070BC00B0F0
:1001E0007047C046FC020000080300000160016186
:1001F00070470000C06B70470163704741637047F0
:100200000161704700B53C48FFF7F4FF00030AD4D2
:10021000184800680D49884205D3164815490968F1
:100220000B4A891801603448FFF7E4FF00040AD440
:10023000104800680749884205D20E480D490968F0
:10024000054A8918016001BC0047C046B912000088
:1002500048EDFFFF0040DB02B812000000B5FFF7D9
:10026000D1FF002000E0401C024909688842FAD30F
:1002700001BC00470000200010B504211C48FFF716
:10028000BFFF0F211C48FFF7B1FF0F211A48FFF7EE
:10029000B3FF002412E004206043164909581648B1
:1002A000FFF7ACFFFFF7DAFF04206043114909585C
:1002B0001148FFF7A1FFFFF7D1FF641C042CEADB14
:1002C0000324002CE5D4042060430A4909580A4855
:1002D000FFF794FFFFF7C2FF042060430549095868
:1002E0000548FFF789FFFFF7B9FF641EE9E7C0463D
:1002F00000FCFFFF0C03000000F4FFFF04000000FF
:100300000000200008030000F0A703000100000027
:1003100002000000040000000800000000000000CF
:0C032000000000000000000000000000D1
:00000001FF
tag
Забросьте ссылку на проект пожалуйста.

Выберите в окне Workspace проект Basic Flash_Release и Project->Options->Linker->Output->Format->Output format->raw binary и откомпилируйте должен получиться бинарник.



Цитата(KRS @ Feb 6 2008, 16:36) *
На то он и bin файл, в текстовом виде его не посмотреть.


...ну почему же, открываете в Total Commander по F3 и смотрите
Baser
Цитата(Limp @ Feb 6 2008, 15:27) *
Все компилируется и запускается в симуляторе. Но bin-файла нет. А мне нужно SAM-BA -ой загрузить программу во флэшку.
...
Как сделать bin-файл?

А вы уверены, что вам для программатора (для прошивки во флеш) нужен именно bin файл. Обычно для этого применяется формат Intel-extended HEX

Цитата
Выбираю Project->Options->Linker->Extra Output->Format->Output format->raw binary. При этом добавляется лишь файл Basic.а79.
В Extra options пробовал вставить команду -Oraw-binary,(CODE)=.bin или -Ompds-code,(CODE)=.bin
При этом bin-файл создавался, но какой-то левый, с таким содержанием, коглда я его просматриваю в IAR-е:
tàŸåty ` I?" ...

Каким образом вы его "просматриваете" в ИАРе? В текстовом редакторе или загрузив в симулятор?
В текстовом редакторе он так и должен выглядеть, это образ памяти.

А для отладки (для симулятора) нужно генерить файл в формате ubrof8
Limp
Цитата(tag @ Feb 6 2008, 16:54) *
Забросьте ссылку на проект пожалуйста.

Выберите в окне Workspace проект Basic Flash_Release и Project->Options->Linker->Output->Format->Output format->raw binary и откомпилируйте должен получиться бинарник.
...ну почему же, открываете в Total Commander по F3 и смотрите
desh
Насколько я знаю что бы зашить контроллер самбой, файл должен быть в формате bin. Получить его можно из hex с помощью утилиты hex2bin.exe. посмотрите в поиске примерно так hex2bin

Так же в одной из предпоследних версий IAR была ошибка при создании hex файлов связанная с линковщиком.
Wiggler - это простой переходник LPT <-> JTAG.
KRS
Цитата(Limp @ Feb 6 2008, 16:47) *
Wiggler мне ни о чем не говорит.

LPT порт цепляется прямо на ноги JTAG (ну по пути только защита стоит и преобразование уровня обычно)
схема есть на сайте
http://www.hjtag.com/download.html
там же собственно говоря и сам h-jtag

Если готовый то можно купить в МТ например за 20 баксов были или может быть лучше там MT-LINK купить

Цитата(Limp @ Feb 6 2008, 16:47) *
Почему просматриваю такой код когда ставлю -Ointel-extended,(CODE)=.hex
:020000040000FA

Потому что hex - это текстовый файл (грубо говоря в шестнадцатиричном виде плюс еще адреса, контрольная сумма, но все в виде шестнадцатиричных чисел)
zltigo
Цитата(Limp @ Feb 6 2008, 16:24) *
Выбираю Project->Options->Linker->Extra Output->Format->Output format->raw binary. При этом добавляется лишь файл Basic.а79.

Ну это он и есть, только с расширением по умолчанию, который Вы не поменяли.
Цитата
При этом bin-файл создавался, но какой-то левый...

О! А как по Вашему должен выглядеть "правый" бинарный файл при просмотре его в ТЕКСТОВОМ редакторе?
Цитата
но все равно не получилось.

Получилось smile.gif
Цитата
Поставила ужасающе маленькие сроки для изучения и программирования.

Так, из спортивного интереса, - какие?
Limp
Всем доброго дня!
Спасибо всем кто отозвался на мою беду!
То, что нельзя просмотреть bin-файл в IRE-теперь понятно, я думал, что он должен просматриваться как и hex.
Но.... Что-то я делаю не так....
Давайте разберем мой пример. Вот ссылка проекта который я хочу откомпилировать и получить bin-файл, чтобы потом с помощью SAM-BA загрузить плату AT91SAM7x-EK (AT91SAM7x256).
http://sam7-ex256.narod.ru/start.html

Вот мои действия:
1.Открыл проект prsam.eww. При этом выводятся два сообщения:
1.1 "Broken options were detected in the project fale. A backup copy will made (See log window for detalis) OK
1.2 The project 'sam ' contains the unkhow tool 'LMIFTDI' OK
(Хм... Что бы все это значило?)
Но все же загрузился.

2 Теперь для меня загадка. В окне Workspace выбрать Debug или Release? Выбираю Release.

3 Произвожу настройку IAR.
Project->Options->General Options->Target->->Device - Atmel AT91SAM7X256
Project->Options->Linker->Extra Output->Format->Output format->raw binary
Ставлю галочку Override default и переименовываю .а79 в bin.
Project->Options->Linker->Linker -> Config -> Override default -> at91SAM7X256_NoRemap.xcl ($PROJ_DIR$\xcl\at91SAM7X256_NoRemap.xcl)
Вроде все...
Компилирую. В проекте появляется sam.bin
Запускаю SAM-BA. Связь по USB.
В SAM-BA выбираю Flash. Выбираю sam.bin и заливаю с адреса 0х100000.
Читаю Flash c с адреса 0х100000 и что-то не очень мне это нравится.....
по адресу 0х100000 - 0хЕ59FF018, дальше 0х0 до
0х100020 - 0х00000094 снова нули и т.д.

Но все равно запускаю на выполнение: go 0x100000.
Хм... Дудки.. Должны мигать диоды.
Господи, ну что не так?
KRS
Цитата(Limp @ Feb 12 2008, 15:12) *
1.2 The project 'sam ' contains the unkhow tool 'LMIFTDI' OK
(Хм... Что бы все это значило?)
Но все же загрузился.

Судя по всему у вас старая версия IAR и она не знает отладчика LMFTDI
это не страшно - LMFTDI все равно поддерживает только CORTEX-M3

Цитата(Limp @ Feb 12 2008, 15:12) *
Но все равно запускаю на выполнение: go 0x100000.
Хм... Дудки.. Должны мигать диоды.
Господи, ну что не так?

А запускать надо с 0.
Проект скомпилирован так что должен запускаться из флеша отмапленного на 0
(если хотите что бы и с 0x100000 запускалось надо поправить вектора прерываний что бы они использовали относительные переходы только)
Limp
Цитата(KRS @ Feb 12 2008, 16:19) *
Судя по всему у вас старая версия IAR и она не знает отладчика LMFTDI
это не страшно - LMFTDI все равно поддерживает только CORTEX-M3
А запускать надо с 0.
Проект скомпилирован так что должен запускаться из флеша отмапленного на 0
(если хотите что бы и с 0x100000 запускалось надо поправить вектора прерываний что бы они использовали относительные переходы только)


Пробовал. Не запускается с 0. Все таки большое подозрение у меня, что бинарник не правильно компилируется. А то, что проект должен запускаться из флеша отмапленного на 0, указано в xcl-файле?
KRS
Цитата(Limp @ Feb 12 2008, 16:41) *
Пробовал. Не запускается с 0. Все таки большое подозрение у меня, что бинарник не правильно компилируется. А то, что проект должен запускаться из флеша отмапленного на 0, указано в xcl-файле?

да в xcl файле сегмент INTVEC с 0 начинается, а т.к. в проекте используется стандартный IARовский стартап то там абсолютные переходы обычно.( ldr pc,[pc,#24])

А вы пробовали запустить проект в IARовском симуляторе?
Limp
Цитата(KRS @ Feb 12 2008, 16:54) *
да в xcl файле сегмент INTVEC с 0 начинается, а т.к. в проекте используется стандартный IARовский стартап то там абсолютные переходы обычно.( ldr pc,[pc,#24])

А вы пробовали запустить проект в IARовском симуляторе?


Ну вообщето пробовал. Но четко еще не представляю правильно ли я делаю. Я полагаю, нужно скомпилировать проект Debug. При опции Debug->Simulator. И нажать кнопочку Debug.
Трассировать не пробовал. Мне очень необходимо научиться получать бинарник и правильно загружать в плату.
KRS
Цитата(Limp @ Feb 12 2008, 17:00) *
Ну вообщето пробовал. Но четко еще не представляю правильно ли я делаю. Я полагаю, нужно скомпилировать проект Debug. При опции Debug->Simulator. И нажать кнопочку Debug.

Да достаточно просто поставить Debug->Simulator пересобирать не надо это только на дебагер влияет.
А еще лучше создать конфигурацию для отладки в симуляторе.

Цитата(Limp @ Feb 12 2008, 17:00) *
Трассировать не пробовал. Мне очень необходимо научиться получать бинарник и правильно загружать в плату.

Ну бинарник у вас уже олучается. И самба его прошивает.

Раз у вас нет отладчика, можно хотя бы в симуляторе посмотреть что происходит.
Limp
Цитата(KRS @ Feb 12 2008, 17:08) *
Да достаточно просто поставить Debug->Simulator пересобирать не надо это только на дебагер влияет.
А еще лучше создать конфигурацию для отладки в симуляторе.
Ну бинарник у вас уже олучается. И самба его прошивает.

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


Да, SAM-BA прошивает. Я где-то скачал бинарник (без проекта) и загрузил. Заработало, диоды замигали. Но вот со своим проектом, споткнулся. Не хочет работать, хоть убей. Не могу понять в чем причина. Хотелось бы узнать, что собой представляет конфигурация для отладки в симуляторе и как ее сделать? Пока что я во многом с IAR некопенгаген.
KRS
Цитата(Limp @ Feb 13 2008, 08:50) *
Хотелось бы узнать, что собой представляет конфигурация для отладки в симуляторе и как ее сделать?

Project->Edit Configurations...
там можно создать новую. (на основе имеющейся или стандартной)
Вообще есть документ
Help->Arm Embedded Workbench User Guide
Да и контекстный Help по F1 тоже работает.
Сергей Борщ
Цитата(Limp @ Feb 13 2008, 07:50) *
Хотелось бы узнать, что собой представляет конфигурация для отладки в симуляторе и как ее сделать?
Как сделать писал вот тут. В Project -> Options -> Debugger укажите симулятор.
Limp
Цитата(KRS @ Feb 13 2008, 11:14) *
Project->Edit Configurations...
там можно создать новую. (на основе имеющейся или стандартной)
Вообще есть документ
Help->Arm Embedded Workbench User Guide
Да и контекстный Help по F1 тоже работает.


Project->Edit Configurations... Да, вспомнил. Пока еще мысли разъежаются по всему IAR-у
Спасибо что напомнили. Сейчас только и лопатю Arm Embedded Workbench User Guide. Зараза на английском.

Цитата(Сергей Борщ @ Feb 13 2008, 11:42) *
Как сделать писал вот тут. В Project -> Options -> Debugger укажите симулятор.


Читал ваше описание. Неоднократно. Спасибо.
Как раз и пользовался вашими наставлениями при настройке IAR-a.
Вообще-то по минимуму с настройкой я разобрался.
Уже создавал бинарник из HEX c помощью НЕХ2BIN. Результат 0. Ну не может быть в бинарном файле после загрузки в FLASH между адресами 0х100000 и 0х100020 сплошные нули!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.