Cortex-M3平臺上lwIP+AJAX的Web嵌入式應用
#define APP_BASE 0x00000000
#define RAM_BASE 0x20000210
MEMORY
{
FLASH (RX) : origin =APP_BASE, length =0x00080000 //Application stored in and executes from //internal flash
SRAM (RWX) : origin =RAM_BASE, length =0x00017df0 //Application uses internal RAM for data
}
lwIP移植
lwIP移植涉及的主要過(guò)程如下:
(1)在/ports目錄下,增加對stellaris LM3S9D96的MAC層驅動(dòng)實(shí)現
stellarisif.h/stellarisif.c:實(shí)現與lwIP網(wǎng)絡(luò )驅動(dòng)接口,此代碼從lwIP的“ethernetif.c”衍射出來(lái),重要函數有stellarisif_init(),stellarisif_receive(),stellarisif_output(),stellarisif_interrupt(),及stellarisif_transmit();
sys_arch.h/sys_arch.c:實(shí)現sys_init(),sys_arch_thread(),sys_arch_timeouts及信號量,郵箱等功能。
perf.h/perf.c:主要實(shí)現perf_init()函數。
cc.h:一些與CPU或編譯器相關(guān)的定義,如數據長(cháng)度、字的高低位順序等。
(2)在/apps增加lwIP抽象應用層API
RAW API進(jìn)行TCP/IP編程,為提高程序可讀性及設計方便,對lwIP TCP/IP庫函數進(jìn)行抽象、封裝,提供應用層方便簡(jiǎn)捷的API,此部分包括以下文件中實(shí)現:
lwiplib.h/lwiplib.c:包括核心封裝有:lwIPInit(),lwIPPrivateInit(),lwIPInterruptTask(),lwIPEthernetIntHandler(),lwIPPrivateNetworkConfigChange()。
以上二步的源代碼,均可在TI網(wǎng)站上下載到示例源代碼文件。
AJAX動(dòng)態(tài)網(wǎng)頁(yè)設計
基于A(yíng)JAX的動(dòng)態(tài)網(wǎng)頁(yè)設計可分成前臺、后臺二部分來(lái)實(shí)現。
前臺包括(1)AJAX腳本設計,完整代碼見(jiàn)附件ajax.js;(2)HTML網(wǎng)頁(yè)設計,可借助專(zhuān)業(yè)的網(wǎng)頁(yè)開(kāi)發(fā)工具如Dreamware8.0進(jìn)行設計,完整代碼見(jiàn)附件index.htm。代碼關(guān)鍵地方均給出了注釋?zhuān)琲ndex.htm網(wǎng)頁(yè)通過(guò)調用ajax.js中的function ajax(url)方法創(chuàng )建一個(gè)ajax對象PlantRT.xml,并進(jìn)行必要的初始化:使用GET方式,關(guān)聯(lián)事件為function updateRTStatus(xml,e),頁(yè)面刷新周期5s。在function updateRTStatus(xml,e)中,通過(guò)調用ajax.js中的getXMLValue(xmlData, field)方法獲得服務(wù)器的響應值。主頁(yè)面Index網(wǎng)頁(yè)效果如圖5所示?! ?/p>

linux相關(guān)文章:linux教程
評論