因为工作需要开始接触QNX实时操作系统,第一步先了编译环境,这样才能随意改过BSP,驱动和应用程序。
刚开始接触,基于QNX IDE 进行分析,QNX在images下面有一个住Make file 文件,其中描述了最终产出的目标
文件,也就是IPL 与 (startup+OS).而整个QNX系统中有多个makefile,都是主Makefile递归循环调用的。
首先主makefile分析
ROOT_DIR := $(notdir $(CURDIR))
ifndef QCONFIG
QCONFIG=qconfig.mk
endif
include $(QCONFIG)
HOST_MKIFS := mkifs
SUFFIXES := .build .ifs .raw
.PHONY: all clean ipl
all: ifs-dra72x-evm.bin ipl-dra72x-evm.bin
clean:
$(RM_HOST) ifs-dra72x-evm.bin ipl-dra72x-evm.bin *.sym
ifs-dra72x-evm.bin: evm.build
$(HOST_MKIFS) -r../install -v $(MKIFSFLAGS) $^ $@ //基于build file产生ifs
ipl-dra72x-evm.bin:
$(SHELL) ./mkflashimage.sh
ipl-dra72x-evm.bin:
$(SHELL) ./mkflashimage.sh //详细参考shell脚本中的描述,主要是elf转成binary,并且与ch_header 组合成最终的IPL