我是QNX初学者,现在试着将QNX6.21的SANDPOINT BSP移值到8245POWER PC的PMC卡上,刚刚搞定了CONSOLE口,遇到了两个问题,请大侠指教。
1 无法挂接PCI设备,启动的提示信息是“Unable to start “pci-sandpoint” (2)
Unable to access “/dev/pci” (2)”。(我的BUILD文件在后面),想到的可能原因是生成的elf文件中没有pci-sandpoint部分,执行make all后在image目录里确实没有pci-sandpoint文件,于是到src\hardware\pci\sandpoint\ppc\be目录中找到该文件,与ifs-sandpoint.srec联编成一个elf文件,启动后还是不行,为什么无法启动pci-sandpoint呢?
2 对中断管理callout文件中的如下行不太理解:
.set SANDPOINT_EPIC_BASE, 0x34040000
8245的EPIC寄存器基地址配的是0xfc040000,我在C代码init_intrinfo.c中也是这么用的,可是在这个callout文件中必须用0x34040000,否则串口就不响应中断,真是想不明白,看代码也没看出什么逻辑关系。是不是与syspage之类的东西有关啊?
另外感觉QNX的online help manu中有些东西说的不详细,不知哪里有更好的教材之类的东东?望大侠不吝赐教。
[image=0x1f0000]
[virtual=ppcbe/elf] .bootstrap = {
startup-sandpoint -vvv -D8250…9600
PATH=/proc/boot procnto-600 -vv
}
[+script] .script = {
procmgr_symlink …/…/proc/boot/libc.so.2 /usr/lib/ldqnx.so.2
display_msg Rolling
devc-ser8250 -e -c100000000/16 -b9600 0xfc004500,121 &
reopen
display_msg Welcome to Neutrino on a Sandpoint
slogger &
#added for ethernet
#io-net -d tulip mac= 00e0fc012345,nosrom,-p tcpip
#ifconfig en0 10.1.168.146
These env variables inherited by all the programs which follow
SYSNAME=nto
TERM=qansi
PATH=/proc/boot
pipe &
waitfor /dev/pipe
reopen /dev/ser1
[+session] PATH=/bin:/proc/boot esh &
pci-sandpoint &
waitfor /dev/pci
}
[type=link] /dev/console=/dev/ser1
[type=link] /tmp=/dev/shmem
[type=link] /bin/sh=/proc/boot/ksh
libc.so
[data=c]
devc-ser8250
pidin
esh
ls
pipe
slogger
sloginfo