【发布时间】:2014-03-28 09:59:11
【问题描述】:
编写两 (2) 个 ARM 汇编语言子例程,称为 output_char 和 read_char。 这些子程序将允许用户输入一个字符并通过 UART 在 PuTTy 中显示该字符。 所有用户输入都应回显到显示屏
我尝试编写代码,但没有成功。
U0LSR EQU 0x14
register EQU 0xE000C000
STMFD SP!,{lr}
read_character
LDR r0, =0xE000C014
LDRB r1, [r0]
BIC r1, r1, #0xFFFFFFFE
CMP r1, #0
BEQ read_character
LDR r6, =register
LDR r2, [r6]
output_character
LDR r0, =0xE000C014
LDRB r1, [r0]
BIC r1, r1, #0xFFFFFFEF
MOV r1, r1, LSR #1
CMP r1, #0
BEQ output_character
LDR r6, =register
STR r2, [r6]
LDMFD sp!, {lr}
BX lr
【问题讨论】:
-
这与您之前提出的问题 (stackoverflow.com/questions/22025929/…) 有何不同?
-
我实际上提出了这个问题。对不起,这是我第一次来这里。我将删除之前的问题。
-
尝试从只输出 0x30 到 0x39 字符的循环开始。用 for(r2=0x30;r2
-
@dwelch 和 output_character 吃掉堆栈(你会得到堆栈下溢)。推送链接寄存器在顶部,不能称为无入口点(标签)。
-
我们不知道您的 UART 是否设置正确,或者您的电缆等是否连接正确。串行通信无法工作的方式数不胜数,我们无法通过博客修复代码和硬件。
标签: assembly input arm output uart