ARMsim:输入等待循环swi 0x203 0x202

时间:2016-10-05 13:00:40

标签: arm

我在ARMsim 1.9.1上练习ARM

我想知道如何让程序等待来自EmbestBoard的输入(来自蓝色键盘或黑色按钮)。我注意到没有按钮模式是0x0所以我想到了这个解决方案:

    .text

ENTRY

check_input:

swi 0x203 ;0x202 (same problem)

cmp r0,#0

beq check_input

mov r0,#0

adr r2,line

swi 0x204

@memory operands:

line: .asciz "Input was received"

.end

如果我一步一步地执行程序,它的工作非常好,但如果我只是运行程序,我需要按两次按钮,然后才能识别输入。显然,模拟处理器忽略第一个输入。我怎样才能避免这个问题?

1 个答案:

答案 0 :(得分:0)

这似乎是一个UI问题。从一些简短的实验中可以看出,#34;模拟处理器忽略了第一个输入"单击运行按钮会使焦点 * ,所以你必须在窗口中点击任何地方(或切换到另一个窗口并返回),然后才能再次正确注册点击甚至鼠标移动。这就是你的第一次点击消失的地方。

*从我的Win32时代起,我记得在焦点对焦时禁用对话框控件被认为是一件坏事,可能会混淆窗口管理器;这可能是这里发生的事情。