📄 mcs51.rules
字号:
define MCS51_HELP MCS51 extras: clean : includes original clean and removes Keil temporaries inline : compiles using the University of Utah CIL inlinerendefHELP += $(MCS51_HELP)NCC = nccBUILDDIR = build/$(PLATFORM)MAIN_EXE = $(BUILDDIR)/APPMAIN_SREC = $(BUILDDIR)/main.srecMAIN_IHEX = $(BUILDDIR)/app.hexAPP_C = $(BUILDDIR)/app.cAPP_C_TMP = $(BUILDDIR)/app.orig.cINSTALL_SREC = $(MAIN_SREC).out$(if $(NODEID),-$(NODEID),)VOLUMEFILE = volumes-at45db.xmlCFLAGS += -I$(CONTRIBROOT)/diku/mcs51/tos/platforms/$(PLATFORM)NESC_FLAGS += -conlyPFLAGS += -Wall -Wshadow -DDEF_TOS_AM_GROUP=$(DEFAULT_LOCAL_GROUP) $(NESC_FLAGS)PFLAGS += -target=$(PLATFORM) -fnesc-cfile=$(APP_C) -board=$(SENSORBOARD)ifdef MSG_SIZEPFLAGS += -DTOSH_DATA_LENGTH=$(MSG_SIZE)endifBUILDLESS_DEPS += bytesMCS51_MAKE_PATH = $(CONTRIBROOT)/diku/mcs51/support/makeifndef BUILD_DEPS ifeq ($(filter $(BUILDLESS_DEPS),$(GOALS)),) BUILD_DEPS = exe endifendififndef MCS51_COMPILER MCS51_COMPILER=keilendififndef MCS51_IAR_PATH MCS51_IAR_PATH=Program\ Files/IAR\ Systems/Embedded\ Workbench\ 4.0\ Evaluation\ version/common/bin/endifOSNAME = $(shell uname)ifeq ($(findstring CYGWIN,$(OSNAME)),CYGWIN) MCS51_IAR_PATH=/cygdrive/c/$(MCS51_IAR_PATH)else MCS51_IAR_PATH:=C:$(MCS51_IAR_PATH) ifndef MCS51_WINE_IAR_PATH MCS51_WINE_IAR_PATH := $(HOME)/.wine.iar endif ifndef MCS51_WINE_KEIL_PATH MCS51_WINE_KEIL_PATH := $(HOME)/.wine.keil endif MCS51_WINE_IAR=env WINEPREFIX=$(MCS51_WINE_IAR_PATH) LC_ALL=en_US wine MCS51_WINE_KEIL=env WINEPREFIX=$(MCS51_WINE_KEIL_PATH) LC_ALL=en_US wine wcmd /cendif###### $(APP_C) moves to app.preMangle.c# mangles to app.ctosimage: ihex FORCE @:ihex: exe FORCE @:######## Common ncc rulesexe: ncc $(POST_NCC_DEPS) mangle $(MCS51_COMPILER) FORCE.PHONY: nccncc: builddir $(BUILD_EXTRA_DEPS) @echo " compiling $(COMPONENT) to a $(PLATFORM) binary" $(NCC) -S $(OPTFLAGS) $(CFLAGS) $(PFLAGS) $(WIRING_CHECK_FLAGS) $(COMPONENT).nc 2>&1 | \ grep -v "attribute directive ignored"ifdef WIRING_CHECK_FILE @nescc-wiring $(WIRING_CHECK_FILE)endif @echo " compiled $(COMPONENT) to $(APP_C)".PHONY: manglemangle: ncc mv $(APP_C) $(BUILDDIR)/app.preMangle.c perl -w $(MCS51_MAKE_PATH)/mcs51/mangleAppC.pl --$(MCS51_COMPILER) --file=$(BUILDDIR)/app.preMangle.c > $(APP_C)######## IAR rulesiar: mangle builddir cp $(MCS51_MAKE_PATH)/mcs51/iar* $(BUILDDIR) cd $(BUILDDIR) && $(MCS51_WINE_IAR) $(MCS51_IAR_PATH)/iarbuild.exe iar-app-project.ewp -build Debug @grep "SEGMENTS IN ADDRESS ORDER" -B 3 -A 20 $(BUILDDIR)/Debug/List/iar-app-project.map @grep "END OF CROSS REFERENCE" -A 8 $(BUILDDIR)/Debug/List/iar-app-project.map | grep memory ######## SDCC rules.PHONY: sdccsdcc: mangle sdcc -mmcs51 $(APP_C) -o$(BUILDDIR)/app @echo "Segment sizes" @grep -A 1 "OSEG" $(BUILDDIR)/app.sym @grep -A 1 "SSEG" $(BUILDDIR)/app.sym @grep -A 1 "DSEG" $(BUILDDIR)/app.sym @grep -A 1 "CSEG" $(BUILDDIR)/app.sym @grep -A 1 "XSEG" $(BUILDDIR)/app.sym @grep -A 1 "CONST" $(BUILDDIR)/app.sym @grep -A 1 "HOME" $(BUILDDIR)/app.sym @grep -A 1 "GSFINAL" $(BUILDDIR)/app.sym @echo "Memory usage" @grep "Stack starts at" $(BUILDDIR)/app.mem @grep "Other memory" -A 5 $(BUILDDIR)/app.mem######## Keil rules# Build to .hex using $(MCS51_KEIL_SCRIPT) from# env WINEPREFIX=$(HOME)/.wine.keil LC_ALL=en_US wine wcmd /ckeil: mangle $(BUILDDIR)/startup.OBJ $(BUILDDIR)/$(KEIL_BAT_SCRIPT) cd $(BUILDDIR) $(OSTYPE) && $(MCS51_WINE_KEIL) ./$(MCS51_KEIL_SCRIPT) @bash -c "if [ -f $(COMPONENT).s ]; then mv $(COMPONENT).s build/$(PLATFORM)/; fi" @echo " compiled $(COMPONENT) to a $(PLATFORM) binary" @echo "Code size of app.o" @grep -A 7 "MODULE INFORMATION: STATIC OVERLAYABLE" $(BUILDDIR)/app.lst @echo "Total sizes" @grep "Program Size:" $(BUILDDIR)/app.map.PHONY: $(BUILDDIR)/$(KEIL_BAT_SCRIPT)$(BUILDDIR)/$(KEIL_BAT_SCRIPT): cp $(MCS51_MAKE_PATH)/mcs51/$(MCS51_KEIL_SCRIPT) $(BUILDDIR)$(BUILDDIR)/startup.OBJ: $(MCS51_MAKE_PATH)/mcs51/startup.a51 cp $(MCS51_MAKE_PATH)/mcs51/startup.a51 $(BUILDDIR) cp $(MCS51_MAKE_PATH)/mcs51/startup.bat $(BUILDDIR) cd $(BUILDDIR) && $(MCS51_WINE_KEIL) ./startup.batbuilddir: FORCE mkdir -p $(BUILDDIR)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -