時間:2013-08-16 09:53:59來æºï¼šå‚³å‹•ç¶²
引言
隨著電力系統的日趨復雜,繼電ä¿è·è£ç½®å°è»Ÿã€ç¡¬ä»¶æå‡ºäº†æ›´é«˜çš„è¦æ±‚。目å‰ï¼Œå¾®æ©Ÿä¿è·ç³»çµ±çš„處ç†å™¨ä¸€èˆ¬é‡‡ç”¨é«˜æ€§èƒ½å–®ç‰‡æ©Ÿã€æ•¸å—信號處ç†å™¨DSPå’Œå¯ç·¨ç¨‹é‚輯器件PLDç‰ä¾†æé«˜è™•ç†å™¨æ€§èƒ½ã€‚但是,隨著繼電ä¿è·ç³»çµ±å‘å¤šåŠŸèƒ½ã€æ™ºèƒ½åŒ–ã€å¯è¦–化åŠç¶²çµ¡åŒ–æ–¹å‘的發展,這些芯片已經ä¸èƒ½å®Œå…¨æ»¿è¶³éœ€æ±‚ã€‚å› æ¤ï¼Œåœ¨è¨è¨ˆæ–°çš„微機ä¿è·è£ç½®æ™‚,有必è¦é¸ç”¨é«˜æ€§èƒ½ã€ä½Žæˆæœ¬çš„æ–°åž‹è™•ç†å™¨ã€‚近年來,ARM處ç†å™¨æ†‘借高性價比ã€ä½ŽåŠŸè€—ç‰ç‰¹é»žï¼Œåœ¨åµŒå…¥å¼é ˜åŸŸç²å¾—了廣泛應用。而æ¤μC/OS-Ⅱ作為一種å…è²»çš„ã€æ€§èƒ½å“è¶Šçš„åµŒå…¥å¼æ“作系統,為微機ä¿è·è»Ÿä»¶æä¾›äº†çµ±ä¸€çš„開發平臺。本文çµåˆå·¥ç¨‹å¯¦è¸ï¼Œå°ä¸Šè¿°äºŒè€…在微機繼電ä¿è·ä¸çš„æ‡‰ç”¨ä½œäº›è¨Žè«–。
1微處ç†å™¨èˆ‡å¯¦æ™‚åµŒå…¥å¼æ“作系統的é¸å–
1.1微處ç†å™¨
微處ç†å™¨é¸æ“‡AT91RM9200,它是基于ARM920Tå…§æ ¸ã€ARM/Thumb指令集的完整片上系統,工作在180MHzé »çŽ‡ä¸‹å…¶é‹ç®—速度å¯é«˜é”200MIPS,集æˆäº†è±å¯Œçš„æ‡‰ç”¨å¤–è¨åŠæ¨™æº–接å£ã€‚該處ç†å™¨åŒ…括一個高速的片上SRAM工作å€å’Œä¸€å€‹ä½Žå»¶é²çš„外部總線接å£(EBI),其內置控制器å¯ç”¨äºŽæŽ§åˆ¶åŒæ¥DRAMã€çªç™¼è¨ªå•模å¼FLAsHå˜å„²å™¨å’Œéœæ…‹å˜å„²å™¨;æä¾›èˆ‡SmartMediaã€CompactFlashå’ŒNANDF1ash的接å£ï¼Œé›†æˆäº†USB2.0接å£å’Œåª’é«”è¨ªå•æŽ§åˆ¶å™¨(MAC),擴展了外部器件應用的種類,使開發出來的產å“å¯ä»¥å·¥ä½œåœ¨ç¶²çµ¡å±¤ï¼ŒJTAG—ICE接å£ã€UART通é“(DBGU)和內嵌實時跟蹤器æä¾›çš„功能使å—實時性é™åˆ¶çš„æ‡‰ç”¨æˆç‚ºå¯èƒ½ï¼Œé©åˆä½œç‚ºç¹¼é›»ä¿è·è£ç½®å–®ç‰‡æ©Ÿè§£æ±ºæ–¹æ¡ˆçš„硬件平臺。
1.2åµŒå…¥å¼æ“作系統
åµŒå…¥å¼æ“ä½œç³»çµ±é¸æ“‡æ¤μC/OS-Ⅱ。早期這個系統å«åšμC/OS-Ⅱ,是1992年編寫的嵌入å¼å¤šä»»å‹™å¯¦æ™‚æ“作系統,åŽç¶“éŽä¿®æ”¹ï¼Œ1999æ‰æŽ¨å‡ºäº†μC/OS-Ⅱ,它符åˆRTCADO-178B標準的èªè‰ï¼Œæœ‰è¶³å¤ 的穩定性和安全性。μC/OS-Ⅱ是用C語言和匯編語言編寫的。其ä¸çµ•大部分代碼都是用Cèªžè¨€ç·¨å¯«çš„ï¼Œåªæœ‰æ¥µå°‘部分與處ç†å™¨ç›¸é—œçš„代碼是用匯編語言編寫的,åªè¦ç¨åŠ ä¿®æ”¹å°±å¯ä»¥æŠŠå®ƒç§»æ¤åˆ°å„類的嵌入å¼è™•ç†å™¨ä¸Šï¼Œå› æ¤å¯é¸æ“‡ä½œç‚ºç¹¼é›»ä¿è·è£ç½®çš„軟件開發平臺。
2ä¿è·è£ç½®çš„硬件系統è¨è¨ˆ
微機ä¿è·è£ç½®å°‡å¾…ä¿è·ç³»çµ±é€ä¾†çš„é›»æµã€é›»å£“信號,經電æµã€é›»å£“互感器變æ›åŽç”¢ç”Ÿä½Žé›»å£“信號é€å…¥ä¸»æ¨¡æ¿ã€‚主模æ¿å…§çš„AT91RM9200é‹è¡Œç‰‡å…§çš„ä¿è·è»Ÿä»¶ï¼Œé€²è¡Œä¿¡è™Ÿé‡‡æ¨£ï¼Œå®Œæˆå„種數值é‹ç®—ã€åˆ†æžåŠè™•ç†ï¼Œå¾žè€Œç¢ºå®šå¾…ä¿è·ç³»çµ±çš„é‹è¡Œç‹€æ…‹ã€‚如有故障,則由處ç†å™¨ç¶“模æ¿ç™¼å‡ºè·³é–˜å‹•作信號,以ä¿è·ç³»çµ±ã€‚åŒæ™‚通éŽå„種通信方å¼å°‡ä¿è·å‹•作信æ¯é€å…¥ç®¡ç†æ¨¡æ¿å’Œä¸Šä½æ©Ÿï¼Œè¨˜éŒ„å’Œä¿å˜æ•¸æ“šå¹¶å ±è¦ã€‚硬件系統采用模塊化è¨è¨ˆï¼Œå¯åˆ†ç‚ºé›»æµäº’感器/電壓互感器模塊ã€A/D轉æ›å–®å…ƒã€é–‹å…¥/開出單元ã€äººæ©Ÿäº¤äº’單元ã€å˜å„²å™¨å–®å…ƒã€å°å¤–通信單元åŠé›»æºæ¨¡å¡Šç‰ï¼Œç¡¬ä»¶ä¸»é«”çµæ§‹å¦‚圖1所示。
圖1ç¡¬ä»¶ä¸»é«”çµæ§‹åœ–
2.1A/D轉æ›å–®å…ƒ
A/Dè½‰æ›æ˜¯å¾®æ©Ÿä¿è·çš„é—œéµåŠŸèƒ½ï¼Œé‡‡æ¨£èŠ¯ç‰‡é¸ç”¨AD7329。該芯片是一款真æ£é›™æ¥µæ€§ã€8通é“ã€ä½ŽåŠŸè€—ã€å¸¶ç¬¦è™Ÿä½çš„12bitã€1MSPS轉æ›é€ŸçއADC,輸入電壓范åœé”±10Vï¼Œå› æ¤å¯ä»¥å°‡è¼¸å…¥å™ªè²çš„影響é™åˆ°æœ€ä½Žï¼ŒåŒæ™‚æä¾›å¾ˆé«˜çš„ç›´æµå’Œäº¤æµé˜»æŠ—。
2.2å˜å„²å™¨å–®å…ƒ
由于移æ¤å¯¦æ™‚æ“作系統的需è¦ï¼Œæœ¬ç³»çµ±é‡‡ç”¨å…©ç‰‡å®¹é‡è¼ƒå¤§çš„SDRAM(IS42S16160B),æ¯ç‰‡32船,構æˆ32ä½çš„é«˜é€Ÿæ•¸æ“šç¸½ç·šï¼Œç”¨äºŽå˜æ”¾ç¨‹åºä»£ç¢¼å’Œå„種數據。采用一片32肥的NORFLASH(TE28F256J3C),用于固化æ“ä½œç³»çµ±ã€æ‡‰ç”¨ç¨‹åºä»£ç¢¼ã€æ“作éŽç¨‹ä¸çš„事件信æ¯å’ŒéŒ„波數據。å¦å¤–,采用一片32KBçš„E2PROMç”¨äºŽå˜æ”¾éœ€è¦ç¶“常讀寫的ä¿è·å®šå€¼ã€‚
2.3通信單元
考慮到電力系統ä¸å¤§æ•¸æ“šé‡å’Œå¯¦æ™‚數據傳輸的需è¦ï¼Œæ ¹æ“šAT91RM9200微處ç†å™¨çš„特點,本系統è¨è¨ˆäº†CANã€ä»¥å¤ªç¶²ã€RS232/485ã€å…‰çº–ã€USB。CAN控制器采用完全支æŒCAN總線V2.0Aå’ŒV2.0B技術è¦èŒƒï¼Œé€šä¿¡é€ŸçŽ‡ç‚º1Mb/sã€SPI接å£çš„MCP2510??紤]到光纖傳輸è·é›¢é ã€é »å¸¶å¯¬ã€ç™¼å°„天線å°ã€ä¿å¯†æ€§å¥½åпЗ電ç£å¹²æ“¾ç‰å„ªé»žï¼Œå°‡å…‰çº–和以太網通信çµåˆèµ·ä¾†ï¼Œå……分發æ®äºŒè€…的優越性,å¯å¤§å¤§æé«˜ç³»çµ±çš„æ‡‰ç”¨èŒƒåœå’Œå¯é 性。系統采用IPll3A作為以太網至光纖收發器,IPll3A是二端å£(包括TP端å£å’ŒFX端å£)10/100Mbps以太網集æˆäº¤æ›å™¨ï¼Œç”±ä¸€å€‹äºŒç«¯å£æŽ§åˆ¶å™¨å’Œä¸€å€‹ä»¥å¤ªç¶²å¿«é€Ÿæ”¶ç™¼å™¨çµ„æˆ;éµå®ˆIEEE802.3xè¦å‰‡ã€‚
2.4其它相關單元
開入回路和開出回路å‡ç”±å¿«é€Ÿå…‰é›»éš”離芯片和é‚輯編碼電路組æˆï¼Œå¢žåŠ äº†é›»è·¯çš„æŠ—å¹²æ“¾æ€§èƒ½ã€‚ç”¨äºŽäººæ©Ÿäº¤äº’çš„LcD,采用128×64的點陣液晶顯示å±ï¼Œç›´æŽ¥ä½¿ç”¨PIOå£é€²è¡ŒæŽ§åˆ¶ï¼Œéµç›¤é‡‡ç”¨3×3çš„éµç›¤é›»è·¯ï¼Œé€šéŽéµç›¤æŸ¥çœ‹ç³»çµ±åƒæ•¸å’Œä¿®æ”¹å„ç¨®å®šå€¼åƒæ•¸ã€‚系統å„è£ç½®çš„ä¿è·ã€ç›£æŽ§ã€äº‹ä»¶é †åºè¨˜éŒ„(SOE)ã€æ•…障錄波ç‰åŠŸèƒ½å°æ™‚é–“ç²¾åº¦å’ŒåŒæ¥æ€§æœ‰è¼ƒé«˜è¦æ±‚,GPSå¯ä»¥æä¾›ä¸€å€‹ç²¾ç¢ºçš„æ™‚間忍™H1,本系統采用GPSçš„B碼授時,GPS系統接å—衛星時間信號,輸出IRIG—B時間碼系列,è¨å‚™é€šéŽç¸½ç·šå°æ™‚é–“é€²è¡ŒåŒæ¥ã€‚
3軟件系統è¨è¨ˆ
3.1傳統的å‰åŽè‡ºç³»çµ±å’Œå¯¦æ™‚多任務系統的比較
3.1.1å‰åŽè‡ºç³»çµ±
在å‰åŽè‡ºç³»çµ±ä¸ï¼Œæ‡‰ç”¨ç¨‹åºç”±åŽè‡ºé‹è¡Œï¼Œä¸€èˆ¬æ˜¯ä¸€å€‹ç„¡é™å¾ªç’°ï¼Œå¾ªç’°ä¸èª¿ç”¨ç›¸æ‡‰çš„函數(å程åº)完æˆç›¸æ‡‰çš„æ“ä½œ(稱為åŽè‡ºè¡Œç‚ºæˆ–任務級);ç”¨ä¸æ–·ä¾†è™•ç†éš¨æ©Ÿäº‹ä»¶(稱為å‰è‡ºè¡Œç‚ºæˆ–䏿–·ç´š),如圖2所示。
圖2傳統微機ä¿è·ç¨‹åºæ©Ÿåˆ¶é€™ç¨®ç¨‹åºè¦æ¨¡è¼ƒå°ã€åŠŸèƒ½å–®ä¸€ã€æ™ºèƒ½åŒ–程度低,而且多是采用匯編語言編寫的線性程åºã€‚它雖然具有代碼精煉,æŸäº›é—œéµæ“作執行效率高的優點,但是延長了編程時間,難以ä¿è‰ç³»çµ±æ‰€æœ‰ä»»å‹™å°å¯¦æ™‚æ€§çš„è¦æ±‚。æŸå€‹ä»»å‹™çš„éŸ¿æ‡‰æ™‚é–“å–æ±ºäºŽåŽè‡ºå¾ªç’°åŸ·è¡Œçš„æ™‚間。循環éŽç¨‹ä¸ï¼Œç¨‹åºéœ€è¦æ ¹æ“šä¸åŒçš„狀態和方å¼(䏿–·æœå‹™åç¨‹åºæˆ–用戶的è¨ç½®å¯èƒ½æ”¹è®Šé€™äº›ç‹€æ…‹å’Œé‹è¡Œæ–¹å¼),決定程åºçš„èµ°å‘ï¼Œæ‰€ä»¥æ¯æ¬¡å¾ªç’°çš„執行時間ä¸åŒã€‚æŸä¸€ä»»å‹™çš„真æ£éŸ¿æ‡‰è¦ç‰åˆ°å¾ªç’°é †åºåŸ·è¡Œå®Œå‰é¢æ‰€æœ‰çš„任務之åŽï¼Œæ—¢ä¸åŠæ™‚,時間也ä¸ç¢ºå®šã€‚åŒæ™‚,程åºçš„å¯è®€æ€§å¾ˆå·®ï¼Œèª¿è©¦å›°é›£ï¼Œç¶è·ä¹Ÿæ¯”較困難。
3.1.2實時多任務系統
å°äºŽä¸€å€‹å¾©é›œçš„嵌入å¼å¯¦æ™‚ç³»çµ±è€Œè¨€ï¼Œç•¶é‡‡ç”¨ä¸æ–·è™•ç†ç¨‹åºå’Œä¸€å€‹åŽè‡ºä¸»ç¨‹åºè»Ÿä»¶çµæ§‹é›£ä»¥å¯¦æ™‚ã€æº–確ã€å¯é 地完æˆä»»å‹™æ™‚,或å˜åœ¨ä¸€äº›äº’ä¸ç›¸é—œçš„éŽç¨‹éœ€è¦åœ¨ä¸€å€‹è¨ˆç®—機ä¸åŒæ™‚è™•ç†æ™‚,就需è¦é‡‡ç”¨å¯¦æ™‚å¤šä»»å‹™ç³»çµ±ã€‚éš¨è‘—æ‡‰ç”¨çš„å¾©é›œåŒ–ï¼Œä¸€å€‹åµŒå…¥å¼æŽ§åˆ¶ç³»çµ±å¯èƒ½è¦åŒæ™‚控制或監視很多外è¨ï¼Œæœ‰åš´æ ¼çš„å¯¦æ™‚éŸ¿æ‡‰è¦æ±‚,需è¦è™•ç†ä»»å‹™æ¯”較多,å„個任務之間有多種信æ¯éœ€è¦å¯¦æ™‚傳éžï¼Œå¦‚æžœä»é‡‡ç”¨åŽŸä¾†çš„ç¨‹åºè¨è¨ˆæ–¹æ³•å°‡å˜åœ¨å…©å€‹å•é¡Œï¼šä¸€æ˜¯ä¸æ–·å¯èƒ½å¾—ä¸åˆ°åŠæ™‚éŸ¿æ‡‰ï¼Œè™•ç†æ™‚é–“éŽé•·ï¼Œé€™å°å¯¦æ™‚æŽ§åˆ¶å ´åˆæ˜¯ä¸å…許的,å°äºŽç¶²çµ¡é€šä¿¡è€Œè¨€å‰‡æœƒé™ä½Žç³»çµ±æ•´é«”çš„ä¿¡æ¯æµé‡;二是系統任務多è¦è€ƒæ…®å„種å¯èƒ½å‡ºç¾çš„æƒ…æ³(å°¤å…¶åœ¨ä»»å‹™ä½¿ç”¨å…±äº«è³‡æºæ™‚,如果任務調度ä¸ç•¶å°±å¯èƒ½å°Žè‡´ç³»çµ±æ»éŽ–ï¼Œå¾žè€Œé™ä½Žè»Ÿä»¶å¯é 性,導致程åºç·¨å¯«ä»»å‹™é‡æˆå€å¢žåŠ )。為é™ä½Žç³»çµ±çš„復雜性,ä¿è‰ç³»çµ±çš„實時性,å¯ç¶è·æ€§æ˜¯å¿…ä¸å¯å°‘的。
實時多任務系統的實ç¾å¿…é ˆæœ‰å¯¦æ™‚å¤šä»»å‹™æ“作系統的支æŒã€‚æ“作系統主è¦å®Œæˆä»»å‹™åˆ‡æ›ã€ä»»å‹™èª¿åº¦ã€ä»»å‹™é–“的通信ã€åŒæ¥ã€äº’æ–¥ã€å¯¦æ™‚時é˜ç®¡ç†ä»¥åŠä¸æ–·ç®¡ç†ã€‚實時多任務系統實際上是由多個任務ã€å¤šå€‹ä¸æ–·è™•ç†éŽç¨‹å’Œå¯¦æ™‚æ“作系統組æˆçš„æœ‰æ©Ÿæ•´é«”。æ¯å€‹ä»»å‹™æ˜¯é †åºåŸ·è¡Œçš„,并以并行性的方å¼é€šéŽæ“作系統完æˆï¼Œä»»å‹™é–“çš„ç›¸äº’é€šä¿¡å’ŒåŒæ¥éœ€è¦æ“作系統的支æŒã€‚使用實時多任務系統的微機ä¿è·ç¨‹åºæ©Ÿåˆ¶å¦‚圖3所示。
圖3使用RTOS的微機ä¿è·ç¨‹åºæ©Ÿåˆ¶
繼電ä¿è·å°å¯¦æ™‚æ€§è¦æ±‚較高,任務較多,故本文æå‡ºåŸºäºŽARM9å’ŒμC/OS-Ⅱ的微機ä¿è·æ ¸å¿ƒå¹³è‡ºã€‚
3.2μC/OS-Ⅱ性能分æžåŠå…¶åœ¨AT91RM9200ä¸çš„ç§»æ¤
3.2.1μC/OS-Ⅱ性能分æž
實時系統主è¦é€šéŽä¸‰å€‹æ€§èƒ½æŒ‡æ¨™ä¾†è¡¡é‡ç³»çµ±çš„實時性,å³éŸ¿æ‡‰æ™‚é–“(ResponseTime)ã€ç”Ÿå˜æ™‚é–“(SurvivalTime)å’Œåžåé‡(Throughput):響應時間:是實時系統從è˜åˆ¥å‡ºä¸€å€‹å¤–部事件到åšå‡ºéŸ¿æ‡‰çš„æ™‚é–“;
ç”Ÿå˜æ™‚間:是數據的有效ç‰å¾…æ™‚é–“ï¼Œæ•¸æ“šåªæœ‰åœ¨é€™æ®µæ™‚é–“å…§æ‰æ˜¯æœ‰æ•ˆçš„;
åžåé‡ï¼šæ˜¯åœ¨çµ¦å®šçš„æ™‚é–“å…§ç³»çµ±èƒ½å¤ è™•ç†çš„事件總數,åžåé‡é€šå¸¸æ¯”å¹³å‡éŸ¿æ‡‰æ™‚間的倒數è¦å°ä¸€é»žã€‚
å…¶ä¸éŸ¿æ‡‰æ™‚é–“æ˜¯ç³»çµ±å¯¦æ™‚æ€§æœ€ç›´è§€ã€æœ€é‡è¦çš„æŒ‡æ¨™ã€‚è€Œç³»çµ±éŸ¿æ‡‰æ™‚é–“èˆ‡ä»»å‹™åˆ‡æ›æ™‚é–“ã€ä¸æ–·å»¶é²å’Œèª¿åº¦å»¶é²éƒ½æœ‰é—œç³»ã€‚μC/OS-â…¡çš„ä¸æ–·è™•ç†ç¨‹åºä¸ä¸éœ€è¦é—œä¸æ–·ï¼Œå®ƒçš„é—œä¸æ–·ä¸»è¦ç™¼ç”Ÿåœ¨ä¸€äº›åŽŸåæ“ä½œå’Œä»£ç¢¼è‡¨ç•Œå€ä¿è·çš„æ™‚候,并且都éžå¸¸çŸï¼Œå› æ¤μC/OS-â…¡çš„ä¸æ–·å»¶é²å¾ˆçŸã€‚
μC/OS-Ⅱ是基于優先級的“å¯å‰å¥ª”å¼å…§æ ¸ï¼Œè€Œä¸”å…§æ ¸çš„èª¿åº¦ç®—æ³•éžå¸¸ç°¡å–®ï¼Œå› æ¤μC/OS-â…¡èª¿åº¦å»¶é²æ¯”較çŸä¸”å¯ä»¥é æ¸¬é©æ‡‰å¯¦æ™‚æ‡‰ç”¨çš„è¦æ±‚。
é—œäºŽä¸Šä¸‹æ–‡åˆ‡æ›æ™‚間,由于μC/OS-Ⅱ的任務都有單ç¨çš„å †æ£§ï¼Œå› è€Œä»»å‹™çš„åˆ‡æ›æ“作éžå¸¸ç°¡å–®ï¼Œç”±10多æ¢CPU指令就å¯å®Œæˆï¼Œå› æ¤μC/OS-Ⅱ任務切æ›ç”¢ç”Ÿçš„å»¶é²å¾ˆå°ä¸”是å¯ä»¥é 測的。
3.2.2μC/OS-Ⅱ在AT91RM9200ä¸çš„ç§»æ¤å¯¦ç¾
μC/OS-â…¡çš„ç§»æ¤æ¢ä»¶æ˜¯ï¼šè©²è™•ç†å™¨æœ‰å †æ£§ï¼Œæœ‰CPU內部寄å˜å™¨å…¥æ£§ã€å‡ºæ£§æŒ‡ä»¤;使用的Cç·¨è¯å™¨æ”¯æŒå…§åµŒåŒ¯ç·¨(inlineasseInbly)或者該Cèªžè¨€å¯æ“´å±•,å¯é€£æŽ¥åŒ¯ç·¨æ¨¡å¡Šï¼Œä½¿å¾—é—œä¸æ–·ã€é–‹ä¸æ–·èƒ½åœ¨C語言程åºä¸å¯¦ç¾ã€‚
AT91RM9200符åˆå…¶ç§»æ¤æ¢ä»¶ã€‚μC/OS-Ⅱ的移æ¤é›†ä¸åœ¨3å€‹æ–‡ä»¶ï¼Œé æ–‡ä»¶os_cpu.h,匯編文件os_cup_a.s,C代碼文件os_cpu_c.c。其ä¸os_cpu.h主è¦åŒ…å«ç·¨è¯å™¨ç›¸é—œçš„æ•¸æ“šé¡žåž‹çš„定義ã€å †æ£§é¡žåž‹çš„定義以åŠå¹¾å€‹å®å®šç¾©å’Œå‡½æ•¸èªªæ˜Žã€‚而os_cpu_c.cä¸å‰‡åŒ…å«èˆ‡ç§»æ¤æœ‰é—œçš„cå‡½æ•¸ï¼ŒåŒ…æ‹¬å †æ£§çš„åˆå§‹åŒ–函數和一些鉤å(hook)函數的實ç¾ã€‚os_cpu-a.sä¸å‰‡åŒ…å«èˆ‡ç§»æ¤æœ‰é—œçš„匯編語言函數,包括開/é—œä¸æ–·ã€ä¸Šä¸‹æ–‡åˆ‡æ›ã€æ™‚é˜ä¸æ–·æœå‹™ç¨‹åºç‰ã€‚ç§»æ¤ä¸é—œéµçš„功能模塊實ç¾å¦‚以下所述。
ç§»æ¤å·¥ä½œåŒ…括以下幾個內容:①用繃efineè¨ç½®ä¸€å€‹å¸¸é‡çš„值(OS-CPU.H);â‘¡è²æ˜Žæ•¸æ“šé¡žåž‹(OS-CPU.H);③用#defineè²æ˜Žä¸‰å€‹å®(OS.CPU.H);④用c語言編寫å…個簡單的函數(OS—CPIJ-C.C);⑤編寫四個匯編語言函數(OS-CPU_ASM)。
3.3è»Ÿä»¶çµæ§‹è¨è¨ˆ
在軟件è¨è¨ˆæ™‚,盡é‡ä½¿è»Ÿä»¶å’Œç¡¬ä»¶è„«é›¢ï¼Œæ”¹è®Šå‚³çµ±çš„嵌入å¼è»Ÿä»¶éŽå¤šä¾è³´ç¡¬ä»¶çš„æ¨¡å¼ã€‚é‡å°ä¿è·è£ç½®çš„實際情æ³ï¼ŒæŠŠæ•´å€‹ç³»çµ±åˆ†æˆä¿è·ã€A/D采樣ã€è‡ªæª¢ã€é¡¯ç¤ºã€é€šä¿¡ç‰å¹¾å€‹ä»»å‹™ï¼ŒåŠƒåˆ†åŽŸå‰‡æ˜¯åœ¨è€ƒæ…®ç³»çµ±å¯¦æ™‚æ€§å’Œè»Ÿä»¶æ•ˆçŽ‡çš„å‰æä¸‹ç›¡é‡æ¸›å°‘任務間的耦åˆï¼Œä½¿åŠŸèƒ½æ¸…æ™°ã€‚ä»»å‹™ç¢ºå®šä»¥åŽï¼Œè³¦äºˆæ¯å€‹ä»»å‹™å”¯ä¸€çš„IDè™Ÿï¼Œå¹¶æŒ‰ç…§å¯¦æ™‚æ€§è¦æ±‚å°å„個任務指定i其優先級,本è¨è¨ˆä¸æŠŠä¿è·ä»»å‹™è¨ç½®æˆè¼ƒé«˜å„ªå…ˆç´šã€‚進入é‹è¡Œç‹€æ…‹åŽï¼Œåœ¨ä¸»ä»»å‹™ä¸å•Ÿå‹•其他任務,例如顯示ã€A/D采樣ã€é€šä¿¡ç‰ã€‚在這些任務ä¸åˆå¯å•Ÿå‹•å¦å¤–的任務。下é¢çµ¦å‡ºäº†ä¸»ç¨‹åºçš„任務創建和資æºåˆ†é…的部分代碼。
è¨è¨ˆä¸çš„任務調度機制采用優先級調度模å¼ï¼šCPU被分é…給最高優先級任務,如果幾個任務優先級相åŒï¼ŒCPU就被分é…給最先進入就緒隊列的任務。如果一個任務在執行éŽç¨‹ä¸ï¼Œå¦å¤–一個優先級更高的任務進入就緒狀態,則原來æ£åœ¨é€²è¡Œçš„任務進入就緒狀態,新任務進入é‹è¡Œç‹€æ…‹ã€‚
μC/OS-â…¡æœ€å¤šå¯æ”¯æŒ56個任務。實ç¾å„種功能的ä¿è·ç¨‹åºæŒ‰ç…§åŠŸèƒ½åŠƒåˆ†æˆäº†ä¸€å€‹å€‹çš„任務,æ¯ä¸€ç¨®ä»»å‹™å¯¦ç¾ä¸€ç¨®åŠŸèƒ½ï¼Œä»»å‹™ä¹‹é–“ç›¸äº’ç¨ç«‹ï¼Œåªé€šéŽå¯¦æ™‚æ“作系統R1DS(Real—TimeOperatingSystem)機制交æ›ä¿¡æ¯ã€‚é€™å¾žæ ¹æœ¬ä¸Šä¿è‰äº†è»Ÿä»¶çš„å¯é 性和實時性。
4çµæŸèªž
隨著ARM處ç†å™¨æŠ€è¡“çš„ä¸æ–·ç™¼å±•å’Œæ‡‰ç”¨çš„ä¸æ–·æŽ¨å»£ï¼ŒARM處ç†å™¨åœ¨é›»åŠ›ç³»çµ±ä¸å¿…將得到更廣泛的應用。而嵌入å¼å¯¦æ™‚æ“作系統RTOS在微機ä¿è·çš„æ‡‰ç”¨ï¼Œç‚ºå¯¦ç¾å¾©é›œçš„ä¿è·åŠŸèƒ½æä¾›äº†å¯èƒ½ã€‚æ–‡ä¸è¨Žè«–的基于嵌入å¼AT9lRM9200微處ç†å™¨çš„微機ä¿è·è£ç½®å·²å®Œæˆç¾å ´èª¿è©¦ï¼Œåˆæ¥è©¦é‹è¡Œæ•ˆæžœè¡¨æ˜Žï¼Œè©²è¨è¨ˆæ˜¯æˆåŠŸçš„ï¼Œå—到用戶方的èªå¯ï¼Œæœ‰æœ›å¾—到大力推廣。
標簽:
上一篇:海通é”HTD-6/7000系列無線模...
下一篇:微能WIN-V63çŸ¢é‡æŽ§åˆ¶è®Šé »å™¨åœ¨...
ä¸åœ‹å‚³å‹•網版權與å…è²¬è²æ˜Žï¼šå‡¡æœ¬ç¶²æ³¨æ˜Ž[來æºï¼šä¸åœ‹å‚³å‹•ç¶²]的所有文å—ã€åœ–片ã€éŸ³è¦–å’Œè¦–é »æ–‡ä»¶ï¼Œç‰ˆæ¬Šå‡ç‚ºä¸åœ‹å‚³å‹•ç¶²(www.hysjfh.com)ç¨å®¶æ‰€æœ‰ã€‚如需轉載請與0755-82949061è¯ç³»ã€‚任何媒體ã€ç¶²ç«™æˆ–å€‹äººè½‰è¼‰ä½¿ç”¨æ™‚é ˆæ³¨æ˜Žä¾†æºâ€œä¸åœ‹å‚³å‹•ç¶²â€ï¼Œé•å者本網將追究其法律責任。
本網轉載并注明其他來æºçš„稿件,å‡ä¾†è‡ªäº’è¯ç¶²æˆ–æ¥å…§æŠ•稿人士,版權屬于原版權人。轉載請ä¿ç•™ç¨¿ä»¶ä¾†æºåŠä½œè€…ï¼Œç¦æ¢æ“…自篡改,é•è€…è‡ªè² ç‰ˆæ¬Šæ³•å¾‹è²¬ä»»ã€‚
相關資訊