版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基于Rabbit中央處理器的uC/OS-II嵌入式解決方案基于Rabbit中央處理器的uC/OS-II嵌入式解決方案1從硬件入手:了解Rabbit2000/3000Z180的改進和提高硬件:集成部分外設、更高速度的16位CPU
實時時鐘、watchdog、從口編程、4/6個串口5個8bitstimers、2個10bitstimers、4級中斷遠程下載及啟動軟件:對C語言更有力的支持從硬件入手:了解Rabbit2000/3000Z180的改進2Rabbit4000CPU后向兼容于Rabbit2000&3000CPU16M平鋪內(nèi)存,最大64M(4頁)尋址空間支持16位的接口8通道DMA支持數(shù)據(jù)塊拷貝,提高數(shù)據(jù)傳輸速度80Mhz主頻,共支持471條精簡指令,浮點運算能力內(nèi)嵌10M/100M以太網(wǎng)收發(fā)器CPU硬件斷點和單步執(zhí)行中斷新的16位計數(shù)器,輸出可以控制增強的串口作業(yè)頻率:2kHz-100MHz1.8V的核心電壓,3.3V或者1.8VI/O的電壓Rabbit4000CPU后向兼容于Rabbit2003Rabbit2000計算能力FloatingPoint
Operation*RABBIT2000
@29.49MHzZilogZ180
@24.58MHzDallasDS80C320
@33.18MHzPhillips80C51
@33.18MHzAMD188ES
@36.86MHzAdd9.6μs263278194Multiply12μs423485184SquareRoot32μs343334805355Sine94μs12384521112804CompilerDynamicC6.10DynamicC6.10Kiel51JSIM-51BorlandC3.31*Flash存取時間為55nsRabbit2000計算能力FloatingPoint
O4系統(tǒng)結構—16位CPU上的嵌入系統(tǒng)Rabbit2000/3000硬件系統(tǒng)BIOS硬件驅動直接面向硬件的應用應用程序I/O控制應用文件系統(tǒng)RTOS應用程序系統(tǒng)結構—16位CPU上的嵌入系統(tǒng)Rabbit2000/305Complier/Edit簡介ResetColdload.bin→Polit.binBIOS應用程序DynamicC(PC)DTRReset2400bps57600bps57600bps115200bps100msComplier/Edit簡介ResetColdload.b6BIOS功能為應用程序提供低端服務系統(tǒng)初始化與DynamicC集成開發(fā)環(huán)境通訊存儲空間配置BIOS功能為應用程序提供低端服務7BIOSFlowchart
Startataddress0初始化BIOS與DynamicC通訊調用MAIN()被診斷工作(目前不支持)是否使用BIOS服務?設置存儲控制和BIOS服務是否有編程電纜?Master工作面向應用程序的BIOS服務應用程序BIOSFlowchartStartataddres8編譯和運行模式編譯模式:CompileincludedebugcodeCompilewithoutdebugcode運行模式:Polling模式/調試模式非調試模式編譯和運行模式編譯模式:運行模式:9更進一步:
DynamicC中Rabbit2000/3000內(nèi)存管理基于μC/OS-Ⅱ系統(tǒng)的應用DynamicC支持的文件系統(tǒng)TCP/IP編程串口編程I2C、SPI總線編程FFT、AES函數(shù)庫的使用
更進一步:10Rabbit2000的存儲管理
--段頁管理的存儲系統(tǒng)Rabbit2000的存儲管理11MemoryMapof16-bitAddressingSpaceRootInterchangeMemoryMapof16-bitAddressin12基于Rabbit中央處理器的uCOS-II嵌入式解決方案課件13RAMENDRAM_START*0x1000DATASIZEXalloc_Store[0].size(calculatedbyInit_Xalloc())XallocregionReserve_Store[0].topRAM_START*0x1000+0xff0x100Quadrantswitchingcode為DATA、WATCH保留RAMENDRAM_START*0x1000DATASIZ14邏輯空間中段的內(nèi)容(Small模式)byseveralstacksorremappinginRAM(Watchsegment,InterruptVector)Byspecialfunctionsorkeywords(Assemblyfunction)邏輯空間中段的內(nèi)容(Small模式)byseverals15代碼和數(shù)據(jù)位置的調整#classoptionrootxdataxmemxstringroot2xmem(),xmem2root(),xmem2mem()#ximport代碼和數(shù)據(jù)位置的調整#classoption16自定制的存儲映射(BIOS的修改)DATAORGWATCHCODESIZE更改映射#defineDATASEGVAL0x91
#rvarorgrootdata(DATASEGVAL)0xc5ff0x6600apply//growsdown
#rcodorgrootcode0x000x00000x6000apply
#wcodorgwatcode(DATASEGVAL)0xc6000x0400apply
#xcodorgxmemcode0xf80xe0000x1a000apply
//datadeclarationsstarthere
只能編譯成.bin文件自定制的存儲映射(BIOS的修改)DATAORG#defin17文件系統(tǒng)的支持邁向完整的系統(tǒng)文件系統(tǒng)的支持邁向完整的系統(tǒng)18FS2與FAT系統(tǒng)的概念對應FS2系統(tǒng):BIOS中預留的空間LogicalextentLogicalsectorMetadataFilenumber/Filename(1~255)FAT系統(tǒng):DiskDiskpartition簇Directoryentry—FATFilenameFS2與FAT系統(tǒng)的概念對應FS2系統(tǒng):FAT系統(tǒng):19FS2的使用“安裝”物理空間
修改XMEM_RESERVE_SIZE、FS2_RAM_RESERVE或定義FS2_USE_PROGRAM_FLASH“分區(qū)”
fs_get_flash_lx、fs_get_other_lx、fs_get_ram_lx初始化(第一次使用)fs_init()格式化lx_format()
FS2的使用“安裝”物理空間20FS2使用的注意事項各個宏定義及存儲器中空間的分配堆棧的使用
fs2.lib中默認堆棧為2048bytes;LS倍增時約多用100bytes的堆??臻g讀寫時間
512LS時,fs_init()耗時2秒可重入性Errornumber大部分與POSIX一致FS2使用的注意事項各個宏定義及存儲器中空間的分配21μC/OS-IIreal-timeoperatingsystem--Z-WORLD系統(tǒng)的基石μC/OS-II22系統(tǒng)開發(fā)面臨的挑戰(zhàn)市場發(fā)展技術進步開發(fā)時間系統(tǒng)穩(wěn)定性系統(tǒng)復雜度系統(tǒng)開發(fā)系統(tǒng)開發(fā)面臨的挑戰(zhàn)市場發(fā)展技術進步開發(fā)時間系統(tǒng)穩(wěn)定性系統(tǒng)復雜23使用RTOS的利弊優(yōu)點:有利于系統(tǒng)建模良好的響應時間程序模塊化方便的數(shù)據(jù)封裝缺點:系統(tǒng)占用一定資源調試難度加大使用RTOS的利弊優(yōu)點:缺點:24μC/OS-II的定位及性能特點實時內(nèi)核*(20MHz)
單進程多線程64個優(yōu)先級(系統(tǒng)使用8個)ServiceTime獲得信號量10μs釋放信號量6~38μs任務切換17~35μs寫數(shù)據(jù)到隊列49~68μs讀數(shù)據(jù)到隊列12~38μs創(chuàng)建任務158μs注銷任務36~57μsμC/OS-II的定位及性能特點實時內(nèi)核25RTOS環(huán)境中的開發(fā)Dataprocessingfunctions時間觸發(fā)子系統(tǒng)輸入輸出初始化任務狀態(tài)圖(事件觸發(fā))硬件平臺軟件平臺外設RTOS環(huán)境中的開發(fā)Dataprocessingfunc26應用實例—埋入式液罐監(jiān)測系統(tǒng)系統(tǒng)性能概述:1.監(jiān)測8個油罐的罐內(nèi)溫度和液位;2.根據(jù)溫度和液位計算罐內(nèi)狀態(tài).異常時報警;3.人機界面:4*4的鍵盤、20個字符的LCD和熱敏微型打印機;4.報警鈴(鍵盤控制停止報警).應用實例—埋入式液罐監(jiān)測系統(tǒng)系統(tǒng)性能概述:27細化時間需求讀入模擬量間隔時間:10-1s對按鍵的響應時間:10-1s模擬量計算時間:秒級液罐溢出或泄露的判定時間:102s打印速率:2~3行/s報告長度:30~59行打印機每次處理一行數(shù)據(jù)細化時間需求讀入模擬量間隔時間:10-1s28劃分任務任務優(yōu)先級創(chuàng)建任務原因處理液位任務低“日?!比蝿仗幚硪绯龊托孤┤蝿崭哧P鍵任務鍵盤處理任務高控制系統(tǒng)狀態(tài)顯示處理任務高有不同的消息傳遞到此任務打印處理任務中處理時間過長劃分任務任務優(yōu)先級創(chuàng)建任務原因處理液位任務低“日?!比蝿仗幚?9任務狀態(tài)圖LevelcalculationtaskButtoncommandtaskPrinterFormattingtaskDisplaytaskOverflowDetectiontaskFloatreadingmoduleTimerinterruptroutineButtoninterruptroutinePrinterinterruptroutineLeveldatamoduleFloatinterruptroutineRTOS傳遞的消息其它任務激活PrinterLCD任務狀態(tài)圖LevelButtonPrinterDispl30TCP/IP編程(Pre7.30)--Z-world系統(tǒng)騰飛的雙翅TCP/IP編程(Pre7.30)--Z-world系統(tǒng)騰31TCP/IPandHardware
HowapackettravelsthroughtheNetworkLayers)
ApplicationsPacketPacketPacketPacketPacketTCPUDPIPHardwareLayerApplicationTransportNetworkPhysical&DataLinkTCP/IPandHardware
Howapack32DynamicC支持的協(xié)議IP:InternetProtocolTCP:TransmissionControlProtocolUDP:UserDatagramProtocolFTP:FileTransferProtocolTFTP:TrivialFileTransferProtocolTelnetDNS:DomainNameSystemICMP:InternetControlMessageProtocolPPP:PointtoPointProtocolSMTP:SimpleMailTransferProtocolHTTP:HyperTextTransferProtocolPOP3:PostofficeProtocol,v3SNMP:SimpleNetworkManagementProtocolDynamicC支持的協(xié)議IP:InternetPro33TCP/IP配置pd_getaddress()讀出MAC地址宏MY_IP_ADDRESS宏MY_NETMASK宏MY_GATEWAY宏MY_NAMESERVERtcpconfigsethostid()sethostname()TCP/IP配置pd_getaddress()讀出MAC34TCP/IP動態(tài)配置(BOOTPorDHCPClient)BOOTP/DHCPControlMacros
(在#use“dcrtcp.lib”之前)USE_DHCPDHCP_USE_BOOTPDHCP_CLASS_IDDHCP_USE_TFTPsock_init()自動配置0:OK. 1:Ethernetpacketdriverinitializationfailed. 2:DHCPfailed,usingfallbackdefinitions. 3:DHCPfailed,nofallbacksdefined. Other:reserved.dhcp_acquire()、dhcp_release()重配置TCP/IP動態(tài)配置(BOOTPorDHCPClie35TCP應用(Client)#defineMY_IP_ADDRESS“25"#defineMY_NETMASK ""#definePORT180main(){tcp_Sockets;….. sock_init(); tcp_open(&s,0,ip,PORT,NULL); sock_wait_established(&s,0,NULL,&status); sock_mode(&s,TCP_MODE_ASCII); while(tcp_tick(&s)){ sock_wait_input(&s,0,NULL,&status); if(sock_gets(&s,buffer,2048))printf("%s\n",buffer); }sock_err:…..}TCP應用(Client)#defineMY_IP_ADD36TCP應用(Server)#defineMY_IP_ADDRESS“25"#defineMY_NETMASK""#definePORT123tcp_Socketechosock;main(){…….sock_init(); while(1){ tcp_listen(&echosock,PORT,0,0,NULL,0); sock_wait_established(&echosock,0,NULL,&status); sock_mode(&echosock,TCP_MODE_ASCII); while(tcp_tick(&echosock)){…… }sock_err:…. }}TCP應用(Server)#defineMY_IP_ADD37UDP應用(Server&Client)sock_init()Udp_open(P1,P2,P3,P4)
PARAMETER1:socketPARAMETER2:localportPARAMETER3:acceptableremoteip,0toconnectonfirstdatagram,-1 forall(resolve(“55”))PARAMETER4:acceptableremoteport,0toconnectonfirstdatagramPARAMETER5:functiontocallwhendataisreceived,NULLforplacingdatainthesocket'sreceivebuffer.Udp_send()、udp_recv()….UDP應用(Server&Client)sock_in38DNS應用(Client)#defineMY_NAMESERVER resolve()Non-blockingDNS查詢resolve_name_start()resolve_name_check()resolve_cancel()其他區(qū)域DNSserver緩存DNSserverDNS解析器緩存ApplicationDNS應用(Client)#defineMY_NAMESE39ZSERVER.LIB(HTTP&FTPserver工具庫)DataStructure:ServerSprc(FormVar):可傳輸對象列表ServerAuth:用戶列表Constants:以上結構體中的參數(shù)和下面函數(shù)的返回值;數(shù)據(jù)類型定義;服務器類型定義和參數(shù)Functions:對以上結構體的設定、修改和讀取參數(shù)ZSERVER.LIB(HTTP&FTPserver工具40HTTPServer的應用應用程序處理Http消息使用HTTP.LIB的http_handler()HttpSpec:Webserver提供的文件、變量、函數(shù)HttpType:處理文件的連接HttpRealm:HttpSpec中的需認證的資源HttpState:CGI函數(shù)接口HTTPServer的應用應用程序處理Http消息41HTTPServer實現(xiàn)#defineMY_IP_ADDRESS"00"#defineMY_NETMASK""#use"dcrtcp.lib"#use"http.lib"main(){sock_init();http_init();tcp_reserveport(80);while(1){http_handler();}}HTTPServer實現(xiàn)#defineMY_IP_AD42HTTPServer示例1靜態(tài)頁面#ximport"samples/tcpip/http/pages/static.html"index_html#ximport"samples/tcpip/http/pages/rabbit1.gif"rabbit1_gif
constHttpTypehttp_types[]={{".html","text/html",NULL},{".gif","image/gif",NULL}};constHttpSpechttp_flashspec[]={{HTTPSPEC_FILE,"/",index_html,NULL,0,NULL,NULL},{HTTPSPEC_FILE,"/index.html",index_html,NULL,0,NULL,NULL},{HTTPSPEC_FILE,"/rabbit1.gif",rabbit1_gif,NULL,0,NULL,NULL},};HTTPServer示例1靜態(tài)頁面#ximport43HTTPServer示例2動態(tài)刷新constHttpTypehttp_types[]={{".shtml","text/html",shtml_handler},//ssi{".html","text/html",NULL},//html{".cgi","",NULL},//cgi{".gif","image/gif",NULL}};longcounter;constHttpSpechttp_flashspec[]={{HTTPSPEC_FILE,"/",index_html,NULL,0,NULL,NULL},{HTTPSPEC_FILE,"/index.shtml",index_html,NULL,0,NULL,NULL},{HTTPSPEC_VARIABLE,"counter",0,&counter,INT32,"%ld",NULL}};HTTPServer示例2動態(tài)刷新constHt44HTTPServer示例3CGIconstHttpSpechttp_flashspec[]={{HTTPSPEC_FILE,"/",index_html,NULL,0,NULL,NULL},{HTTPSPEC_FILE,"/index.html",index_html,NULL,0,NULL,NULL},{HTTPSPEC_FILE,"/rabbit1.gif",rabbit1_gif,NULL,0,NULL,NULL},{HTTPSPEC_FUNCTION,"/test.cgi",0,test_cgi,0,NULL,NULL}};inttest_cgi(HttpState*state){ staticchardate[20]; staticcharbuffer[256]; staticinthitcount; #GLOBAL_INIT{hitcount=0;} hitcount++; http_date_str(date); sprintf(buffer,teststr,date,hitcount,REDIRECTTO); cgi_sendstring(state,buffer);return0;}HTTPServer示例3CGIconstHtt45FTPSever的實現(xiàn)main(){ intfile,user;file=sspec_addxmemfile("rabbitA.gif",rabbit1_gif,SERVER_FTP); user=sauth_adduser("anonymous","",SERVER_FTP); sspec_setuser(file,user); sock_init(); ftp_init(NULL);/*usedefaulthandlers*/ tcp_reserveport(21); while(1){ftp_tick(); }}FTPSever的實現(xiàn)main()46FTPClient的實現(xiàn)main(){ staticcharbuf[1024]; sock_init(); ftp_client_setup(resolve(REMOTE_HOST),REMOTE_PORT,REMOTE_USERNAME, REMOTE_PASSWORD,FTP_MODE_DOWNLOAD,REMOTE_FILE, NULL,buf,sizeof(buf)) while(0==ftp_client_tick()) ;}FTPClient的實現(xiàn)main()47SMTPMailClient實現(xiàn)main(){ sock_init();smtp_sendmail(TO,FROM,SUBJECT,BODY); while(smtp_mailtick()==SMTP_PENDING) continue;if(smtp_status()==SMTP_SUCCESS) printf("Messagesent\n"); else printf("Errorsendingmessage\n");}SMTPMailClient實現(xiàn)main()48POP3Client實現(xiàn)main(){sock_init();pop3_init(storemsg); pop3_getmail(POP_USER,POP_PASS,IP); while((retval=pop3_tick())==POP_PENDING )continue;if(retval==POP_SUCCESS)printf(“Successfull!\n"); if(retval==POP_TIME)printf(“Timedout!\n"); if(retval==POP_ERROR)printf(“Error!\n"); }參數(shù)為回傳處理函數(shù)(庫中已定義格式)POP3Client實現(xiàn)main()參數(shù)為回傳處理函數(shù)(49謝謝!敬請指教…丁元國Tel1/2/3Fax-Mail:dingyg99@Msn:dingyg99@謝謝!敬請指教…丁元國50基于Rabbit中央處理器的uC/OS-II嵌入式解決方案基于Rabbit中央處理器的uC/OS-II嵌入式解決方案51從硬件入手:了解Rabbit2000/3000Z180的改進和提高硬件:集成部分外設、更高速度的16位CPU
實時時鐘、watchdog、從口編程、4/6個串口5個8bitstimers、2個10bitstimers、4級中斷遠程下載及啟動軟件:對C語言更有力的支持從硬件入手:了解Rabbit2000/3000Z180的改進52Rabbit4000CPU后向兼容于Rabbit2000&3000CPU16M平鋪內(nèi)存,最大64M(4頁)尋址空間支持16位的接口8通道DMA支持數(shù)據(jù)塊拷貝,提高數(shù)據(jù)傳輸速度80Mhz主頻,共支持471條精簡指令,浮點運算能力內(nèi)嵌10M/100M以太網(wǎng)收發(fā)器CPU硬件斷點和單步執(zhí)行中斷新的16位計數(shù)器,輸出可以控制增強的串口作業(yè)頻率:2kHz-100MHz1.8V的核心電壓,3.3V或者1.8VI/O的電壓Rabbit4000CPU后向兼容于Rabbit20053Rabbit2000計算能力FloatingPoint
Operation*RABBIT2000
@29.49MHzZilogZ180
@24.58MHzDallasDS80C320
@33.18MHzPhillips80C51
@33.18MHzAMD188ES
@36.86MHzAdd9.6μs263278194Multiply12μs423485184SquareRoot32μs343334805355Sine94μs12384521112804CompilerDynamicC6.10DynamicC6.10Kiel51JSIM-51BorlandC3.31*Flash存取時間為55nsRabbit2000計算能力FloatingPoint
O54系統(tǒng)結構—16位CPU上的嵌入系統(tǒng)Rabbit2000/3000硬件系統(tǒng)BIOS硬件驅動直接面向硬件的應用應用程序I/O控制應用文件系統(tǒng)RTOS應用程序系統(tǒng)結構—16位CPU上的嵌入系統(tǒng)Rabbit2000/3055Complier/Edit簡介ResetColdload.bin→Polit.binBIOS應用程序DynamicC(PC)DTRReset2400bps57600bps57600bps115200bps100msComplier/Edit簡介ResetColdload.b56BIOS功能為應用程序提供低端服務系統(tǒng)初始化與DynamicC集成開發(fā)環(huán)境通訊存儲空間配置BIOS功能為應用程序提供低端服務57BIOSFlowchart
Startataddress0初始化BIOS與DynamicC通訊調用MAIN()被診斷工作(目前不支持)是否使用BIOS服務?設置存儲控制和BIOS服務是否有編程電纜?Master工作面向應用程序的BIOS服務應用程序BIOSFlowchartStartataddres58編譯和運行模式編譯模式:CompileincludedebugcodeCompilewithoutdebugcode運行模式:Polling模式/調試模式非調試模式編譯和運行模式編譯模式:運行模式:59更進一步:
DynamicC中Rabbit2000/3000內(nèi)存管理基于μC/OS-Ⅱ系統(tǒng)的應用DynamicC支持的文件系統(tǒng)TCP/IP編程串口編程I2C、SPI總線編程FFT、AES函數(shù)庫的使用
更進一步:60Rabbit2000的存儲管理
--段頁管理的存儲系統(tǒng)Rabbit2000的存儲管理61MemoryMapof16-bitAddressingSpaceRootInterchangeMemoryMapof16-bitAddressin62基于Rabbit中央處理器的uCOS-II嵌入式解決方案課件63RAMENDRAM_START*0x1000DATASIZEXalloc_Store[0].size(calculatedbyInit_Xalloc())XallocregionReserve_Store[0].topRAM_START*0x1000+0xff0x100Quadrantswitchingcode為DATA、WATCH保留RAMENDRAM_START*0x1000DATASIZ64邏輯空間中段的內(nèi)容(Small模式)byseveralstacksorremappinginRAM(Watchsegment,InterruptVector)Byspecialfunctionsorkeywords(Assemblyfunction)邏輯空間中段的內(nèi)容(Small模式)byseverals65代碼和數(shù)據(jù)位置的調整#classoptionrootxdataxmemxstringroot2xmem(),xmem2root(),xmem2mem()#ximport代碼和數(shù)據(jù)位置的調整#classoption66自定制的存儲映射(BIOS的修改)DATAORGWATCHCODESIZE更改映射#defineDATASEGVAL0x91
#rvarorgrootdata(DATASEGVAL)0xc5ff0x6600apply//growsdown
#rcodorgrootcode0x000x00000x6000apply
#wcodorgwatcode(DATASEGVAL)0xc6000x0400apply
#xcodorgxmemcode0xf80xe0000x1a000apply
//datadeclarationsstarthere
只能編譯成.bin文件自定制的存儲映射(BIOS的修改)DATAORG#defin67文件系統(tǒng)的支持邁向完整的系統(tǒng)文件系統(tǒng)的支持邁向完整的系統(tǒng)68FS2與FAT系統(tǒng)的概念對應FS2系統(tǒng):BIOS中預留的空間LogicalextentLogicalsectorMetadataFilenumber/Filename(1~255)FAT系統(tǒng):DiskDiskpartition簇Directoryentry—FATFilenameFS2與FAT系統(tǒng)的概念對應FS2系統(tǒng):FAT系統(tǒng):69FS2的使用“安裝”物理空間
修改XMEM_RESERVE_SIZE、FS2_RAM_RESERVE或定義FS2_USE_PROGRAM_FLASH“分區(qū)”
fs_get_flash_lx、fs_get_other_lx、fs_get_ram_lx初始化(第一次使用)fs_init()格式化lx_format()
FS2的使用“安裝”物理空間70FS2使用的注意事項各個宏定義及存儲器中空間的分配堆棧的使用
fs2.lib中默認堆棧為2048bytes;LS倍增時約多用100bytes的堆棧空間讀寫時間
512LS時,fs_init()耗時2秒可重入性Errornumber大部分與POSIX一致FS2使用的注意事項各個宏定義及存儲器中空間的分配71μC/OS-IIreal-timeoperatingsystem--Z-WORLD系統(tǒng)的基石μC/OS-II72系統(tǒng)開發(fā)面臨的挑戰(zhàn)市場發(fā)展技術進步開發(fā)時間系統(tǒng)穩(wěn)定性系統(tǒng)復雜度系統(tǒng)開發(fā)系統(tǒng)開發(fā)面臨的挑戰(zhàn)市場發(fā)展技術進步開發(fā)時間系統(tǒng)穩(wěn)定性系統(tǒng)復雜73使用RTOS的利弊優(yōu)點:有利于系統(tǒng)建模良好的響應時間程序模塊化方便的數(shù)據(jù)封裝缺點:系統(tǒng)占用一定資源調試難度加大使用RTOS的利弊優(yōu)點:缺點:74μC/OS-II的定位及性能特點實時內(nèi)核*(20MHz)
單進程多線程64個優(yōu)先級(系統(tǒng)使用8個)ServiceTime獲得信號量10μs釋放信號量6~38μs任務切換17~35μs寫數(shù)據(jù)到隊列49~68μs讀數(shù)據(jù)到隊列12~38μs創(chuàng)建任務158μs注銷任務36~57μsμC/OS-II的定位及性能特點實時內(nèi)核75RTOS環(huán)境中的開發(fā)Dataprocessingfunctions時間觸發(fā)子系統(tǒng)輸入輸出初始化任務狀態(tài)圖(事件觸發(fā))硬件平臺軟件平臺外設RTOS環(huán)境中的開發(fā)Dataprocessingfunc76應用實例—埋入式液罐監(jiān)測系統(tǒng)系統(tǒng)性能概述:1.監(jiān)測8個油罐的罐內(nèi)溫度和液位;2.根據(jù)溫度和液位計算罐內(nèi)狀態(tài).異常時報警;3.人機界面:4*4的鍵盤、20個字符的LCD和熱敏微型打印機;4.報警鈴(鍵盤控制停止報警).應用實例—埋入式液罐監(jiān)測系統(tǒng)系統(tǒng)性能概述:77細化時間需求讀入模擬量間隔時間:10-1s對按鍵的響應時間:10-1s模擬量計算時間:秒級液罐溢出或泄露的判定時間:102s打印速率:2~3行/s報告長度:30~59行打印機每次處理一行數(shù)據(jù)細化時間需求讀入模擬量間隔時間:10-1s78劃分任務任務優(yōu)先級創(chuàng)建任務原因處理液位任務低“日?!比蝿仗幚硪绯龊托孤┤蝿崭哧P鍵任務鍵盤處理任務高控制系統(tǒng)狀態(tài)顯示處理任務高有不同的消息傳遞到此任務打印處理任務中處理時間過長劃分任務任務優(yōu)先級創(chuàng)建任務原因處理液位任務低“日?!比蝿仗幚?9任務狀態(tài)圖LevelcalculationtaskButtoncommandtaskPrinterFormattingtaskDisplaytaskOverflowDetectiontaskFloatreadingmoduleTimerinterruptroutineButtoninterruptroutinePrinterinterruptroutineLeveldatamoduleFloatinterruptroutineRTOS傳遞的消息其它任務激活PrinterLCD任務狀態(tài)圖LevelButtonPrinterDispl80TCP/IP編程(Pre7.30)--Z-world系統(tǒng)騰飛的雙翅TCP/IP編程(Pre7.30)--Z-world系統(tǒng)騰81TCP/IPandHardware
HowapackettravelsthroughtheNetworkLayers)
ApplicationsPacketPacketPacketPacketPacketTCPUDPIPHardwareLayerApplicationTransportNetworkPhysical&DataLinkTCP/IPandHardware
Howapack82DynamicC支持的協(xié)議IP:InternetProtocolTCP:TransmissionControlProtocolUDP:UserDatagramProtocolFTP:FileTransferProtocolTFTP:TrivialFileTransferProtocolTelnetDNS:DomainNameSystemICMP:InternetControlMessageProtocolPPP:PointtoPointProtocolSMTP:SimpleMailTransferProtocolHTTP:HyperTextTransferProtocolPOP3:PostofficeProtocol,v3SNMP:SimpleNetworkManagementProtocolDynamicC支持的協(xié)議IP:InternetPro83TCP/IP配置pd_getaddress()讀出MAC地址宏MY_IP_ADDRESS宏MY_NETMASK宏MY_GATEWAY宏MY_NAMESERVERtcpconfigsethostid()sethostname()TCP/IP配置pd_getaddress()讀出MAC84TCP/IP動態(tài)配置(BOOTPorDHCPClient)BOOTP/DHCPControlMacros
(在#use“dcrtcp.lib”之前)USE_DHCPDHCP_USE_BOOTPDHCP_CLASS_IDDHCP_USE_TFTPsock_init()自動配置0:OK. 1:Ethernetpacketdriverinitializationfailed. 2:DHCPfailed,usingfallbackdefinitions. 3:DHCPfailed,nofallbacksdefined. Other:reserved.dhcp_acquire()、dhcp_release()重配置TCP/IP動態(tài)配置(BOOTPorDHCPClie85TCP應用(Client)#defineMY_IP_ADDRESS“25"#defineMY_NETMASK ""#definePORT180main(){tcp_Sockets;….. sock_init(); tcp_open(&s,0,ip,PORT,NULL); sock_wait_established(&s,0,NULL,&status); sock_mode(&s,TCP_MODE_ASCII); while(tcp_tick(&s)){ sock_wait_input(&s,0,NULL,&status); if(sock_gets(&s,buffer,2048))printf("%s\n",buffer); }sock_err:…..}TCP應用(Client)#defineMY_IP_ADD86TCP應用(Server)#defineMY_IP_ADDRESS“25"#defineMY_NETMASK""#definePORT123tcp_Socketechosock;main(){…….sock_init(); while(1){ tcp_listen(&echosock,PORT,0,0,NULL,0); sock_wait_established(&echosock,0,NULL,&status); sock_mode(&echosock,TCP_MODE_ASCII); while(tcp_tick(&echosock)){…… }sock_err:…. }}TCP應用(Server)#defineMY_IP_ADD87UDP應用(Server&Client)sock_init()Udp_open(P1,P2,P3,P4)
PARAMETER1:socketPARAMETER2:localportPARAMETER3:acceptableremoteip,0toconnectonfirstdatagram,-1 forall(resolve(“55”))PARAMETER4:acceptableremoteport,0toconnectonfirstdatagramPARAMETER5:functiontocallwhendataisreceived,NULLforplacingdatainthesocket'sreceivebuffer.Udp_send()、udp_recv()….UDP應用(Server&Client)sock_in88DNS應用(Client)#defineMY_NAMESERVER resolve()Non-blockingDNS查詢resolve_name_start()resolve_name_check()resolve_cancel()其他區(qū)域DNSserver緩存DNSserverDNS解析器緩存ApplicationDNS應用(Client)#defineMY_NAMESE89ZSERVER.LIB(HTTP&FTPserver工具庫)DataStructure:ServerSprc(FormVar):可傳輸對象列表ServerAuth:用戶列表Constants:以上結構體中的參數(shù)和下面函數(shù)的返回值;數(shù)據(jù)類型定義;服務器類型定義和參數(shù)Functions:對以上結構體的設定、修改和讀取參數(shù)ZSERVER.LIB(HTTP&FTPserver工具90HTTPServer的應用應用程序處理Http消息使用HTTP.LIB的http_handler()HttpSpec:Webserver提供的文件、變量、函數(shù)HttpType:處理文件的連接HttpRealm:HttpSpec中的需認證的資源HttpState:CGI函數(shù)接口HTTPServer的應用應用程序處理Http消息91HTTPServer實現(xiàn)#defineMY_IP_ADDRESS"00"#defineMY_NETMASK""#use"dcrtcp.lib"#use"http.lib"main(){sock_init();http_init();tcp_reserveport(80);while(1){http_handler();}}HTTPServer實現(xiàn)#defineMY_IP_AD92HTTPServer示例1靜態(tài)頁面#ximport"samples/tcpip/http/pages/static.html"index_html#ximport"samples/tcpip/http/pages/rabbit1.gif"rabbit1_gif
constHttpTypehttp_types[]={{".html","text/html",NULL},{".gif","image/gif",NULL}};constHttpSpechttp_flashspec[]={{HTTPSPEC_FILE,"/",index_html,NULL,0,NULL,NULL},{HTTPSPEC_FILE,"/index.html",index_html,NULL,0,NULL,NULL},{HTTPSPEC_FILE,"/rabbit1.gif",rabbit1_gif,NULL,0,NULL,NULL},};HTTPServer示例1靜態(tài)頁面#ximport93HTTPServer示例2動態(tài)刷新constHttpTypehttp_types[]={{".shtml","text/html",shtml_handler},//ssi{".html","text/html",NULL},//html{".cgi","",NULL},
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電視臺演員服務心得
- 廣告行業(yè)美工工作技能總結
- 酒店服務員工作總結
- 跨學科教學與合作學習方案計劃
- 行業(yè)新品介紹總結
- 化工行業(yè)原料使用技術培訓總結
- 娛樂行業(yè)演藝表演培訓總結
- 體育館服務員的工作總結
- 酒店行業(yè)的衛(wèi)生管理
- 《漁藥使用及安全》課件
- 商務接待禮儀流程
- 護理不良事件用藥錯誤講課
- 新教材人教版高中英語選擇性必修第一冊全冊教學設計
- 2024北京大興區(qū)初三(上)期末化學試卷及答案
- 媒體與新聞法律法規(guī)法律意識與職業(yè)素養(yǎng)
- 推土機-推土機構造與原理
- 九年級化學課程綱要
- 臥式單面多軸鉆孔組合機床動力滑臺液壓系統(tǒng)
- Pcr室危險評估報告
- 生姜高產(chǎn)種植技術課件
評論
0/150
提交評論