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

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

Отправлено Jolik 06 декабря 2004 г. 10:43
В ответ на: команда телепатов ... отправлено телепаты 06 декабря 2004 г. 06:35

Камень 5509А. В проекте указан явно (CHIP_5509A)

используемая компилером команда адресации не зависит от бита совместимости (во всяком случае об этом в даташите ни слова):
*ARn(T0/AR0)

ARn is not modified.

ARn is used as a base
pointer. The 16-bit signed constant in T0 or
AR0 is used as an offset from that base
pointer.
Data-memory (Smem, Lmem)
Memory-mapped register
(Smem, Lmem)
Register bit (Baddr)
I/O-space (Smem)

собственно у меня нет притензий к используемому компилятором типу адресации - непонятно зачем он вычисляет индекс в Т0 а для получения данных использует AR0 ?

А локальная задача приведена здесь http://www.telesys.ru/wwwboards/dsp/163/messages/46773.shtml . Ожидаемый результат - модификация элементов массива.
Полученный результат - массив остается девственно нетронут.
Перестал работать цикл (исходники приведены). Полез в АСМ (может не
стоило?) и обнаружил, что

0150E1 a4310148c9 MOV *(#148c9h),T0
0150E6 5040 SFTL T0,#1
0150E8 4014 ADD #1,T0
0150EA a96b MOV *AR3(AR0),AR1

индекс "готовится" в Т0, а при выборке из памяти используется AR0. Если MOV *AR3(Т0),AR1. и MOV *AR3(AR0),AR1 - это одно и тоже,тогда остается признать себя _пользователем_ и перестать баламутить конфу.


ЗЫ: за "_пользователя_" спасибо...

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru