ARM Technical Support Knowledge Articles

RMTarget does not re-enable IRQs correctly

Applies to: ARM Firmware Suite, RealMonitor

Answer

This is fixed in AFS 1.4.
There is an error in the source code for RMTarget 1.0 that will sometimes cause IRQs to remain disabled when the foreground application is stopped. The effect of this is disrupt communication between the target and host, resulting in "RDI Warning 00200: Data link timeout error". To fix this, you must perform the following steps:

1) In the Sources/rm_asm.s file, locate the following text:

        ; Re-enable IRQs if they are enabled in the SPSR.
MRS a4, SPSR
TST a4, #PSR_IRQ_BIT
MRSEQ ip, CPSR
BICEQ ip, ip, #PSR_IRQ_BIT
MSREQ CPSR_f, ip
; IRQS NOW ENABLED.

2) Change the fields of the MSREQ instruction from '_f' to '_c', as follows:

        ; Re-enable IRQs if they are enabled in the SPSR.
MRS a4, SPSR
TST a4, #PSR_IRQ_BIT
MRSEQ ip, CPSR
BICEQ ip, ip, #PSR_IRQ_BIT
MSREQ CPSR_c, ip
; IRQS NOW ENABLED.

(DE 47291)

Article last edited on: 2008-09-09 15:47:32

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential