手上有一块AT91sam9g20的板子(天漠SBC6020),想要移植QNX操作系统。由于9g20和9260基本兼容,所以使用官网提供的9260BSP(用在QNX6.5下),可移植后系统始终无法转起来,以下是移植过程和出现的问题:
- IPL的更改:主要改成从NAND FLASH加载QNX映像到0x21000000地址,然后运行。这部分代码应该是正常的,
- startup的更改:由于9g20与9260 pin-to-pin兼容,因此代码此部分代码未作更改。只初始化了USART0和以太网的管脚配置,并对build file进行了裁剪,可是系统始终无法转起来。最后将build file简化为只起两个串口(Debug串口和USART0)还是不行,build file如下所示:
[image=0x21000000]
[virtual=armle,binary] .bootstrap = {
startup-at91sam9260 -vvvvvvv
PATH=:/proc/boot:/bin:/usr/bin LD_LIBRARY_PATH=:/proc/boot:/lib:/usr/lib:/lib/dll procnto -vvvvvvv
}
[+script] .script = {
procmgr_symlink …/…/proc/boot/libc.so.3 /usr/lib/ldqnx.so.2
display_msg Welcome to QNX Neutrino 6.4 on the Atmel AT91SAM9260 Board
slogger &
display_msg Starting DBGU driver…
devc-serdebug -e -F -S -b115200 -c50000000 0xfffff200,1
waitfor /dev/ser1 4
reopen /dev/ser1
display_msg Starting Serial USART 1 driver …
devc-serusart -e -F -S -u2 -b115200 -c50000000 0xfffb0000^2,6
…(最后启动shell)
}
启动时reopen /dev/ser1之前的message显示正常,reopen之后就无message显示。后来将输出定向到ser2,reopen之后message显示正常,最后出现shell,可是键入任何命令回车后,系统无响应。
Debug串口中断为1,USART0中断为6,由于系统时钟节拍中断也是1,担心之间有什么影响,在build file中将启动debug串口命令注释,可还是不行,现象与前相同。
感觉好像系统中断没有跑起来,我在build file中加了一个捕获中断1的测试程序,无法捕获中断。
请大家帮忙看看问题究竟出现在什么地方,万分感谢!!
打印出来的system page如下:
PIO init : DBGU, USART, NAND, EMAC, SD/MMC.
CPU0: Dcache: 1024x32 WB
CPU0: Icache: 1024x32
CPU0: 41069265: arm926 rev 5 100MHz
elf_map: 1M va=fe000000 pa=21000000 sz=00100000
elf_map: 1M va=fe000000 pa=21000000 sz=00100000
Header size=0x0000009c, Total Size=0x00000528, #Cpu=1, Type=4
Section:system_private offset:0x000001c8 size:0x00000068
syspage ptr user:fc404000 kernel:fc404000
cpupage ptr user:fc404828 kernel:fc404828 spacing:84
kdebug info:00000000 callback:00000000
boot pgms: idx=0
0) base paddr:2100f000 start addr:fe041004
ramsize:00000000 pagesize:00001000
Section:qtime offset:0x00000148 size:0x00000060
boot:00000000 CPS:00000000002faf08 rate/scale:320000000/-15 intr:1
Section:callout offset:0x000000a0 size:0x00000048
reboot:fc40469c power:fc4046c0
timer_load:fc4046d4 reload:fc4046fc value:fc404728
0) display:fc404748 poll:fc40476c break:fc404790
- display:00000000 poll:00000000 break:00000000
Section:cpuinfo offset:0x000001a8 size:0x00000020
- cpu:41069265 flags:40000000 speed:00000064 cache i/d:1/0 name:53
Section:cacheattr offset:0x000004e8 size:0x00000040
- flags:32 size:0020 #lines:0400 control:fc404528 next:255
- flags:11 size:0020 #lines:0400 control:fc40457c next:255
Section:meminfo offset:0x00000528 size:0x00000000
Section:asinfo offset:0x00000368 size:0x00000140
- 0000000000000000-00000000ffffffff o:ffff a:0010 p:100 c:00000000 n:21
- 0000000020000000-0000000023ffffff o:0000 a:0017 p:100 c:00000000 n:28
- 0000000000000000-00000000ffffffff o:ffff a:0010 p:100 c:00000000 n:21
- 0000000020000000-0000000023ffffff o:0040 a:0007 p:100 c:00000000 n:32
- 000000002100e108-0000000021803b6b o:0000 a:0005 p:100 c:00000000 n:94
00a0) 0000000021000000-000000002100e107 o:0000 a:0007 p:100 c:00000000 n:102
00c0) 000000002100e108-0000000021803b6b o:0000 a:0007 p:100 c:00000000 n:110
00e0) 0000000020000000-0000000020007fff o:0020 a:0007 p:100 c:00000000 n:118
- 000000002001087c-0000000020ffffff o:0020 a:0007 p:100 c:00000000 n:118
- 0000000021803b6c-0000000023ffffff o:0020 a:0007 p:100 c:00000000 n:118
Section:hwinfo offset:0x000002d0 size:0x00000098
- size:3 tag:3 isize:3, iname:0, owner:65535, kids:1
- size:3 tag:17 isize:3, iname:9, owner:0, kids:2
- size:3 tag:3 isize:3, iname:37, owner:12, kids:1
- size:4 tag:46 isize:4, iname:41, owner:24, kids:0
00 00 00 00
- size:3 tag:3 isize:3, iname:60, owner:12, kids:1
- size:4 tag:46 isize:16, iname:68, owner:52, kids:0
00 00 00 00
- size:6 tag:73
08 00 00 00 00 40 fc ff 00 00 00 00 00 00 ff ff 00 00 00 00
- size:2 tag:82
15 00 00 00
- size:4 tag:86
06 00 00 00 66 22 00 04 16 15 00 00
Section:typed_strings offset:0x00000230 size:0x00000020
off:0 type:5 string:‘UNKNOWN’
off:12 type:2 string:‘localhost’
Section:strings offset:0x00000250 size:0x00000080
[0]‘hw’ [3]‘Group’ [9]‘unknown’ [17]‘Bus’ [21]‘memory’ [28]‘ram’ [32]‘1to1’
[37]‘rtc’ [41]‘NONE’ [46]‘Device’ [53]‘arm926’ [60]‘network’ [68]‘emac’
[73]‘location’ [82]‘irq’ [86]‘nicaddr’ [94]‘imagefs’ [102]‘startup’
[110]‘bootram’ [118]‘sysram’
Section:intrinfo offset:0x000004a8 size:0x00000040
- vector_base:00000000, #vectors:32, cascade_vector:7fffffff
cpu_intr_base:00000000, cpu_intr_stride:0, flags:0000
id => flags:8000, size:0028, rtn:fc4045e8
eoi => flags:9000, size:0028, rtn:fc404610
mask:fc404638, unmask:fc40465c, config:00000000
Section:smp offset:0x00000528 size:0x00000000
Section:pminfo offset:0x00000528 size:0x00000000
Section:mdriver offset:0x00000528 size:0x00000000
Section:boxinfo offset:0x00000528 size:0x00000000
00e0) 0000000020000000-0000000020007fff o:0020 a:0007 p:100 c:00000000 n:118
- 000000002001087c-0000000020ffffff o:0020 a:0007 p:100 c:00000000 n:118
- 0000000021803b6c-0000000023ffffff o:0020 a:0007 p:100 c:00000000 n:118
Section:hwinfo offset:0x000002d0 size:0x00000098
- size:3 tag:3 isize:3, iname:0, owner:65535, kids:1
- size:3 tag:17 isize:3, iname:9, owner:0, kids:2
- size:3 tag:3 isize:3, iname:37, owner:12, kids:1
- size:4 tag:46 isize:4, iname:41, owner:24, kids:0
00 00 00 00
- size:3 tag:3 isize:3, iname:60, owner:12, kids:1
- size:4 tag:46 isize:16, iname:68, owner:52, kids:0
00 00 00 00
- size:6 tag:73
08 00 00 00 00 40 fc ff 00 00 00 00 00 00 ff ff 00 00 00 00
- size:2 tag:82
15 00 00 00
- size:4 tag:86
06 00 00 00 66 22 00 04 16 15 00 00
Section:typed_strings offset:0x00000230 size:0x00000020
off:0 type:5 string:‘UNKNOWN’
off:12 type:2 string:‘localhost’
Section:strings offset:0x00000250 size:0x00000080
[0]‘hw’ [3]‘Group’ [9]‘unknown’ [17]‘Bus’ [21]‘memory’ [28]‘ram’ [32]‘1to1’
[37]‘rtc’ [41]‘NONE’ [46]‘Device’ [53]‘arm926’ [60]‘network’ [68]‘emac’
[73]‘location’ [82]‘irq’ [86]‘nicaddr’ [94]‘imagefs’ [102]‘startup’
[110]‘bootram’ [118]‘sysram’
Section:intrinfo offset:0x000004a8 size:0x00000040
- vector_base:00000000, #vectors:32, cascade_vector:7fffffff
cpu_intr_base:00000000, cpu_intr_stride:0, flags:0000
id => flags:8000, size:0028, rtn:fc4045e8
eoi => flags:9000, size:0028, rtn:fc404610
mask:fc404638, unmask:fc40465c, config:00000000
Section:smp offset:0x00000528 size:0x00000000
Section:pminfo offset:0x00000528 size:0x00000000
Section:mdriver offset:0x00000528 size:0x00000000
Section:boxinfo offset:0x00000528 size:0x00000000