使用bat命令快速完成移植——把STM32F407的keil版程序移植到IAR for ARM上進階版
上次說了使用正點原子的Keil歷程創(chuàng)建好一個IAR工程,如果每次都這樣,還是有點麻煩的,有沒有更簡單的方法呢?當(dāng)然有,使用Ctrl + C 和 Ctrl + V絕對是每個人使用的次數(shù)最多的快捷鍵,沒有之一。那么廢話少說,開始

首先,在上次建立的IAR文件中新建一個“IAR移植修改命令.bat”文件,就是我們后面要用到的主角,

里面的內(nèi)容,::后面的綠色為注釋

目標(biāo),使用移植成功的“實驗0 Template工程模板”來完成“實驗1 跑馬燈實驗”的移植

代碼:
::set"yuanlaidemingzi= 跑馬燈實驗"?
::原來的名字
::set "xianzaidemingzi=zyxy"
::修改IAR目錄下的文件名
ren 跑馬燈實驗.* Template工程模板.*
::進入目錄中的IAR\settings文件夾
cd settings
::修改IAR\settings目錄下的文件名
ren 跑馬燈實驗.* Template工程模板.*
::返回上一層,進入項目文件夾\IAR
cd..
::返回上一層,進入項目文件夾\實驗0 Template工程模板
cd..
::進入目錄中的\實驗0 Template工程模板\SYSTEM\usart文件夾
cd SYSTEM\usart
@echo off
::打開目錄下的文件“usart.c”,主要是修改里面的支持printf函數(shù)的幾句
for %%i in (usart.c) do (? ?
? ? (for /f "delims=" %%a in ('type "%%~fi"') do (
? ? ? ? ::把每一行的內(nèi)容,賦值給? foo
? ? ? ? set "foo=%%a"?
? ? ? ? ::開啟,延遲變量
? ? ? ? setlocal enabledelayedexpansion
? ? ? ? ::3個在前一行添加的內(nèi)容
? ? ? ? if "!foo:~,5!"=="#if 1" echo #define? ? ? ? ?IAR? ? ? //使用IAR時,使能該句支持printf函數(shù),使用keil時屏蔽掉
? ? ? ? if "!foo:~,36!"=="#pragma import(__use_no_semihosting)" echo #ifndef IAR
? ? ? ? if "!foo:~,14!"=="FILE __stdout;" echo #endif?
? ? ? ? :: 一個替換?
? ? ? ? set "foo=!foo:_sys_exit(int x)=void _sys_exit(int x)!"?
? ? ? ? echo,!foo!
? ? ? ? endlocal
? ? ? ? ::寫到usart1.c? ??
? ? ))>usart1.c
)
::刪除usart.c
del usart.c
::修改文件? usart1.c 為 usart.c
ren usart1.c* usart.c*
pause
exit


OK,開始Ctrl + C 和 Ctrl + V,
以已經(jīng)移植成功的“實驗0 Template工程模板”為基礎(chǔ),把其中建里的“IAR”文件夾?Ctrl + C?

Ctrl + V到我們要移植的工程文件夾里面

打開復(fù)制的IAR文件夾?→在文件“IAR移植修改命令.bat”上右鍵 →編輯

打開文件后,如下圖所示的兩個地方的名字需要為修改之前工程的名字,我修改之前的為“Template工程模板”

如下圖所示的兩個地方的名字需要為修改之后工程的名字,我修改之后的為“跑馬燈實驗”,保存一下,關(guān)閉文件。

打開,目錄\實驗1 跑馬燈實驗\SYSTEM\usart →usart.c? ? ? ?文件,可以看到,內(nèi)容在IAR中編譯會報錯,無法支持printf函數(shù)

雙擊文件“IAR移植修改命令.bat”,結(jié)果如下,可以看到,該目錄下的文件名已經(jīng)改變

打開\實驗1 跑馬燈實驗\IAR\settings? ?? 可以看到文件名也已經(jīng)改變

打開,目錄\實驗1 跑馬燈實驗\SYSTEM\usart →usart.c????????????可以看到如圖所示的四個地方已經(jīng)修改

致辭,工程移植完成了一大半

打開IAR for ARM? →Project →Add Existing...

選擇文件????跑馬燈實驗.ewp? ? ? ?打開

如下圖所示,選擇? ?編譯? 提示新的工作空間,

提示,選擇是

可以編譯成功,至此移植成功,以后就可以像打開其它IAR工程一樣,直接打開.eww的工作空間文件就OK

使用ST-LINK下載運行,OK,就不演示了
愿你走出半生
歸來仍是少年
????????????????????????————————2020年4月13日22:20:08