📄 uart_rxchar.s
字号:
.include "nios.s"
.text
;----------------------------------------
; Name: nr_uart_rxchar
; Description: Read character if available
; Input: %o0: UART base to use
; Output: %o0 = character 0-0xff, or -1 if none present
; Side Effects: %g0 & %g1 altered
; CWP Depth: 0
;
.global nr_uart_rxchar
nr_uart_rxchar:
.ifdef nasys_printf_uart
IFRnz %o0 ; if %o0 is zero, use "default" uart
BR rxCharA
NOP
MOVIA %o0,nasys_printf_uart
.endif ; nasys_printf_uart
rxCharA:
MOV %g0,%o0 ; %g0 -> uart
MOVI %o0,1
NEG %o0 ; %o0 gets -1 by default
PFX #2
LD %g1,[%g0] ; status register
SKP0 %g1,7 ; rx buffer empty? if no, keep the -1
LD %o0,[%g0] ; something for us? read into %o0.
JMP %o7
CMPI %o0,0 ; Set condition flags as per char.
; end of file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -