久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 基于mC/OS-II的視頻監控終端無線網絡接口設計

基于mC/OS-II的視頻監控終端無線網絡接口設計

作者: 時間:2011-08-29 來源:網絡 收藏
與CPU或編譯器

本文引用地址:http://cqxgywz.com/article/155834.htm

  相關的include文件

  在/src/arch/include/arch 目錄下的cc.h、cpu.h、perf.h中有一些與CPU或編譯器相關的定義,如數據長度、字的高低位順序等,這應該與用戶實現時定義的數據長度等參數一致。一般情況下C語言的結構體struct是4字節對齊的,但是在處理數據包的時候,LwIP是通過結構體中不同數據的長度來讀取相應數據的,所以,一定要在定義struct的時候使用_packed關鍵字,讓編譯器放棄struct的字節對齊。

  sys_arch操作系統相關部份

  sys_arch. [ch]中的內容是與操作系統相關的一些結構和函數。實現了消息隊列結構OSQ及其操作,但沒有對消息隊列中的消息進行管理,因此不能直接使用,必須重新實現。對隊列本身的管理可利用自己的OSQ操作完成,然后使用mC/OS-II中的內存管理模塊實現對消息的創建、使用、刪除回收,兩部分綜合起來即可形成LwIP的消息隊列功能。

  sys_thread_new 創建新線程

  在mC/OS-II 中,沒有線程(thread)的概念,只有任務(Task)。它已經提供了創建新任務的系統API調用OSTaskCreate,因此只要把 OSTaskCreate封裝一下,就可以實現sys_thread_new。需要注意的是LwIP中的thread并沒有mC/OS-II中優先級的概念,實現時要由用戶事先為LwIP中創建的線程分配好優先級。

  lib_arch中庫函數的實現

  LwIP協議棧中用到了8個外部函數,這些函數通常與用戶使用的系統或編譯器有關,因此應由用戶自己實現。

  LwIP的設備驅動程序

  LwIP與PPP的程序結構簡要描述如下:

  #define NTHREADS 3

  #define STACKSIZE( CYG NUM_HAL_STACK_SIZE_TYPICAL + 4096 )

  #define NTHREADS 3

  #define STACKSIZE ( CYG NUM_HAL_STACK_SIZE_TYPICAL + 4096 )

  err = cyg_io_lookup( /dev/ser1, handle1 );

  if (ENOERR == err) {

  middleblink();

  } else {

  leftblink();

  };

  pppInit();

  pppSetAuth(PPPAUTHTYPE_ PAP, pppuser,pppassword);

  pd=pppOpen(handle1,ppp LinkStatus Callback,NULL);

  void pppLinkStatusCallback (void * ctx, int errCode, void * arg) {

  skipblink();

  }

  結語

  本有機地結合了嵌入式設備和無線傳輸,符合嵌入式和結合的發展趨勢。同時,這一也對其它系統的發展起到一定的借鑒意義。

tcp/ip相關文章:tcp/ip是什么



上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉