I’m trying to port QNX into my own SoC platform.
My own SoC platform is based ARM926EJ-S 32-bit RISC Core which operates
141MHz and has 32MB SDRAM(base: 0x10000000) and 1MB NOR Flash.
The tool is QNX Momentics 6.3.2 non-commercial version.
I was modifying IPL, startup, and serial device driver of the legacy Samsung
S3C2410 BSP which had developed by RT Solution ago.
I met the shutdown message with SIGBUS.
Shutdown[0,0] S/C/F=10/1/5 C/D=fe006950/% state(c0)= now lock
QNX Version 6.3.2 Release 2006/03/16-14:15:43EST
PID-TID=1-1? P/T FL=00019001/09000000
0000: fc404000 00000011 fe057060 fc404400 fc441140 fc441140 e3c0301f
0020: 00000000 00000000 00000011 fc43ffa4 fc408000 fc43ff94 fe02dfe0
d4 70 96 e5 40 70 c7 e3 d4 70 86 e5 01 20 a0 e3 12 24 a0 e1 08 20 8c e5 00
0000: fc43b6a8 fc43ffd8 fc43ffa8 fe02dc68 fe02df64 00000000 fe02b384
0020: fe05716c 00000001 fc439630 00000000 00000000 00000000 fc43ffec
0040: fe02bbcc fe02daf0 fc439630 fc43fffc fc43fff0 fe03e468 fe02bb7c
0060: fc440000 fe0293e0 fe03e450 f7ffffff bdfffffe ffffdfff ffbfefdf
S/C/F => SIGBUS/BUS_ADRALN/FLTACCESS
C/D => Location of the kernel’s code and data
state => The state of the kernel
now – in the kernel
lock – nonpreemptible
exit – leaving kernel
specret – special return processing
any number – the interrupt nesting level
On CPU x(think SMP), process y was running thread z when the
P/T:00019001 => 00010000 + => _NTO_PF_NOCLDSTOP
00000001 + => _NTO_PF_SLEADER
00008000 + => _NTO_PF_RING0
00001000 => _NTO_PF_CHECK_INTR
FL:09000000=> 08000000 + => _NTO_TF_NOMULTISIG
01000000 => _NTO_TF_ALIGN_FAULT
PF => The process flags for the ASPACE PID
context => The register set
instruction => fc404624 The instruction on which the error
stack The contents of the stack
Thus, I debugged my BSP by TRACE32 ARM In-Circuit Debugger.
Attached 2-1.PNG image file is my debugging information.
In pa_quantum_to_paddr, during “ldr r3,[r3,+r1, lsl #0x2]” execution at the
when r1 was 0x2, operation was good but when r1 was 0xFFDF, exception
Because r3 had abnormal address at that time, memory access violation
Pa_quantum_to_paddr is the function of the kernel and thus I have problems
to debug it.
What source code out of the startup source code or serial device driver
source code causes this problem ?
After meeting shutdown message, I saw where PC is located.
You can look at this at the attached file “trace32.0219.PNG”.
In addition, You can see QNX’s procnto is loaded and running.