![]() |
|
||||||||||||||
| . 网站首页 . 产品新知 . 业界资讯 . 技术文库 . 下载中心 . 服务导航 . 邮购需知 . 技术论坛 . | ||
|
||
|
|||||
| Nios II IDE软件编译环境探密之(二) | |||||
作者:抽烟的鱼 文章来源:本站原创 点击数: 更新时间:2008-3-20 ![]() |
|||||
|
To change the settings in here: # - Right click on the project # - Select "Properties" option # - Use property pages to set options. Details given below 在这个自动生成的Makefile文件中我们看到设置了几个重要的宏变量,但具体的编译规则不在这个文件中出现,我们在下面的分析中可知Nios II IDE把具有共性的部分放在底层HAL库中实现了,下面是Makefile中定义的一些宏变量: PROJECT := hello_led_0 SYSTEM_NAME := hello_led_0_syslib_1 SYSTEM_DIR := D:/develop/low_cost/software/hello_led_0_syslib_1 SUBDIRS := \ . \ include ${patsubst %, %/subdir.mk, $(SUBDIRS)} MAKEFILE_LIST += $(patsubst %, %/subdir.mk, $(SUBDIRS)) APP_MAKEFILE := C:/altera/kits/nios2/components/altera_hal/build/app.mk include $(APP_MAKEFILE) 在上述变量中,PROJECT、SYSTEM_NAME 、SYSTEM_DIR等变量,将在包含进来的规则文件中被引用。APP_CONFIG := Debug和SYS_CONFIG := Debug定义的编译生成文件的目录,文件末尾通过include包含进两个文件,其中subdir.mk文件中定义了: C_SRCS += \ ${addprefix ,\ hello_led.c \ } CXX_SRCS += \ ${addprefix ,\ } ASM_SRCS += \ ${addprefix ,\ } 很明显是用户项目的三种不同源文件。 而include $(APP_MAKEFILE)则引进了系统编译规则,这些规则定义在底层HAL的build目录中。顺藤摸瓜,我们接着来分析app.mk文件。 在app.mk文件中主要完成两部分工作,前一部分我们可以通过变量的替换看出:包含引入了项目库目录中的generated_all.mk文件,该文件定义了以下变量: COMPONENTS_PROCESSOR = /cygdrive/c/altera/kits/nios2/components/altera_nios2 COMPONENTS_OS = /cygdrive/c/altera/kits/nios2/components/altera_hal COMPONENTS_DEVICE_DRIVERS = /cygdrive/c/altera/kits/nios2/components/altera_avalon_pio \ /cygdrive/c/altera/kits/nios2/components/altera_avalon_jtag_uart \ /cygdrive/c/altera/kits/nios2/components/altera_avalon_sysid \ /cygdrive/c/altera/kits/nios2/components/altera_avalon_cfi_flash \ /cygdrive/c/altera/kits/nios2/components/altera_avalon_uart PTF = D:\develop\low_cost\low_cost_1C20.ptf CPU = cpu 这些都是硬件相关的。 app.mk后半部分主要引入了项目相关外部设备组件的编译变量 COMPONENT_MAKEFILES = $(wildcard $(foreach component, $(COMPONENTS), \ $(component)/HAL/src/component.mk)) 其中include $(SOPC_KIT_NIOS2)/components/altera_hal/build/app_rules.mk包含引入了应用程序编译规则。 这些编译规则文件一般都在altera\kits\nios2\components\altera_hal\build目录中,通过前面我们提到的文件中逐步定义变量,到这些.mk文件中时都已经统一了,做到和具体项目无关。我们在分析的时候需要有耐心做一些变量的替换才能理解,对照我们在(一)部分介绍的GNU MAKE的知识去理解。 以上的分析只是抛砖引玉,希望大家奉献在编译环境设置中更好、更有效的方法。 |
|||||
| 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 多种EDA工具的FPGA协同设计 NIOS II网络驱动程序分析… Nios II IDE中编程的延时子程… Nios II标准(Standard)系统的… Nios II中断简述及中断调试技… Nios II中DRAM的使用… Nios II开发环境中如何添加客… NIOS II学习笔记… NIOS II开发学习体会和方法… Nios II 使用评论… |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|