新聞中心

        EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 將串行應(yīng)用移植到USB接口的簡(jiǎn)便方法(06-100)

        將串行應(yīng)用移植到USB接口的簡(jiǎn)便方法(06-100)

        ——
        作者:Microchip Technology Inc. Lucio Di Jasio 時(shí)間:2008-04-02 來(lái)源:電子產(chǎn)品世界 收藏
          便捷的固件移植

          在下面的討論中,我們假設(shè)原先的端口代碼是用C語(yǔ)言編寫(xiě)的,并且使用了可訪問(wèn)集成UART外設(shè)的公共C語(yǔ)言庫(kù)。 給定這些條件后,將固件移植到CDC需要進(jìn)行如下的修改:

        本文引用地址:http://www.104case.com/article/81086.htm

          ·在主文件頭部,用相應(yīng)的聲明代替針對(duì)端口的#include聲明;

          ·在主函數(shù)中,增加對(duì)-CDC初始化代碼的調(diào)用;

          ·在主函數(shù)中,增加對(duì)后臺(tái)任務(wù)的調(diào)用;

          ·驗(yàn)證應(yīng)用程序代碼,以實(shí)現(xiàn)與USB后臺(tái)任務(wù)的協(xié)同多任務(wù)處理;

          ·最后,為鏈接器提供USB-CDC專用庫(kù),生成最終的可執(zhí)行代碼,然后對(duì)閃存芯片進(jìn)行編程。

          實(shí)際上,上述這種情況要求應(yīng)用所調(diào)用的任何功能都不能包含阻塞循環(huán)。 也就是說(shuō),任何功能都不能占用100%的處理器時(shí)間,也不能妨礙USB后臺(tái)任務(wù)的執(zhí)行。 反過(guò)來(lái),所有USB專用控制函數(shù)、中斷、標(biāo)志和緩沖機(jī)制都由CDC類(lèi)固件后臺(tái)任務(wù)管理,設(shè)計(jì)工程師無(wú)需關(guān)注其實(shí)現(xiàn)細(xì)節(jié)。 設(shè)計(jì)工程師所看到的只是一個(gè)非常類(lèi)似于公共端口庫(kù)的小函數(shù)集。表1給出了部分函數(shù)例子。

          大多數(shù)讀者立即就可認(rèn)出這些函數(shù)并將其與通用C語(yǔ)言庫(kù)中的函數(shù)對(duì)應(yīng)起來(lái)。 事實(shí)上,puts 和 gets 函數(shù)可以直接用CDC類(lèi)中對(duì)應(yīng)的 putsUSBUSART 和 getsUSBUSART 函數(shù)來(lái)替代。 通過(guò)其它專用實(shí)施函數(shù)還可以支持不同的串類(lèi)型(空結(jié)束與固定長(zhǎng)度緩沖)和存儲(chǔ)類(lèi)型(RAM還是ROM串表)。 下面給出熟悉的HelloWorld程序利用CDC-USB函數(shù)實(shí)現(xiàn)的程序。

          #include "systemusbusb.h"
          #include "io_cfg.h"

          void main(void)
          {
              InitializeSystem();
              while(1)
              {
                  USBTasks();         // USB Tasks
                  HelloWorld();       // send a message to the
                      world
              }//end while
          }//end main
          HelloWorld(void)
          {   
             If ( mUSBUSARTIsTxTrfReady())                  // check if Tx buffer empty
                 putrsUSBUSART( "Hello World!rn") //
                    send a new text string
          } // Hello World



        關(guān)鍵詞: Microchip USB 串行

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 麟游县| 通江县| 嘉兴市| 台州市| 乐至县| 昔阳县| 南木林县| 安阳市| 怀远县| 商南县| 新泰市| 三原县| 昌邑市| 中卫市| 隆安县| 镇江市| 邵东县| 安平县| 河池市| 武山县| 昌江| 葫芦岛市| 鹿泉市| 闻喜县| 剑河县| 偃师市| 朔州市| 彰化市| 罗山县| 沈阳市| 眉山市| 社会| 夏津县| 辽阳县| 红安县| 岐山县| 四子王旗| 九江市| 同德县| 玉龙| 宁城县|