Mar 03, 2020
01:17 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mar 03, 2020
01:17 PM
My current problem is the IfxAsclin_Asc library transmits one character and stops.
From what I can tell, IfxAsclin_Asc_write() puts one character into the TXFIFO
and then relies on the ASCLIN0 TX interrupt handler to send the rest of the bytes.
I have placed a breakpoint on the ASCLIN0 TX interrupt handler and confirmed it
is never called.
I've examined the relevant hardware registers, and here's what I see:
ASCLIN0_TXFIFOCON.INTLEVEL = 15 TXFIFO interrupts if TXFIFO level is <= 15
ASCLIN0_FLAGSENABLE.TFLE = 1 TFL interrupt enabled
ASCLIN0_FLAGS.TFL = 1 Transmit interrupt pending
SRC_ASCLIN0TX.SRE = 1 Service request is enabled
SRC_ASCLIN0TX.SRR = 0 No service request pending
SRC_ASCLIN0TX.TOS = 0 CPU0 service
CPU0_ICR.IE = 1 Interrupts enabled
My interpretation of these values is:
o The ASCLIN0 TX has generated an interrupt.
o The SRC has not received an service request (interrupt) from ASCLIN0.
This doesn't make sense.
What other registers can I check to gain more insight into this problem?
EDIT: I figured it out - bad interaction with Hitec interrupt handler.
Toshi
From what I can tell, IfxAsclin_Asc_write() puts one character into the TXFIFO
and then relies on the ASCLIN0 TX interrupt handler to send the rest of the bytes.
I have placed a breakpoint on the ASCLIN0 TX interrupt handler and confirmed it
is never called.
I've examined the relevant hardware registers, and here's what I see:
ASCLIN0_TXFIFOCON.INTLEVEL = 15 TXFIFO interrupts if TXFIFO level is <= 15
ASCLIN0_FLAGSENABLE.TFLE = 1 TFL interrupt enabled
ASCLIN0_FLAGS.TFL = 1 Transmit interrupt pending
SRC_ASCLIN0TX.SRE = 1 Service request is enabled
SRC_ASCLIN0TX.SRR = 0 No service request pending
SRC_ASCLIN0TX.TOS = 0 CPU0 service
CPU0_ICR.IE = 1 Interrupts enabled
My interpretation of these values is:
o The ASCLIN0 TX has generated an interrupt.
o The SRC has not received an service request (interrupt) from ASCLIN0.
This doesn't make sense.
What other registers can I check to gain more insight into this problem?
EDIT: I figured it out - bad interaction with Hitec interrupt handler.
Toshi
- Tags:
- IFX
7 Replies