中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Freescale 9S12 系列單片機(jī)應(yīng)用筆記(libmaker)

        Freescale 9S12 系列單片機(jī)應(yīng)用筆記(libmaker)

        作者: 時(shí)間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
        飛思卡爾提供的9S12系列單片機(jī)開發(fā)工具包 CodeWarrior Development Studio中包含一個(gè)非常有用的工具 libmaker, 可以將編譯后的 obj 文件打包為庫文件。還可以對(duì)現(xiàn)有的庫文件進(jìn)行一些基本的修改。這東東有什么用呢,首先,將一系列的 obj 文件打包為庫文件后會(huì)提高最后的 Link 階段的速度。還可以將自己一些不愿公開的代碼打包為庫文件,有助于知識(shí)產(chǎn)權(quán)的保護(hù)。


        不說廢話了,還是以一系列的例子來說明問題。首先假設(shè)我們的項(xiàng)目中有三個(gè)源文件。分別如下:

        本文引用地址:http://www.antipu.com.cn/article/201611/318822.htm


        1. /*add1.c*/
        2. charadd1(chara){returna+1;}
        3. /*add2.c*/
        4. charadd2(chara){returna+2;}
        5. /*add3.c*/
        6. charadd1(chara){returna+3;}


        這3個(gè)文件真是沒個(gè)性,不過對(duì)于說明問題已經(jīng)夠用了。

        編譯后會(huì)形成三個(gè) Object 文件:add1.c.o add2.c.o add3.c.o

        然后可以利用 libmaker 將這三個(gè) object 文件打包為庫文件了。這里需要些命令行操作,不熟悉的可以找些 win 批處理文件的教程看看。

        首先,在 .o 文件所在目錄建個(gè) a.bat 的批處理文件。里面加入兩行代碼:

        set PATH="D:Program FilesFreescaleCWS12v5.1Prog";%PATH%cmd /k


        如果你的CWS12安裝在不同的目錄,請(qǐng)做相應(yīng)的修改。然后雙擊 a.bat 文件,會(huì)打開一個(gè)命令行窗口,并且設(shè)置好環(huán)境變量。

        執(zhí)行下面的命令:

        Libmaker -Cmd( add1.c.o + add2.c.o + add3.c.o = add.lib)

        上面命令的 + 號(hào)可以省略,寫為:

        Libmaker -Cmd( add1.c.o add2.c.o add3.c.o = add.lib)

        執(zhí)行的結(jié)果是相同的,都是產(chǎn)生 add.lib 文件。好了,庫文件已經(jīng)生成了??梢詼y(cè)試了。在 main.c 中加幾行:


        1. add1(chara);
        2. charadd2(chara);
        3. charadd3(chara);
        4. voidmain(void)
        5. {
        6. unsignedintdata;
        7. SCIInit();
        8. SCISetBaudRate(SCI0,9600,8192000L);
        9. EnableInterrupts;
        10. data=1;
        11. data=add1(data);SCIPutChar(SCI0,data);
        12. data=add2(data);SCIPutChar(SCI0,data);
        13. data=add3(data);SCIPutChar(SCI0,data);
        14. for(;;)
        15. {
        16. _FEED_COP();/*feedsthedog*/
        17. }/*loopforever*/
        18. }



        上面代碼中加了些串口操作是為了防止編譯器自作聰明的把我的代碼優(yōu)化掉。然后將 add.lib 加入到項(xiàng)目中,編譯。一切OK!

        Libmaker 還有些其他的功能,下面給一些簡(jiǎn)單的例子。

        將一個(gè)obj 文件添加到現(xiàn)有庫文件中,語法如下:

        Libmaker -Cmd(add.lib + add4.c.o = add.lib)

        將一個(gè) obj 文件移出 庫文件:

        Libmaker -Cmd(add.lib - add1.c.o = add.lib)

        知道這些就夠一般的應(yīng)用了。如果還需要了解更多,請(qǐng)參看 Build Tools Utilities Manual。



        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉