Keil開發(fā)單片機(jī)雖然被很多開發(fā)者吐槽,但不得不承認(rèn),目前Keil依然是眾多單片機(jī)開發(fā)者首選的工具之一。
今天就來(lái)分享一個(gè)開源的 keil 自動(dòng)化編譯腳本。
1、需求來(lái)源
部分對(duì)開發(fā)流程有限制的公司是將開發(fā)與編譯(提交后的代碼版本)分開的,要求編譯過(guò)程盡可能少的人為參與,需在程序上實(shí)現(xiàn)代碼的自動(dòng)化編譯?;诖诵枨箝_發(fā)了本腳本。
2、介紹
這是一個(gè) keil 的自動(dòng)化編譯腳本,可被其他腳本或程序調(diào)用,接收參數(shù)并按參數(shù)編譯 keil 工程,而不必打開 keil 軟件,實(shí)現(xiàn)程序上的自動(dòng)化。主要實(shí)現(xiàn)了以下功能:- 自動(dòng)搜索腳本所在的目錄下所有的 keil 工程
- 搜索到多個(gè) keil 工程時(shí),若指定為空,則默認(rèn)選擇最后找到的 keil 工程
- 指定 keil 工程時(shí)支持相對(duì)路徑和絕對(duì)路徑
-
可選擇
Keil_v4
或Keil_v5
進(jìn)行編譯
-
為空時(shí)默認(rèn)使用
Keil_v5
,需指定Keil_v4
輸入4
即可 -
支持模糊輸入,如:
K4
,Keil4
,Keilv4
,Keil_4
等 -
支持指定不同 keil 軟件的所在路徑,如:
C:Keil_v5UV4UV4.exe
-
當(dāng) keil 的安裝路徑和本案例中的
D:Keil_v5UV4UV4.exe
路徑不同時(shí),除非修改代碼后重新編譯成新的.exe
,否則必須指定 keil 軟件的所在路徑
-
可選擇
project target
-
為空時(shí)默認(rèn)選擇 keil 工程最后選擇的
project target
- 支持非法字符識(shí)別并報(bào)錯(cuò)
-
編譯完成后自動(dòng)將
.bin
和.hex
文件拷貝至腳本的同級(jí)目錄
-
僅拷貝選定的 keil 工程編譯出的
.bin
和.hex
文件
3、有哪些參數(shù)
說(shuō)明:本腳本的所有參數(shù)可不按順序輸入,為空時(shí)表示選擇默認(rèn)值,但參數(shù)與參數(shù)之間需用空格隔開
4、我想直接用
-
本腳本僅支持
windows
系統(tǒng)且要求已經(jīng)安裝了 keil 軟件 -
在發(fā)行版中下載可直接運(yùn)行的
.exe
-
將
.exe
腳本與需要編譯的 keil 工程放在同一級(jí)目錄(下稱目錄 A ) -
打開
powershell
或cmd
并定位至目錄 A
-
若使用
powershell
,可在目錄 A 空白處按住shift
鍵同時(shí)單擊鼠標(biāo)右鍵選擇打開powershell
,將自動(dòng)定位到目錄 A
-
執(zhí)行腳本
.Keil-Autopiler.exe
.Keil-Autopiler.exe 4 (注:keil UV4.exe 的路徑和本腳本一致才可使用本條指令,否則使用下條指令)
或
.Keil-Autopiler.exe C:Keil_v4UV4UV4.exe
.Keil-Autopiler.exe .CodeProjectMDK emplate.uvprojx
或
.Keil-Autopiler.exe C:UsersAdministratorDesktop estCodeProjectMDK emplate.uvprojx
.Keil-Autopiler.exe release
.Keil-Autopiler.exe 4 release .CodeProjectMDK emplate.uvprojx (注:keil UV4.exe 的路徑和本腳本一致才可使用本條指令,否則使用下條指令)
或
.Keil-Autopiler.exe C:Keil_v4UV4UV4.exe release C:UsersAdministratorDesktop estCodeProjectMDK emplate.uvprojx
-
指定 keil 版本
-
指定 keil 工程
-
指定 project target
-
案例五:
-
指定 project target
-
案例四:
-
指定 keil 工程
-
案例三:
-
指定 keil 版本
-
案例二:
-
只有一個(gè) keil 工程 或 搜索到的最后一個(gè)工程就是要編譯的工程
-
只有一個(gè) project target 或 keil 工程保存時(shí)已選中需編譯的 project target
-
keil UV4.exe 的路徑和本腳本一致 (
D:Keil_v5UV4UV4.exe
)
-
案例一:
-
編譯時(shí)間與編譯器版本、編譯選項(xiàng)和代碼量有關(guān),需耐心等待。(可打開同級(jí)目錄的
keilx_compile_log.txt
查看編譯過(guò)程日志) -
powershell
或cmd
打印內(nèi)容出現(xiàn)Copy above file(s) SUCCESS
的字樣表示執(zhí)行成功,并將對(duì)應(yīng) keil 工程生成的.bin
和.hex
文件拷貝至腳本的同級(jí)目錄中
5、我想自己編譯
本代碼僅支持 windows 系統(tǒng)。
5.1 預(yù)備操作
-
如果你已經(jīng)安裝了 gcc ,請(qǐng)忽略本步驟
-
下載 gcc 編譯器,為了考慮兼容性,這里提供一個(gè) 32 位的 mingw 下載鏈接:https://github.com/niXman/mingw-builds-binaries/releases/download/13.1.0-rt_v11-rev1/i686-13.1.0-release-posix-dwarf-ucrt-rt_v11-rev1.7z
-
解壓后放在任意路徑,此處以
C:mingw32
為例 -
配置好環(huán)境變量
-
打開
powershell
或cmd
輸入gcc -v
,出現(xiàn)下圖內(nèi)容表示配置成功
5.2 編譯
-
打開
powershell
或cmd
并定位至代碼目錄
-
若使用
powershell
,可在代碼目錄空白處按住shift
鍵同時(shí)單擊鼠標(biāo)右鍵選擇打開powershell
,將自動(dòng)定位到代碼目錄
-
執(zhí)行以下 gcc 命令
gcc .Keil-Autopiler.c -o .Keil-Autopiler.exe
-
無(wú)任何提示信息,編譯通過(guò)
重要說(shuō)明
本腳本依賴 keil 軟件,定位為 keil 的自動(dòng)化編譯腳本。目的是替代手動(dòng)編譯,實(shí)現(xiàn)程序自動(dòng)化,而非替代編譯工具,并無(wú)附帶任何編譯器和鏈接器。因此,無(wú)論代碼工程是基于 keil C51 亦或是 keil MDK 都可執(zhí)行。
開源地址:
https://gitee.com/DinoHaw/keil-autopiler
-
自動(dòng)化
+關(guān)注
關(guān)注
29文章
5562瀏覽量
79239 -
keil
+關(guān)注
關(guān)注
68文章
1212瀏覽量
166838 -
編譯
+關(guān)注
關(guān)注
0文章
657瀏覽量
32851
原文標(biāo)題:keil 自動(dòng)化編譯腳本
文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論