Freescale 9S12 系列單片機(jī)應(yīng)用筆記(libmaker)
不說(shuō)廢話了,還是以一系列的例子來(lái)說(shuō)明問(wèn)題。首先假設(shè)我們的項(xiàng)目中有三個(gè)源文件。分別如下:
- /*add1.c*/
- charadd1(chara){returna+1;}
- /*add2.c*/
- charadd2(chara){returna+2;}
- /*add3.c*/
- charadd1(chara){returna+3;}
這3個(gè)文件真是沒(méi)個(gè)性,不過(guò)對(duì)于說(shuō)明問(wèn)題已經(jīng)夠用了。
編譯后會(huì)形成三個(gè) Object 文件:add1.c.o add2.c.o add3.c.o
然后可以利用 libmaker 將這三個(gè) object 文件打包為庫(kù)文件了。這里需要些命令行操作,不熟悉的可以找些 win 批處理文件的教程看看。
首先,在 .o 文件所在目錄建個(gè) a.bat 的批處理文件。里面加入兩行代碼:
set PATH="D:Program FilesFreescaleCWS12v5.1Prog";%PATH%cmd /k
如果你的CWS12安裝在不同的目錄,請(qǐng)做相應(yīng)的修改。然后雙擊 a.bat 文件,會(huì)打開(kāi)一個(gè)命令行窗口,并且設(shè)置好環(huán)境變量。
執(zhí)行下面的命令:
Libmaker -Cmd( add1.c.o + add2.c.o + add3.c.o = add.lib)
上面命令的 + 號(hào)可以省略,寫(xiě)為:
Libmaker -Cmd( add1.c.o add2.c.o add3.c.o = add.lib)
執(zhí)行的結(jié)果是相同的,都是產(chǎn)生 add.lib 文件。好了,庫(kù)文件已經(jīng)生成了。可以測(cè)試了。在 main.c 中加幾行:
- add1(chara);
- charadd2(chara);
- charadd3(chara);
- voidmain(void)
- {
- unsignedintdata;
- SCIInit();
- SCISetBaudRate(SCI0,9600,8192000L);
- EnableInterrupts;
- data=1;
- data=add1(data);SCIPutChar(SCI0,data);
- data=add2(data);SCIPutChar(SCI0,data);
- data=add3(data);SCIPutChar(SCI0,data);
- for(;;)
- {
- _FEED_COP();/*feedsthedog*/
- }/*loopforever*/
- }
上面代碼中加了些串口操作是為了防止編譯器自作聰明的把我的代碼優(yōu)化掉。然后將 add.lib 加入到項(xiàng)目中,編譯。一切OK!
Libmaker 還有些其他的功能,下面給一些簡(jiǎn)單的例子。
將一個(gè)obj 文件添加到現(xiàn)有庫(kù)文件中,語(yǔ)法如下:
Libmaker -Cmd(add.lib + add4.c.o = add.lib)
將一個(gè) obj 文件移出 庫(kù)文件:
Libmaker -Cmd(add.lib - add1.c.o = add.lib)
知道這些就夠一般的應(yīng)用了。如果還需要了解更多,請(qǐng)參看 Build Tools Utilities Manual。
評(píng)論