386板子的挑战

最近遇到一块386板子,用的是ali 6117 50M cpu,4M ram,8M doc,TP6508 SVGA控制器接640x480的TFT LCD屏,8019网络,准备试试QNX6.32,看看能否将这些东西都跑起来起来,然后还能运行一些应用程序。
估计photon是用不起来,准备自己写个SVGA的驱动,然后配上小巧的GUI包试试。
x86还真是复杂,比ARM复杂多了。尤其是1M之内的RAM还不知道怎么用起来呢。呵呵
有经验的大侠给些建议。

看来前1M以内的RAM也分配了,下面是asinfo
Section:asinfo offset:0x000004e0 size:0x000001c0
0000) 0000000000000000-000000000000ffff o:ffff a:0000 p:100 c:00000000 n:21
0020) 0000000000000000-00000000ffffffff o:ffff a:0010 p:100 c:00000000 n:24
0040) 0000000000000000-0000000000ffffff o:0020 a:0010 p:100 c:00000000 n:31
0060) 0000000006000000-00000000ffefffff o:0020 a:0003 p:100 c:00000000 n:35
0080) 00000000fff00000-00000000ffffffff o:0020 a:0005 p:100 c:00000000 n:42
00a0) 0000000000000000-00000000000957ff o:0040 a:0017 p:100 c:00000000 n:46
00c0) 0000000000100000-00000000003fffff o:0040 a:0017 p:100 c:00000000 n:46
00e0) 000000000026d508-00000000003fdd37 o:0020 a:0005 p:100 c:00000000 n:139
0100) 0000000000260400-000000000026d507 o:0020 a:0007 p:100 c:00000000 n:147
0120) 000000000026d508-00000000003fdd37 o:0020 a:0007 p:100 c:00000000 n:155
0140) 0000000000001000-000000000000bfff o:00a0 a:0007 p:100 c:00000000 n:163
0160) 0000000000011db8-00000000000957ff o:00a0 a:0007 p:100 c:00000000 n:163
0180) 0000000000100000-000000000026d507 o:00c0 a:0007 p:100 c:00000000 n:163
01a0) 00000000003fdd38-00000000003fffff o:00c0 a:0007 p:100 c:00000000 n:163
Section:strings offset:0x00000250 size:0x000000b0
[0]‘hw’ [3]‘Group’ [9]‘unknown’ [17]‘Bus’ [21]‘io’ [24]‘memory’ [31]‘isa’
[35]‘device’ [42]‘rom’ [46]‘ram’ [50]‘rtc’ [54]‘mc146818’ [63]‘Device’
[70]‘pad’ [74]‘location’ [83]‘386’ [87]‘disk’ [92]‘diskgeometry’ [105]‘misc’
[110]‘pckbd’ [116]‘irq’ [120]‘serial’ [127]‘8250’ [132]‘in-use’
[139]‘imagefs’ [147]‘startup’ [155]‘bootram’ [163]‘sysram’
类型163 是sysram,可能就是可用的RAM区域吧。如果是这样几个163的区域加起来,一共是2089496字节,大约1.99M。image解压开大约1.62M。再加上384K,基本上就是4M。

\

pidin

pid tid name prio STATE Blocked
1 1 procnto 0f READY
1 2 procnto 255r RECEIVE 1
1 3 procnto 10r RECEIVE 1
1 4 procnto 10r RECEIVE 1
1 5 procnto 10r RECEIVE 1
1 6 procnto 10r RECEIVE 1
1 7 procnto 10r RECEIVE 1
1 8 procnto 10r RECEIVE 1
1 9 procnto 10r RUNNING
2 1 boot/devc-tser8250 24r RECEIVE 1
4099 1 proc/boot/io-net 10r SIGWAITINFO
4099 2 proc/boot/io-net 21r RECEIVE 5
4099 3 proc/boot/io-net 10r RECEIVE 1
4099 4 proc/boot/io-net 10r RECEIVE 1
4099 5 proc/boot/io-net 10r RECEIVE 10
4099 6 proc/boot/io-net 20r RECEIVE 13
4099 7 proc/boot/io-net 9r RECEIVE 1
4100 1 proc/boot/sh 10r SIGSUSPEND
12293 1 bin/pidin 10r REPLY 1

pidin info

CPU:X86 Release:6.3.2 FreeMem:968Kb/3670Kb BootTime:Jan 03 21:15:44 UTC 2001
Processor1: 386 386 50MHz
去掉pidin占用的ram,可用的ram大约1M。没有启文件系统,配置了qnet,应用程序用qnet主机上的,看来要想真正用起来是够费劲的。

4MB跑Photon够呛。

呵呵 唐大侠说的没错,是用不起来Photon。参考svga的ddk,写了一个简单的TP6508芯片的640x480 256色驱动,实现了画点,画矩形,还有硬件加速画线,还有简单的颜色or not 和xor操作。速度比vga16色的还能快不少。还没找到小巧的GUI包。
另外,启动文件消耗资源太多。看开是不能启动文件系统了,只能将程序放到启动image中了。

可以用 io-blk.so 的 cache= 命令,把文件系统要用的内存量降下来。不过,启起来你也没有多少内存可用了。

开发的时候可以用网络,做好的程序最后可能还是要放在image里。可能还要 XIP 才行。