C51多檔案編譯指令碼,徹底擺脫Keil古董級IDE

2021-10-08 21:06:50 字數 1065 閱讀 6265

c51微控制器編譯成hex檔案的指令碼網上有很多,如下給出一段示例:

@echo off

set keilpath=c:\keil_v5\c51\bin

%keilpath%\c51.exe %1.c

%keilpath%\lx51.exe %1.obj to %1.abs

%keilpath%\ohx51.exe %1.abs

del %1.lst

del %1.obj

del %1.map

del %1.abs

::timeout /t 3

pause

這個指令碼雖然可以正常使用,但是卻必須把工程中所有c檔案的內容包含到main.c檔案中,這樣不僅不利於各個模組的分離,而且特別容易產生重定義以及多級包含的問題,或者要求把所有**寫到乙個檔案裡,極度難以使用,這裡做了非常好用的修改,將不同的c檔案分開編譯再鏈結,符合使用習慣,也有利於模組的移植,最最重要的是可以徹底擺脫keil古董的沒有自動補全的ide,真是太爽了!

例項bat指令碼如下,可能需要做少許修改:

@echo off

set keilpath=c:\keil_v5\c51\bin

cd %~dp1

for %%a in (*.c) do (

%keilpath%\c51.exe %%a

)setlocal enabledelayedexpansion

for %%a in (*.obj) do (

set str=!str!%%a,

)%keilpath%\lx51.exe %str:~0,-1% to %1.abs

endlocal

%keilpath%\ohx51.exe %1.abs

for %%a in (*.lst) do (

del %%a

)for %%a in (*.obj) do (

del %%a

)del %1.map

del %1.abs

::timeout /t 3

pause

C51字串提取python指令碼

提取目錄下所有子資料夾下c檔案包含對應 的行。寫這個的主要用途是提取c51的字串定義,預設提取 static code unsigned char 字元所在行,用於多語言翻譯時整理待翻譯提示符。示例 static code unsigned char langzn import os,re clas...

C語言多檔案編譯

學習c語言的時候,有時候前面寫的函式希望以後可以直接呼叫,而不用重寫。記錄上午學習的成果,希望對有同樣需求的新手有幫助 要在乙個原始檔中呼叫另乙個源文中的函式,需要先把那個函式包含進來即使用 include。例如 現需要在show.c中呼叫display 函式,可以將 分開寫在三個檔案中,分別是sh...

C51編譯器的擴充套件關鍵字

附表1 2 c51編譯器的擴充套件關鍵字 關鍵字用 途 說 明auto 儲存種類說明 用以說明區域性變數,預設值為此 break 程式語句 退出最內層迴圈 case 程式語句 switch 語句中的選擇項 char 資料型別說明 單位元組整型數或字元型資料 const 儲存型別說明 在程式執行過程中...