看了之前版上討論嵌入式系統的文章,請問以下的觀念對不對
一塊開發版如果有bsp,下載後再IDE裡面加入,
然後可以在不用修改IPL情況下載入核心,
這是因為這個IPL已經幫你初始化全部的硬體嗎?
另外,我今天有一台小型電腦(CAR PC),是INTEL的CPU(X86),RAM 2G
這主機板應該也不會有BSP的支援,所以開機就是要透過BIOS去讀MBR,
然後去載入核心嗎?這個核心一樣可以用IDE去建立嗎?
如果電腦只需用到GPS,影音播放,無線網路,USB裝置,
我要減少OS的容量除了移除不需要驅動外,
還需要從哪邊著手?
觀念很差,請版上大大不吝指教
X86的板子有BIOS就可以了,不需要BSP。BIOS会运行硬盘上的系统。
最简单的方法是你在你的PC上安装QNX,看能否成功。(安装不用多说明了吧,就像安装XP一样的方法)
如果成功,QNX632根目录下有.boot文件。也就是所谓的系统核心。QNX640有点不同,是一个.boot的目录,里面放着ifs文件。一般你需要生成自己的ifs文件(http://www.qnx.com/developers/docs/6.4.0/ide_en/user_guide/builder.html)。因为系统自带的会检测硬件,启动比较慢。
编译出来ifs后,上传到QNX系统中,覆盖.boot或Copy到.boot目录中。即可。
裁剪系统,先把最大的IDE删掉。目录/usr/qnx632
然后就是不用的驱动,不用的命令等,不用的帮助文档等等。
可以用#pidin mem看进程会使用那些库文件。不用的也可以删掉。
总之,有点耐心一边记录一边删一边测试。基本一周之后就很熟了。
謝謝解答, 有點懂了,
再請問"裁減"系統是指在ide裡面裁減嗎?
載入base.ifs去修改嗎?
载入的应该是C:\QNX640\target\qnx6\x86\boot\build目录下的build文件。
当然此文件直接修改,再用mkifs编译也可。
一般这里做成最小系统。
然后mount文件系统。
再在文件系统里裁减。
請問C:\QNX640\target\qnx6\x86\boot\build裡文件只執行kernel的作用,
還是已經在kernel外另外添加一些程序了?
還有
“一般这里做成最小系统。
然后mount文件系统。
再在文件系统里裁减。”
這邊看不太懂,做成最小系統的映像檔讓x86板子去跑?
但是已經是最小系統了, 還要怎麼裁減呢?
所以也不是在ide上裁減囉?
抱歉 問題有點多 很感謝版上的大大
系统自带的示例build文件里包括了内核和一些基本库(libc)和一些基本命令(mount,ls…).它编译出来就是一个简单的可以运行的系统。
我们可以修改build文件,把你要用的所有东东,包括你的应用程序等统统放进去也没关系。那么编译出来就是你想的系统了。
只是一般不这样做。一来整个ifs会下载到内存里,你需要大量内存。另一个是这样太笨了。要加点东西,测试一下程序,就要修改build文件,编译,再下载或烧写到板子上。再测试!!!GOD!
所以一般把内核影像image做成最小的。如能把系统运行起来,能把硬盘mount进来就OK了。下载到板子上的什么Flash呀,EPROM呀,就好了。一次完成。
其它的网卡驱动,各种库,应用程序等等。可以放在硬盘上。这样方便裁减。想要就下载下来。不想要就删掉。当然还要改改脚本让它们运行起来。
你也许会问,硬盘没东西,我怎么知道放些什么呢?安装!所有东西都在硬盘上了,再删除好了。
所以,不要让所谓的“裁减”控制了你的思想,加也好减也罢。能得到你想要的系统才是最重要的。
chabear
7
再次感謝大大的教導
那我大概有個底了, 但是我今天又突然想到,
因為x86有bios,所以不用ipl。
但是現在可以載入image是因為我在硬碟上裝了qnx系統,
使開機時可以選擇image,若如果今天我的硬碟裡空空如也,
僅使用spf將開機磁區劃分,要如何將我的image載入呢?
再次感謝
至少需要在一个硬盘上安装QNX。
有了QNX操作系统之后,(假设你的机器可连接两个硬盘,或CF卡都一样了。)
可以使用QNX的自带命令把另一个空盘变成一个启动盘。
论坛上有说明,用到如fdisk等的一些命令。
chabear
9
嗯 了解了 ,
因為我的car pc是固定了,
可能沒辦法裝第二顆硬碟,
但是有支援隨身碟開機,
所以如果把隨身碟當地一顆硬碟安裝QNX,
在去做第二顆硬碟的開機啟動,
這樣是否可行?
感謝您
大概这个意思吧。
反正能把QNX捣腾到硬盘上就可以。
其实你随便找台PC安装,再把硬盘拿到你的CAR PC上也都可以。