Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: getting started with SAM7-P64
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
abit
Здравствуйте, есть плата от Olimex sam7-p64, есть лицензионный IAR 6.30 (покупался для других плат тоже на базе AT91SAM7 года 2.5-3 назад), к этой плате я так понимаю он тоже подойдёт, тыкаюсь на оф.сайт этой платы - там есть примеры кода ( https://www.olimex.com/Products/ARM/Atmel/SAM7-P64/ ) справа, раздел SOFTWARE, весь код хоть и под IAR - ничего не собирается, ошибки типа

>>RSEG INTRAMSTART_REMAP

Error[40]: Bad instruction D:\IAR\SAM7-P64-blinking-LED\AT91SAM7S-Basic\compil\SrcIAR\Cstartup.s79 34

>> org 0

Error[0]: Invalid syntax D:\IAR\SAM7-P64-blinking-LED\AT91SAM7S-Basic\compil\SrcIAR\Cstartup.s79 152

поэтому три вопроса:
1) что не так в коде с официальных страниц?
2) какова цель ассемблера в этих исходниках, я так понимаю - файлы типа board.h, а уж тем более асм-код., которые в проекте по хорошему должны быть внутри IAR и сами инклудится при выборе чипа, почему в IAR нет подобного набора хидеров и асм?
3) вопрос на будущее, если плату прошить по usb, скажем в hid-устройство, я так понимаю она впердь не будет определяться как at91-устройство и перепрограммировать не удастся? (со старыми платами я работал через JTAG-ICE и меня этот вопрос не интересовал)

Благодарю за ответы
aaarrr
Цитата(abit @ Mar 4 2015, 00:10) *
1) что не так в коде с официальных страниц?

Наверное, он предназначен для какой-нибудь древней версии IAR.
Лучше посмотрите содержимое \examples в вашем IAR'е, там должно быть полно примеров для SAM.

Цитата(abit @ Mar 4 2015, 00:10) *
2) какова цель ассемблера в этих исходниках, я так понимаю - файлы типа board.h, а уж тем более асм-код., которые в проекте по хорошему должны быть внутри IAR и сами инклудится при выборе чипа, почему в IAR нет подобного набора хидеров и асм?

На ассемблере написан стартап, содержащий вектора прерываний и инициализацию стеков. Его каждый волен писать на свой вкус.

Цитата(abit @ Mar 4 2015, 00:10) *
3) вопрос на будущее, если плату прошить по usb, скажем в hid-устройство, я так понимаю она впердь не будет определяться как at91-устройство и перепрограммировать не удастся? (со старыми платами я работал через JTAG-ICE и меня этот вопрос не интересовал)

Можно будет восстановить оригинальный загрузчик путем некоторых манипуляций с пинами. Процедура не очень удобная, но она есть.
abit
aaarrr
Приветствую!
немного оффтопа: Помню однажды Вы мне сильно помогли, когда мне впервые только вручили плату на ARM7, до сих пор помню ту историю ( http://electronix.ru/forum/index.php?showtopic=94496 ), сильно благодарен

но я, знаете многое позабыл с тех времён, но C++ то я знаю получше Си и когда в example от IAR пишут iprintf/iscanf или #include "Board.h" под видом кода на С++ мандраж хватает, поэтому я сделал вывод, что писали либо безграмотные люди эти примеры, либо в IAR нет C++, примеры на Си не стал открывать по той же причине, решив, что лучше возьму готовый код с оффициального сайта своей платы, знаете я беру хидеры например к плате ICP-DAS STEP 200, которая вообще для ISA слота, когда вы вообще думаете ISA-слоты были и сколько лет этой плате? и они успешно компилируются и в gcc и в fpc современном под современной ОС, причины 2 - 1)обратная совместимость компиляторов и ОС, 2) все функции, что описаны в хидерах описательны, никаких асм-кодов, вся реализация функций для конкретной ОС лежит в компиляторе, в котором она компилируется
если же проблема в стартапе, то ладно, я уже туповат, буду ковыряться, насчёт пинов я вроде бы сейчас разобрался, там действительно есть перемчыки, одна из них TEST, которую надо замкнуть на 10 секунд, потом выключить плату и перемычку разомкнуть, как-то странно выглядит инструкция, но я просто боюсь угробить бутлоадер, чтобы потом SAM-BA плату внезапно не признавала (раньше не боялся, так как через JTAG программировал)
aaarrr
TEST надо замкнуть, потом включить питание, подождать 10-15 секунд, выключить питание, разомкнуть. Не беспокойтесь, угробить совсем bootloader нельзя: он прошит в ROM.
Golikov A.
Цитата
пишут iprintf/iscanf или #include "Board.h" под видом кода на С++ мандраж хватает,

просто интересно, как выглядит код под видом С и как он отличается от кода под видом С++

в желез часто мешанина, потому что начинали когда плюсов не было, а сейчас они все активно отжимают под себя популярность. Потому коды часто вперемешку, но зачем этого боятся?

стартапы очень часто на ассемблере, потому что минимум того, что именно надо.
Сергей Борщ
Цитата(abit @ Mar 4 2015, 00:34) *
знаете я беру хидеры например к плате ICP-DAS STEP 200, которая вообще для ISA слота
Берите заголовочные файлы от своего примера - они тоже будут компилироваться. Вы же берете ассемблерный исходник. Ассемблер у ИАРа в какой-то момент поменялся - прогресс, однако.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.