能否做到自動化使用keil的編譯工具?

時間 2021-12-20 03:34:06

1樓:Joey田

這個問題我自己來回答下吧,我要做的是脫離Keil這個IDE,做一些自動化編譯方面的東西,所以我做了一些嘗試,通過Makefile,以及Keil下的工具庫,是可以完成我想做的事情的,下面貼乙個簡單工程的Makefile供需要的人參考:

KEIL_PATH = C:/Keil_v5/ARM

ARMCC = $(KEIL_PATH)/ARMCC/bin/armcc

ARMASM = $(KEIL_PATH)/ARMCC/bin/armasm

ARMAR = $(KEIL_PATH)/ARMCC/bin/armar

ARMLINK = $(KEIL_PATH)/ARMCC/bin/armlink

FROMELF = $(KEIL_PATH)/ARMCC/bin/fromelf

# 編譯選項

CFLAGS := -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork

CMACRO := -DSTM32F10X_HD

ASMFLAGS := --cpu Cortex-M3 -g --apcs=interwork --pd "__MICROLIB SETA 1"

LINKFLAGS := --cpu Cortex-M3 --library_type=microlib --strict

MAP := --autoat --summary_stderr --info summarysizes --map --xref --callgraph --symbols

INFO := --info sizes --info totals --info unused --info veneers

#--cpu Cortex-M3 *.o --library_type=microlib --strict --scatter "TEST.sct"

#--autoat --summary_stderr --info summarysizes --map --xref --callgraph --symbols

#--info sizes --info totals --info unused --info veneers

#--list "./TEST.map"

#-o "TEST.axf"

TARGET = ./Obj/Blinky

OBJMAP := ./output/*.map

OBJHTM := ./output/*.htm

OBJAXF := ./output/*.axf

OBJS = ./startup_stm32f10x_md.o \

./system_stm32f10x.o \

./Blinky.o

#INC += -I./system/delay

#INC += -I./system/sys

#INC += -I./system/usart

#INC += -I./hardware/key

INC += -I$(KEIL_PATH)/CMSIS/Include

INC += -I$(KEIL_PATH)/INC/ST/STM32F10x

INC += -I$(KEIL_PATH)/RV31/INC

%.o:%.c

$(ARMCC) $(CFLAGS) $(INC) $(CMACRO) $< -o $@

%.o:%.s

$(ARMASM) $(ASMFLAGS) $(INC) $(CMACRO) $< -o $@

arm7:$(OBJS)

# $(ARMLINK) $(LINKFLAGS) --libpath "$(KEIL_PATH)/RV31/LIB" --scatter ./Obj/main.sct $(MAP) $(INFO) --list $(TARGET).

map $^ -o $(TARGET).axf

$(ARMLINK) $(LINKFLAGS) --libpath "$(KEIL_PATH)/RV31/LIB" --libpath "$(KEIL_PATH)/ARMCC/lib" --scatter ./Obj/Blinky.sct $(MAP) $(INFO) --list $(TARGET).

map $^ -o $(TARGET).axf

$(FROMELF) --bin -o $(TARGET).bin $(TARGET).axf

$(FROMELF) --i32 -o $(TARGET).hex $(TARGET).axf

del $(OBJHTM) $(OBJAXF) $(OBJS)

# 若只是生成LIB庫,只需要以下一條命令就可以了

.PHONY : clean

clean:

del $(OBJS) *.map *.htm

2樓:

keil不太清楚,不怎麼用

iar可以通過命令列呼叫的

我猜,你在用其他編輯器,然後打算生成微控制器檔案對吧,先看下你的編輯器有沒有外掛程式能用,vscode有iar和debug的外掛程式

或者你也可以直接用gcc-arm啊,配個makefile豈不是美滋滋

如何跨平台使用自動化測試?

YufunHe 前些年給公司寫了乙個針對UI自動化的工具 Windows上是C 基於Windows Automation API和mouse event,然後用python封裝 Mac上直接python呼叫Accessibility API和Mac的mouse event Web相關的話,用pyth...

自動化測試的成本高效果差,那麼自動化測試的意義在哪呢?

runningX 自動化測試成本高,那是跟不測試,或者隨便測一下相比。自動化測試效果差,那是跟堆積大量人力物力,自動化 不自動化 加各種其他測試全開的效果相比。可以上自動化測試時,只有不幹活,不懂技術的小頭目才排斥自動化測試。指揮很多人剛苦力還是很爽的 別人幹苦力,自己不需要幹真的是爽 隨便還可以罵...

TCP UDP協議的自動化測試工具,使用場景 市場如何?

城下秋草 先看看有沒有需求,再看市場有沒有同類。你這個比別人優勢在哪?如果你能用純軟方式替代那些硬體測試儀,或許還有點市場。但用得上這些儀器的公司,能不能相信你的產品是個大問題 一哥 現在的測試工具以LR和JM為主,測試行業還是在網際網路裡面最少有45 以上的市場,在金融電商現在佔大頭,但是現在手工...