Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
12 years ago

Need some help regarding the serial port(beginner)

We tried to link 2 DE2 boards together each connected to a seperate desktop computer. The goal was to write something in the Altera monitor terminal on one desktop and have it show up in the terminal of the other.

The code we ended up with didn't work and I'd be thankful if someone could read through it and see why it doesn't.

This was the code used:

.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:

# Read data from the JTAG port

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:

# Write data to the JTAG port

ldwio r4, 4(r6)

andhi r4, r4, 0xffff

beq r4, r0, END_PUT

stwio r5, 0(r6)

ret

READ_SERIAL:# Read data from the serial port

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:

# Write data to the serial port

ldwio r3, 4(r7)

andhi r3, r3, 0xffff

beq r3, r0, END_PUT

stwio r5, 0(r7)

ret

END_PUT:

ret

.end

No RepliesBe the first to reply