Чтение / запись JTAG в сборке на DE2

Мы попытались соединить 2 платы DE2, каждая из которых подключена к отдельному настольному компьютеру. Цель состояла в том, чтобы написать что-то в мониторе Altera на одном рабочем столе и показать это в терминале другого. Код, с которым мы закончили, не работал, и я был бы благодарен, если бы кто-то смог прочитать его и понять, почему он не работает.

Этот код использовался:

.text
.global _start

_start:

movia sp, 0x007FFFFC #Max stack value

movia r6, 0x10001000 #Default address for the data register of JTAG

movia r7, 0x10001010 #Default address for the data register of the serial port


.macro PUSH reg
subi sp, sp, 4
stw \reg, 0(sp)
.endm

.macro POP reg
ldw \reg, 0(sp)
addi sp, sp, 4 
.endm


MAIN_LOOP:
call READ_JTAG
call READ_SERIAL
br MAIN_LOOP

READ_JTAG:
ldwio r4, 0(r6)
andi r8, r4, 0x8000
beq r8, r0, END_PUT
andi r5, r4, 0x00ff
PUSH r31
call WRITE_JTAG
call WRITE_SERIAL
POP r31
ret

WRITE_JTAG:
ldwio r4, 4(r6)
andhi r4, r4, 0xffff
beq r4, r0, END_PUT
stwio r5, 0(r6)
ret

READ_SERIAL:
ldwio r3, 0(r7)
andi r8, r3, 0x8000
beq r8, r0, END_PUT
andi r5, r3, 0x00ff
PUSH r31
call WRITE_JTAG
POP r31
ret

WRITE_SERIAL:
ldwio r3, 4(r7)
andhi r3, r3, 0xffff
beq r3, r0, END_PUT
stwio r5, 0(r7)
ret

END_PUT:
ret

.end

0 ответов

Другие вопросы по тегам