在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            關(guān) 閉

            新聞中心

            EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > STM32和CC2520的TinyOS移植與驅(qū)動(dòng)分析

            STM32和CC2520的TinyOS移植與驅(qū)動(dòng)分析

            作者: 時(shí)間:2012-12-06 來源:網(wǎng)絡(luò) 收藏

            3.4 修改編譯工具鏈
            3.4.1 配置交叉開發(fā)工具鏈
            支持的編譯器有很多,比如:ARM—NONE—EABI—GCC、KEIL、IAR等。本文采用ARM—NONE—EABI—GCC編譯器。NesC程序的編譯主要分兩步,首先調(diào)用ncc編譯器把NesC預(yù)編譯成C文件(即預(yù)編譯過程);然后通過一個(gè)腳本程序,將經(jīng)過NesC預(yù)編譯生成的應(yīng)用程序轉(zhuǎn)換成可以下載到開發(fā)板的hex格式文件;最后送入J—Flash ARM下載器下載到硬件。修改后的編譯工具鏈如圖3所示。

            本文引用地址:http://www.biyoush.com/article/159652.htm

            f.JPG


            下面對這個(gè)過程進(jìn)行詳細(xì)的介紹。
            第一步:源組件文件(.nc源文件)的分析和轉(zhuǎn)換,在這個(gè)階段調(diào)用自帶的編譯器ncc,對.nc源文件進(jìn)行文法、語法分析,檢測共享數(shù)據(jù)緩沖區(qū)等。再根據(jù)各個(gè)組件和接口對其使用的函數(shù)和變量進(jìn)行名字?jǐn)U展,使其具有全局唯一性。最后把所有的函數(shù)和變量都整合到一個(gè)主函數(shù)main()中,并生成相應(yīng)的app.c文件。此時(shí)生成的已經(jīng)是普通的C語言程序。以上這個(gè)替換過程是由ncc的核心程序nescl.exe完成的。
            第二步:在生成app.c文件后,ncc調(diào)用arm—none—eabi—gcc的交叉編譯器工具對該C文件進(jìn)行編譯、鏈接生成可執(zhí)行文件main.exe,然后通過arm—none—eabi—objcopy工具轉(zhuǎn)換成main.hex,以便最后下載到平臺上運(yùn)行調(diào)試。
            3.4.2 定制編譯環(huán)境
            為使編譯系統(tǒng)能夠?qū)ふ业骄幾g平臺,在工程主文件夾下增加環(huán)境定制文件“setup.sh”,定制工程目錄、編譯工具、解釋工具等路徑。在/support/make目錄增加“-p103.target”文件。定制STM32的MAKE系統(tǒng)。在make文件中指定用arm—none—eabi—gcc為編譯器,arm-none-eabi-objcopy為輸出格式轉(zhuǎn)換器。
            以一個(gè)簡單的應(yīng)用程序radioCountToLeds為例,在STM32平臺上編譯的結(jié)果如圖4所示。

            a.JPG


            可以通過自帶的工具生成各個(gè)組件的連線關(guān)系,只需要在make命令后面添加docs選項(xiàng)。

            4 測試
            TinyOS自帶的radioCountToLeds測試程序,需用通用I/O接口、Timer、Leds、SPI和無線模塊()等組件。為了查看USART模塊,也為了便于跟蹤程序執(zhí)行流程,在源程序中加入了串口輸出代碼,結(jié)果如圖5所示。

            b.JPG


            本實(shí)驗(yàn)通過一個(gè)節(jié)點(diǎn)每一秒定時(shí)廣播數(shù)據(jù)包,定時(shí)器中斷觸發(fā)時(shí)發(fā)送一個(gè)16位的數(shù)據(jù),并把此數(shù)加1。其他節(jié)點(diǎn)接收此數(shù)據(jù),并根據(jù)接收數(shù)據(jù)的低3位是否為1來分別控制3個(gè)Led燈閃爍。通過觀察節(jié)點(diǎn)上Led燈的有規(guī)律閃爍,能夠證明各模塊成功。

            結(jié)語
            本文簡單介紹了NesC語言的特點(diǎn)和TinyOS系統(tǒng)架構(gòu),重點(diǎn)介紹了TinyOS的編譯機(jī)制,并在此基礎(chǔ)上詳細(xì)說明了將TinyOS內(nèi)核程序到以STM32核處理器和無線模塊芯片為核心的開發(fā)板上的具體方法。通過測試發(fā)現(xiàn),各個(gè)模塊能夠正常穩(wěn)定工作。但無線模塊協(xié)議棧還不夠完善,功能還不全面,仍需要進(jìn)一步的研究。


            上一頁 1 2 3 下一頁

            評論


            相關(guān)推薦

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

            關(guān)閉