А
МИКРОКОНТРОЛЛЕРЫ
Y
subl
jns
int 15:
%aO,l
$ 2
; Уменьшить адрес (он, по совместительству, и счетчик цикла)
; Загрузка еще не закончена.
..
; Основная программа.
..
id:
; <4> Подпрограмма запуска выгрузки данных из теневого ОЗУ в ЭСППЗУ.
push
#C
Нам он будет нужен для работы.
ldr
#C, 0A8h
Сегмент С - область рабочих ячеек программы выгрузки.
cst
8
<5> Назначение этой команды будет ясно из следующей статьи.
movl
%c0,OOh
Выгрузку начинаем в адрес 0011 ЭСППЗУ
movl
%cl,OBOh
Выгрузку начинаем с адреса В011 теневого ОЗУ.
ldr
#C,38h
Теперь сегмент С - область регистров ЭСППЗУ.
movl
%cl,OOh
<6> Выполняем фиктивный вывод первого байта в нулевой
адрес ЭСППЗУ.
movl
%c7,OFFh
Заносим любую ерунду в регистр данных, поскольку она потом
все равно будет заменена.
movl
%c0,00010001b
Запускаем операцию записи в ЭСППЗУ с разрешенными
прерываниями.
sst
8
pop
#C
rts
; <7> Обработчик прерываний по записи в ЭСППЗУ. Организует процесс выгрузки.
push
«А
Сохраняем рабочие регистры.
push
push
«4
push
«5
ldr
#А,0A8h
Сегмент А - адрес рабочей области программы выгрузки.
ldr
#C,38h
Сегмент С - область регистров ЭСППЗУ.
cmpl
%а0,10h
<8> Не превысил ли адрес ЭСППЗУ допустимого?
3*
$1
ДА - выгрузка закончена.
mtpr
#4,%al
<9> Загрузить IR0 адресом ячейки теневого ОЗУ.
ldr
#5,AUTOINCREMENT
mov
%ol,%a0
Загрузить регистр адреса ЭСППЗУ.
mov
%c7,%d6
Загрузить регистр данных ЭСППЗУ очередным байтом из
теневого ОЗУ.
mov
%c0,00010001b
Запуотить операцию записи о разрешенными прерываниями.
mfpr
%al,«4
<10> Сохранить ардес следующей выгружаемой ячейки ЭСППЗУ.
addl
%a0,1
Увеличить выгружаемый адрес.
pop
«5
pop
«4
\
pop
#C
pop
#A
$
1
:
гЪ
1
Пояснения по программе - такж е минимальные:
1. Не забудьте добавить ком анду перехода на обработчик прерываний по записи в ЭС ППЗУ (она располага-
ется по адресу ОООРЬ).
2. Первый ш аг, выполняемый м икроконтроллером йа участке инициализации - за гр узка данных из ЭСППЗУ
в теневое ОЗУ. Н азначение этого участка очевидное - побайтное считы вание всех необходимых данных из
ЭСППЗУ и занесение их в теневое О ЗУ.
3. Напоминаем читателю порядок чтения данных из ЭСППЗУ - вначале необходимо занести в регистр адреса
ЭСППЗУ адрес считы ваемой ячейки, затем занести в управляющ ий регистр бит, запускаю щ ий операцию чте-
ния, а затем дождаться, когда он будет сброш ен (см статью “О писание м икроконтроллера”).
Н **
Радиолюбитель - 0 6/2 0 06 1
предыдущая страница 43 Радиолюбитель 2006-06 читать онлайн следующая страница 45 Радиолюбитель 2006-06 читать онлайн Домой Выключить/включить текст