Вход

Просмотр полной версии : Вопросы по IAR ewz80



DimkaM
30.08.2011, 18:56
Не могу разобраться с настройками проекта. Есть пару вопросов:

1.Как компилить с определённого адреса.

2.Сделал простейший сампл:
void main(viod)
{
}А он мне на выходе файл в 467 байт, что сделать чтобы убрать лишнюю ерунду и получить нормальный бинарник?

3.То что он мне выдаёт, я даже незнаю как в спек запихать.

IanPo
30.08.2011, 19:56
3.Нужно сделать файл типа CODE. На ПК я делал плагином к Фару - создавал образ дискеты и туда бинарник совал. Там же задавал параметры - адрес загрузки. Но файл можно и из Бейсика грузить куда задашь.

DimkaM
31.08.2011, 10:48
... и туда бинарник совал...
Вот здесь у меня и проблема, выходной файлик неизвестного формата получается.
Сегодня ночью эмпирическим путём подобрал OutputFormat: Simple. Вроде бинарник вышел, правда с огромным заголовком.

Но остался вопрос про компиляцию в ОЗУ, IAR по умолчанию в ПЗУ компилит. Соответственно компилит с адреса 0х0100, вначале идет инициализация - перекидывает переменные в 0хС000, оставляет только константы.
В принципе можно и с 0х0100, но что делать с переменными?! Объявлять их как константы, но даст ли компилятор их изменять? В общем надо всё проверять и ковырятся.

NovaStorm
31.08.2011, 11:20
>Объявлять их как константы
Может static?

DimkaM
31.08.2011, 11:38
Может static?Статик пока не пробовал, надо попробовать и посмотреть как он его в памяти расположит, скорей всего получится как с глобальными переменными, будет из пзу в озу перекидывать.

Totem
31.08.2011, 13:50
DimkaM, можешь мне прислать IAR или выложить куда нить чтоб утянуть.?
zds2 указывается в проекте для чего компилить.

DimkaM
31.08.2011, 14:20
DimkaM, можешь мне прислать IAR или выложить куда нить чтоб утянуть.?
zds2 указывается в проекте для чего компилить.
Спасибо, попробую.

По поводу утянуть отписал в личку.

Totem
31.08.2011, 15:31
Спасибо. правде это не то, что искал
IAR Embedded Workbench for ZiLOG eZ80 v1.34A

NovaStorm
31.08.2011, 15:54
Totem, есть IAR Embedded Workbench for Zilog Z80 v4.06A
Вроде по имени хорошо гуглится.

Totem
31.08.2011, 16:11
Спасибо. правде это не то, что искал
IAR Embedded Workbench for ZiLOG eZ80 v1.34A
не мне именно этот нужен
все, что качал подстава

DimkaM
31.08.2011, 16:50
IAR Embedded Workbench for ZiLOG eZ80 v1.34A
Ща через пять минут в личке будет ewez80, но 1.33А

А зачем он тебе, он же z80 не держит.

Totem
31.08.2011, 17:12
а мне и не нужно у меня ez80:) ,буду премного благодарен

---------- Post added at 17:12 ---------- Previous post was at 16:54 ----------

Огромное спасибо!

DimkaM
31.08.2011, 17:15
а мне и не нужно у меня ez80:) Что за девайс паяешь, если не секрет?

Totem
31.08.2011, 17:21
Да нет
http://zx.pk.ru/showthread.php?t=14027

EEA
05.09.2011, 12:49
Но остался вопрос про компиляцию в ОЗУ, IAR по умолчанию в ПЗУ компилит. Соответственно компилит с адреса 0х0100, вначале идет инициализация - перекидывает переменные в 0хС000, оставляет только константы.
В принципе можно и с 0х0100, но что делать с переменными?! Объявлять их как константы, но даст ли компилятор их изменять? В общем надо всё проверять и ковырятся.

Посмотри, есть ли в папке твоего проекта файлик с расширением xcl?
Это командный файл линкера. В нем должна определяться конфигурация областей памяти.
Не найдешь в проекте - посмотри в папке установки IAR'а.


А он мне на выходе файл в 467 байт, что сделать чтобы убрать лишнюю ерунду и получить нормальный бинарник?


Опять же в папке проекта (или в папке IAR'а) должен быть файлик стартапа ("Cstartup.s01" или что-то в этом роде).
Там код, который выполняется еще до main'a. Переброс областей памяти - инициализация инициализируемых переменных, обнуление неинициализируемых и т.д. Но лучше этот код радикально не трогать, пока не будешь точно знать, как изменения повлияют на связку с кодом C-компилятора.

Документация на компилятор и линкер должна быть в папке IAR'а.

DimkaM
05.09.2011, 15:03
Ни у кого, случайно, нету pdf'ок в нормальном текстовом виде, а то у меня в виде картинок только. Поиск соответственно по документу не работает?

DimkaM
19.09.2011, 14:06
Не могу к функции прикрутить __C_task, ни через прагму ни напрямую.Лингуаже ексченже включен. Пробовал:

#pragma language=extended

#pragma function=__C_task
void main(void)
{
....
}
И вот так пробовал

#pragma language=extended

__C_task void main(void)
{
....
}
компилль ругается "Unknown #pragma construction"