[an error occurred while processing this directive]
Ответ: (+)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено 03 сентября 2003 г. 15:28
В ответ на: По поводу проекта в CCS отправлено magestik 03 сентября 2003 г. 14:53

для "чисто асма" правильно так:

1). Объявить секцию ".vectors". В ней расположить командами ".ivect" все вектора, включая нулевой - то есть резета. нулевой вектор указать на твой 'main', и параметрами указать режим стека. например у меня нулевой вектор объявлен


vecs: .ivec begin, USE_RETA
;и далее остальные .ivec

2). Объявить секцию например ".init". Там поставить метку start: , загрузить SP, SSP, IVPD, IVPH. В IVPD и IVPH. Последние грузить например так


mov #vecs>>8,mmap(@IVPD)
mov #vecs>>8,mmap(@IVPH)

и после загрузки этих регистров и требуемого кол-ва NOP выполнить команду RESET. Метку start объявить глобальной.

3). В секции .text поставить метку begin: и писать свою прогу.

Осталось написать .cmd файл для линкера, расположив там все секции как надо. И .cmd файл для HEX55, в котором объявить секции, экспортируемые в boot table и метку "start" как entry-point. У меня этот CMD выглядит так


debug\bootload.out
-i
-memwidth 8
-boot
-serial8
-v5510:2
-e start
SECTIONS { .vectors = boot, .init = boot, .text = boot, .data=boot, .n2270_data=boot }

А вот откуда у Вас берется лабуда, я не знаю.... Меньше всяких C-run time прилинковывать надо.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru