Keil開發單片機雖然被很多開發者吐槽,但不得不承認,目前Keil依然是眾多單片機開發者首選的工具之一。
今天就來分享一個開源的 keil 自動化編譯腳本。
1、需求來源
部分對開發流程有限制的公司是將開發與編譯(提交后的代碼版本)分開的,要求編譯過程盡可能少的人為參與,需在程序上實現代碼的自動化編譯。基于此需求開發了本腳本。
2、介紹
這是一個 keil 的自動化編譯腳本,可被其他腳本或程序調用,接收參數并按參數編譯 keil 工程,而不必打開 keil 軟件,實現程序上的自動化。主要實現了以下功能:- 自動搜索腳本所在的目錄下所有的 keil 工程
- 搜索到多個 keil 工程時,若指定為空,則默認選擇最后找到的 keil 工程
- 指定 keil 工程時支持相對路徑和絕對路徑
-
可選擇
Keil_v4
或Keil_v5
進行編譯
-
為空時默認使用
Keil_v5
,需指定Keil_v4
輸入4
即可 -
支持模糊輸入,如:
K4
,Keil4
,Keilv4
,Keil_4
等 -
支持指定不同 keil 軟件的所在路徑,如:
C:Keil_v5UV4UV4.exe
-
當 keil 的安裝路徑和本案例中的
D:Keil_v5UV4UV4.exe
路徑不同時,除非修改代碼后重新編譯成新的.exe
,否則必須指定 keil 軟件的所在路徑
-
可選擇
project target
-
為空時默認選擇 keil 工程最后選擇的
project target
- 支持非法字符識別并報錯
-
編譯完成后自動將
.bin
和.hex
文件拷貝至腳本的同級目錄
-
僅拷貝選定的 keil 工程編譯出的
.bin
和.hex
文件
3、有哪些參數
說明:本腳本的所有參數可不按順序輸入,為空時表示選擇默認值,但參數與參數之間需用空格隔開
4、我想直接用
-
本腳本僅支持
windows
系統且要求已經安裝了 keil 軟件 -
在發行版中下載可直接運行的
.exe
-
將
.exe
腳本與需要編譯的 keil 工程放在同一級目錄(下稱目錄 A ) -
打開
powershell
或cmd
并定位至目錄 A
-
若使用
powershell
,可在目錄 A 空白處按住shift
鍵同時單擊鼠標右鍵選擇打開powershell
,將自動定位到目錄 A
-
執行腳本
.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 版本
-
案例二:
-
只有一個 keil 工程 或 搜索到的最后一個工程就是要編譯的工程
-
只有一個 project target 或 keil 工程保存時已選中需編譯的 project target
-
keil UV4.exe 的路徑和本腳本一致 (
D:Keil_v5UV4UV4.exe
)
-
案例一:
-
編譯時間與編譯器版本、編譯選項和代碼量有關,需耐心等待。(可打開同級目錄的
keilx_compile_log.txt
查看編譯過程日志) -
powershell
或cmd
打印內容出現Copy above file(s) SUCCESS
的字樣表示執行成功,并將對應 keil 工程生成的.bin
和.hex
文件拷貝至腳本的同級目錄中
5、我想自己編譯
本代碼僅支持 windows 系統。
5.1 預備操作
-
如果你已經安裝了 gcc ,請忽略本步驟
-
下載 gcc 編譯器,為了考慮兼容性,這里提供一個 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
為例 -
配置好環境變量
-
打開
powershell
或cmd
輸入gcc -v
,出現下圖內容表示配置成功
5.2 編譯
-
打開
powershell
或cmd
并定位至代碼目錄
-
若使用
powershell
,可在代碼目錄空白處按住shift
鍵同時單擊鼠標右鍵選擇打開powershell
,將自動定位到代碼目錄
-
執行以下 gcc 命令
gcc .Keil-Autopiler.c -o .Keil-Autopiler.exe
-
無任何提示信息,編譯通過
重要說明
本腳本依賴 keil 軟件,定位為 keil 的自動化編譯腳本。目的是替代手動編譯,實現程序自動化,而非替代編譯工具,并無附帶任何編譯器和鏈接器。因此,無論代碼工程是基于 keil C51 亦或是 keil MDK 都可執行。
開源地址:
https://gitee.com/DinoHaw/keil-autopiler
-
自動化
+關注
關注
28文章
5386瀏覽量
78614 -
keil
+關注
關注
68文章
1207瀏覽量
166167 -
編譯
+關注
關注
0文章
646瀏覽量
32664
原文標題:keil 自動化編譯腳本
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論