我在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
如果我一步一步地执行程序,它的工作非常好,但如果我只是运行程序,我需要按两次按钮,然后才能识别输入。显然,模拟处理器忽略第一个输入。我怎样才能避免这个问题?
答案 0 :(得分:0)
这似乎是一个UI问题。从一些简短的实验中可以看出,#34;模拟处理器忽略了第一个输入"单击运行按钮会使焦点 * ,所以你必须在窗口中点击任何地方(或切换到另一个窗口并返回),然后才能再次正确注册点击甚至鼠标移动。这就是你的第一次点击消失的地方。
*从我的Win32时代起,我记得在焦点对焦时禁用对话框控件被认为是一件坏事,可能会混淆窗口管理器;这可能是这里发生的事情。