Регистр делителя тактовых импульсов SPORT1 0x3FF1
SPORT1_Control_Reg Регистр управления SPORT1 0x3FF2
SPORT0_Autobuf Регистр управления автобуферизацией SPORT0 0x3FF3
SPORT0_RFSDIV Регистр делителя кадровых импульсов SPORT0 0x3FF4
SPORT0_SCLKDIV Регистр делителя тактовых импульсов SPORT0 0x3FF5
SPORT0_Control_Reg Регистр управления SPORT0 0x3FF6
SPORT0_TX_Channels0 Регистр младшего слова передатчика SPORT0 0x3FF7
SPORT0_TX_Channels1 Регистр старшего слова передатчика SPORT0 0x3FF8
SPORT0_RX_Channels0 Регистр младшего слова приемника SPORT0 0x3FF9
SPORT0_RX_Channels1 Регистр старшего слова приемника SPORT0 0x3FFA
TSCALE Регистр масштабирования таймера 0x3FFB
TCOUNT Регистр счетчика таймера 0x3FFC
TPERIOD Регистр периода таймера 0x3FFD
DM_Wait_Reg Регистр тактов ожидания памяти данных 0x3FFE
System_Control_Reg Регистр управления системой 0x3FFF

Как видно из содержимого данного файла, в каждой его строке производится директивное назначение определенному символьному имени конкретного числового значения. Символьные имена могут быть произвольными, важно только, чтобы они одинаково записывались в данном файле и в самой программе. В дальнейшем мы часто будем использовать символьное описание регистров, для обращения к ним по записи или чтению из программы. В частности, в нашей программе mem_clr.dsp содержатся строки команд для обращения к регистру конфигурирования PFTYPE и регистру данных PFDATA программируемых флагов PF процессора. Файл def2181.h должен находиться в том же каталоге, в котором будет храниться файл программы во время ее трансляции. Иначе компилятор выдаст сообщение об ошибке во время компиляции программы.

Далее, в файле программы начинается запись команд. Поскольку с нулевого адреса памяти программ должны быть записаны векторы прерываний или их обработчики, первой располагается команда перехода jump BEGIN на начало программы, а затем команды возврата из прерывания rti для каждого из прерываний процессора. Все команды должны заканчиваться точкой с запятой, в соответствии с требованиями синтаксиса ассемблера. Заметьте, что в одной строке присутствует сразу несколько команд. Такая запись допускается компилятором ассемблера. Так как для каждого вектора прерывания в памяти программ отведено по четыре 24-разрядных ячейки памяти, а каждая команда процессора занимает одну 24- разрядную ячейку памяти, то оставшиеся неиспользованные ячейки памяти заполняются пустыми командами пор. Сразу же после метки BEGIN записаны команды инициализации конфигурационного регистра флагов PFTYPE с помощью рабочего регистра ax0 блока ALU процессора. Непосредственная запись константы в память данных не поддерживается процессором. Ниже располагаются строки комментариев с пояснением назначения каждого бита регистра флагов PFTYPE. Подобные записи позволяют хорошо документировать программу и облегчают тем самым ее отладку и последующее сопровождение. Аналогично описанным выше записям, в программе присутствуют строки команд записи в регистр данных PFDATA программируемых флагов слова управления светодиодом. Далее следуют команды инициализации некоторых регистров сигнального процессора. В частности, команда i0 = ^buf_dm; производит

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ОБРАНЕ

1

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату