新人学习buildfile文件

刚接触QNX,学习到只要正确写buildfile文件,就可以让自己的板子跑QNX了,知道buildfile分为三部分,第一部分的主要任务是跑起来procnto,然后第二部分是他要运行的一些命令,第三部分是命令依赖的文件,但是一些具体问题还是有些不明白,希望老师们能给讲讲,我也看了帮助文档,总是不明白,疑惑很长时间了,谢谢各位老师了。
问题1:buildfile中第一行的image=0x20000,是什么意思
问题2:startup后面有时跟bios,有时是别的,比如ads5121e,为什么会这样?是x86就用bios吗?ads5121e是bsp包中带的程序吗?
问题3:path和LD_LIBARY_PATH是什么意思啊?怎么确定这个路径都写哪些啊?
问题4:SYSNAME=nto
TERM=qansi
HOME=/
这几个量是什么意思?为什么有他们?
PATH=…
LD_LIBARY_PATH=…
path和LD_LIBARY_PATH怎么又出现在script部分一次?这和前一次有什么区别吗?
问题5:slogger这个命令有什么用?在buildfile中什么用?
问题6:【type=link】 这一行怎么确定写些什么?怎么来的呢?
问题7:怎么理解比如devc-con ?是一种驱动?还是管理器?manager怎么理解?他就是创建了所管理设备的路径名吗?

大家帮帮我吧,这些问题困扰我很久了,非常感谢大家,知道什么说什么,谢谢大家啊。

http://www.qnx.com/developers/docs/6.4.1/neutrino/utilities/m/mkifs.html

在mkifs的文档里,有buildfile的详细说明。先看一下再说吧。

谢谢老师给我的帮助,我读了mkifs后,对buildfile的结构清楚了,也知道了都代表什么意思,只是不知道为什么以及何时要这么设置。
问题1:buildfile中第一行的image=0x20000,是代表image的基地址base address,我想知道这个数到底怎么设置呢,看例子里说,如果在x86上用on an x86 bios.boot,则起始地址设置为4mb。
问题2:startup后面要跟合适于目标系统的程序。那我怎么确定什么是适合我目标系统的startup程序呢,是在bsp包里有吗?
问题3:path和LD_LIBARY_PATH是要写在procnto之前的,可这两个后面跟什么value值还是不太明白。还有为什么要设置两次,在script里有时还会设置呢?
问题4:SYSNAME=nto
TERM=qansi
HOME=/
这几个量是什么意思?为什么有他们?在那个文档里没有看到阿。
问题5:slogger这个命令有什么用?在buildfile中什么用?查这个命令,英文有些读不明白。
问题6:【type=link】 知道这是创建了个链接,但为什么要创建呢,我怎么知道什么时候要加这个attribute呢。
问题7:怎么理解比如devc-con ?是一种驱动?还是管理器?manager怎么理解?他就是创建了所管理设备的路径名吗?
问题8:还有看到这个attribute [+section]英文也没读明白,希望老师给讲讲,辛苦老师了。

大家帮忙说点啥吧,实验室就我一个人做这个,没有人交流,遇到困难只有大家能帮帮我了,谢谢大家了

  1. image的基地址,与你用什么CPU,什么板子直接有关。
  2. 用哪个startup,也直接跟用的是什么板子有关
  3. PATH、LD_LIBRARY_PATH是环境变量,写在procnto之前是为了procnto能够找到这些环境变量。这两个环境变量是比较标准的,直接去网上搜 Unix LD_LIBRARY_PATH 就行了。
  4. SYSNAME, TERM,和 HOME也都是环境变量。可以直接去搜 “环境变量”就行。
  5. slogger是一个in memory log程序。有很多别的程序会用专门的log语句把一些信息(log)传到slogger,slogger会缓存它们。然后用户可以用 sloginfo 来看到这些信息。
  6. [type=link]是加链接。如果讲是Windows上的 shortcut是不是更好理解?至于为什么要加链接,原因各种各样,可以直接去网上查 “Unix 文件链接”
  7. devc-con是一个驱动程序,也是资源管理器。Resource Manager其基本是一个程序,其作用是管理某个系统资源,这个资源可以是个硬件(比如显示器),这时资源管理器就成了普通意义上的驱动程序。资源管理器一般都会创建路径名,以便于别的程序访问相关资源。
    :sunglasses: [+section] 的意思是新开一个session,让后面的命令在新session中运行。至于什么是session,为什么要新开一个session,是一个很长的话题,去搜一下 “unix session”

最后,你的问题有很多是跟 Unix 有关的,并不是QNX所独有的,而且很散。不如你先解释一下你到底要干什么,会容易一些。

非常感谢老师回复了我,我就是想在实验室现有的板子上能跑QNX,看到一些文档说只要合适的编写buildfile文件,然后编译生成.ifs就可以在板子上运行了。所以想把每一句buildfile文件的内容都看明白,好自己再修改。老师那buildfile文件和BSP又是什么关系呢,想要在一块特定的目标板上运行QNX,是适当的编写buildfile文件就可以了吗?我们的板子是采用pc104总线连接方式,pentium处理器。再次谢谢老师的关注。

如果是一块QNX已经支持的板子,那么差不多就是改一下buildfile,建立你自己的启动image。

我猜想你只要拿一个x86-bios的build文件,改改就行了。

谢谢老师,那BSP包和buildfile文件是什么关系呢?麻烦老师了。

BSP是“Board Support Package”。是QNX公司出的,针对相应板子的软件支持包。这里面包括了板子上特有的硬件的驱动,start等。当然也同时会有sample buildfile。

老师是不是可以这么理解,比如我看到一个buildfile里面,他是飞思卡尔MPC5121e的开发板,
display_msg Starting serial driver…

For ADS5121e HW Rev 2D and higher

devc-sermpc512x -c 66000000 -b 115200 -p 3 -e -F -S -x 40
display_msg Starting CAN driver…
dev-can-mpc5121 -u 0 can0
display_msg Starting on-board ethernet with full stack
io-net -d mpc5121 mac=662200043039 verbose -ptcpip
waitfor /dev/io-net/en0 4
ifconfig en0 1.2.3.4
然后还有
###########################################################################

uncomment for NETWORK driver

###########################################################################
devn-mpc5121.so
libsocket.so
npm-tcpip.so
那是说 devc-sermpc512x 和dev-can-mpc5121和devn-mpc5121.so都是在它的BSP包里提供的吗,在这里是devn-mpc5121.so就是网卡驱动吗,怎么又成了.so文件成驱动了呢,这些东西都在BSP包的什么文件夹呢,怎么看不到呢,还有老师,那我如果想要用它BSP包里提供的东西,是不是要把BSP导入到哪里,然后才能保证buildfile的编译成功通过呢,然后这样也就是把BSP和buildfile联系在一起了呢?谢谢老师,这几天为我答疑解惑,让我收获很多,非常感谢。

*mpc512x 应该是BSP包里提供的,通常在pre-install里。也可能你的BSP带这些驱动的源码,那就要先编译(make)了。至于如何build BSP,跟你用什么环境有关,网上有很多文档可以参考了。