日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
TI-MSP430F149在TCP/IP上的擴展
TI-MSP430F149在TCP/IP上的擴展
 更新時間:2008-8-4 4:59:53  點擊數(shù):7
【字體: 字體顏色


    應(yīng)FFT邀請,談?wù)勗贔149的TCP/IP功能上的增強,實際上我接觸430的時間很短(FFT,moom知道,只有半年多),只是天天跟 CaptureCIS+Allegro,IAR Compiler, CodeWright, VisualC++, cvs, gcc打交道,方方面面都要做(誰叫我在小公司打
工呢),上手快些而已.就如FFT所說,希望在不觸及(或自己不覺得影響到)商業(yè)/工業(yè)秘密的時候,各位同行多多交流交流,互促進步. 程序以TI網(wǎng)站上原碼為最初原型(其實當初我最早想移植uIP的,后來看到時間緊,放棄了)

1.文件結(jié)構(gòu)調(diào)整
當我一看到TI的范例,就對其結(jié)構(gòu)不已為然,通篇項目只有一個C,其他都是關(guān)聯(lián)近來的,這完全不時一個標準C/C++程
序員的風格嘛,對功能擴展,錯誤跟蹤分析不利,所以我第一件事就改了文件結(jié)構(gòu)劃分.
使各個C文件單獨編譯,最后連接,其他應(yīng)用程序當然是單獨的文件了, 免得在調(diào)試和分析的時候在整個項目到處亂翻
編量和代碼實現(xiàn).
另外由于Socket的應(yīng)用顯然包括網(wǎng)絡(luò)的兩端,因此單獨列出一兩個H文件,方便和其他系統(tǒng)C的編譯連接(如port定義,
各個socket命令參數(shù),格式等),由于平臺的相關(guān)性,強烈建議采用uIP等的數(shù)據(jù)類型定義方式,以免以后與32位系統(tǒng)
socket聯(lián)調(diào)時麻煩.

2.FLASH區(qū)域的詳細劃分:
主要代碼區(qū)
應(yīng)用數(shù)據(jù)區(qū)
系統(tǒng)升級代碼及永久數(shù)據(jù)區(qū)(永久數(shù)據(jù)包括MAC地址等,注意IP地址并不在此內(nèi),其實IP,Gateway,等參數(shù)隨時可能改
變)
網(wǎng)絡(luò)信息區(qū)(IP地址,SubNetMask,別名等等)
系統(tǒng)版本區(qū)(軟硬件版本信息,只有系統(tǒng)在線自升級才修改,保留信息結(jié)構(gòu)的一致性,要有擴充余地,方便高端程序?qū)?
該設(shè)備基本軟硬件信息的訪問)
中斷向量區(qū)(系統(tǒng)固定,但軟件在線升級時要更改, 因為很可能你的產(chǎn)品安裝后要在線升級軟件版本,而你的新的軟
件版本改變了中斷方式和中斷數(shù)量!!!)


3.編譯器連接器的設(shè)定
配合FLASH的劃分,設(shè)定相關(guān)的連接參數(shù): 我的如下XXXX代表應(yīng)用層)

-cMSP430
-Z(DATA)UDATA0,IDATA0,ECSTR=0200-09FF
-Z(DATA)CSTACK#0200-0A00 //keep 300b+(12c) for stack!!! (check map file)
-Z(CODE)INFO=1000-10FF
// Main memory (FLASH)
//map of msp430f149
//1000-107f Segment B (system mode) (128 bytes) Segment B
//1080-10ff Segment A (node-net info) (128 bytes) Segment A
//1100-11ff NOT USED ..............!!!!!!!!!!.................. (256 bytes) Segment 119# //special
for F149!!! see slas272d.pdf P12
//1200-91ff xxxx-zone (32k bytes) Segment 55# - 118#
//9200-f9ff general code,const -- changed under system upgraded (26k bytes) Segment 3# - 54#
(512B/seg)
//fa00-fbff chip info --maybe changed under system upgraded (512 bytes) Segment 2#
//fc00-fdff mac address --never change!!! (512 bytes) Segment 1#
//fe00-ffff interrupt vectors -- maybe changed (512 bytes) Segment 0# -
w/Interrupt Vectors

-Z(CODE)SYS_MODE_TABLE=1000-107F
-Z(CODE)NODE_INFO_TABLE=1080-10FF
-Z(CODE)xxxx_ZONE=1200-91FF
-Z(CODE)CODE,CONST,CSTR,CDATA0,CCSTR=9200-f9ff
-Z(CODE)CHIP_INFO=fa00-fbff
-Z(CODE)MAC_TABLE=fc00-Fdff
-Z(CODE)INTVEC=FFE0-FFFF

4.變量和代碼的優(yōu)化
TCP/IP協(xié)議中用了很多全局/局部變量,我更改了一些簡單變量為結(jié)構(gòu)模式,有些直接放在響應(yīng)的FLASH區(qū),從而提高代
碼的效率和節(jié)約了內(nèi)存.有些函數(shù)的參數(shù)盡量減少到2個以內(nèi)(或分開列出),而有些函數(shù)根本不必要單獨列出,用宏來代
替就可以了(效率),以下范例:

a. 合并兩個重復(fù)的代碼:
//#define SwapBytes(Data) ((u16_t)((Data >> 8) | (Data << 8)))
#define SWAPB(Word) ((u16_t)((Word) << 8) | ((Word) >> 8))

b. TxTCPBuffer 和 RxTCPBuffer 的直接訪問(不用多次拷貝----浪費內(nèi)寸和時間!!!)
extern u8_t RxTCPBuffer[MSP_MAX_TCP_RX_DATA_SIZE]; // space for incoming TCP-data
//pointer of RX_BUFFER
#define TCP_REQ_PTR_KEY ((u8_t *)TCP_RX_BUF)
#define TCP_REQ_PTR_ORDER ((u8_t *)TCP_REQ_PTR_KEY +sizeof(u32_t))
#define TCP_REQ_PTR_LEN ((u8_t *)TCP_REQ_PTR_ORDER +sizeof(u16_t))
#define TCP_REQ_PTR_DATA ((u8_t *)TCP_REQ_PTR_LEN +sizeof(u16_t))
#define TCP_REQ_KEY ((u32_t)*((u32_t *)TCP_REQ_PTR_KEY))
#define TCP_REQ_ORDER ((u16_t)*((u16_t *)TCP_REQ_PTR_ORDER))
[1] [2] [3] [4] [5] [6] [7]  下一頁
  • 上一篇: AVR芯片的ISP全攻略
  • 下一篇: 24位高精度A/D芯片CS5524的應(yīng)用
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1