TU848 3BSE042558R1
大量現(xiàn)貨,價格合理,當天打款,當天順風,即日到貨。
我們售出的產(chǎn)品都經(jīng)過專業(yè)的測試和認證,且質(zhì)保一年,15天內(nèi)包退換,滿意后付款!
Allen-Bradley(美國AB)系列產(chǎn)品》 Schneider(施耐德電氣)系列產(chǎn)品》 General electric(通用電氣)系列產(chǎn)品》 Westinghouse(美國西屋)系列產(chǎn)品》 SIEMENS(西門子系列產(chǎn)品)》 銷售ABB Robots. FANUC Robots、YASKAWA Robots、KUKA Robots、Mitsubishi Robots、OTC Robots、Panasonic Robots、MOTOMAN Robotsestinghouse(西屋): OVATION系統(tǒng)、WDPF系統(tǒng)、MAX1000系統(tǒng)備件Invensys Foxboro(福克斯波羅):I/A Series系統(tǒng),F(xiàn)BM(現(xiàn)場輸入/輸出模塊)順序控制、梯形邏輯控制、事故追憶處理、數(shù)模轉(zhuǎn)換、輸入/輸出信號處理、數(shù)據(jù)通信及處理等。 Invensys Triconex:冗余容錯控制系統(tǒng)、基于三重模件冗余結(jié)構(gòu)的zui現(xiàn)代化的容錯控制器。Siemens(西門子):Siemens MOORE, Siemens Simatic C1,Siemens數(shù)控系統(tǒng)等
※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※
★ 公司名:廈門莫格電氣自動化有限公司
★ :雷琳
★ :
★ (同號)
★
★ 業(yè)務
★ :
※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※
1.4消息隊列
消息隊列用消息控制塊(MCB)做為隊列首地址。任何進程、中斷處理函數(shù)和多個進程都可以等待消息。MCB的長度是2或4個字節(jié),消息可以認為是靈活性更大的信號量。提供的API函數(shù)如下:
AvrXSendMessage、AvrXIntSendMessage、AvrXRecvMessage、AvrXWai-sage、AvrXAckMessage、AvrXTesge和AvrXWait-MessageAck。
1.5單步運行支持
通過重新匯編內(nèi)核AVRX,可以允許和禁止單步運行的支持。單步運行可以通過編譯內(nèi)核庫時定義下面的變量:#define SIGNALSTEPSUPPORT。在能夠單步運行以前,進程必須先暫停。有兩種方法實現(xiàn):一是僅僅初始化進程但不使能;二是用目標進程的ID調(diào)用AvrXSuspend,一旦目標進程掛起,調(diào)試SPI就能使用了。提供的API函數(shù)有:AvrxStepNext和AvrXSin-gleStepNext。
1.6系統(tǒng)對象
AVRX是圍繞系統(tǒng)對象的概念而構(gòu)建的。系統(tǒng)對象包括一個鏈接和其后面的0個或者若干個字節(jié)的數(shù)據(jù)信號量。進程對象可以根據(jù)運行隊列和信號量排隊。計數(shù)器控制塊只能根據(jù)計數(shù)器隊列排隊。消息控制塊只能在消息隊列排隊。進程根據(jù)嵌入對象的信號量等待這些對象。進程堆棧中可用的SRAM是限制系統(tǒng)規(guī)模的主要因素,每個進程都需要至少10~35字節(jié)的空間來存儲進程上下文。提供的API函數(shù)如下:
AvrXSetObjectSama-phore、AvrXIntObjectSamaphore、AvrXResetObiectSama-phore、AvrXWaitObjectSamaphore、AvrXTestObjectSama-phore和AvrXInfTestObjectSamaphore。
1.7系統(tǒng)堆棧
AVRX需要足夠大的堆棧來處理所有可能的中斷嵌套。每次進入內(nèi)核將會把10~35字節(jié)壓進堆棧(標準上下文和返回地址),中斷處理可能壓進去更多。AVRX的API會臨時壓入2個以上的字節(jié)。GCC或者匯編代碼定義于SRAM的頂部,保證AVRX的堆棧在有效SRAM空間之內(nèi)是設計者的工作。
2 AVRX系統(tǒng)的應用
2.1 AVRX在不同型號AVR單片機上的移植
下面以6為例,介紹移植工作。
(1)編譯器的選擇
由于AVRX的編者是在GNU推出的AVR-GCC編譯器下編寫的,所以選用AVR-GCC編譯器可以大大提高AVRX在不同AVR單片機上的移植特性。
(2)重新編譯AVRX內(nèi)核
為了將應用程序成功編譯,需要重新編譯AVRX內(nèi)核,重新編譯包括下述步驟。
①重新修改AVRX源碼的Makefile文件,需要修改的幾處如下:
②重新修改AVRX源碼的serialio.S文件,即根據(jù)不同的單片機修改串口部分的寄存器定義。需要增添如下代碼:
③重新編譯內(nèi)核。具體做法是復制一個“命令提示符”到AVRX目錄下,運行“命令提示符”,鍵入“makegcc”命令后運行就完成了AVRX內(nèi)核的重新編譯,會生成很多的.o文件和avrx.a(chǎn)文件。這些文件在以后的應用程序中會使用。
至此就完成了AVRX在al6單片機上的內(nèi)核移植,接著就可以編寫應用程序了。
2.2在AVRX上編寫應用程序
這時候要用一個新的makefile文件,同時自己的程序可以不和AVRX的內(nèi)核在一個目錄,但是要指出依賴文件的明確路徑。makefile的框架可以采用Winavr的sam-ple文件夾下的makefile文件框架。這里的難點其實還是makefile文件的語法問題。下面介紹應用程序的makefile文件在實例中需要修改或增加的代碼:
3 系統(tǒng)測試
3.1 系統(tǒng)實時性測試
在實時系統(tǒng)中,實時系統(tǒng)的實時性表現(xiàn)在系統(tǒng)對外部事件的響應能力上。系統(tǒng)通過中斷來響應外部事件的發(fā)生,并且在用戶中斷程序中做的事要盡量少,把大部分工作留給任務去做,只是通過信號量或者消息機制來通知任務運行。Mega16的定時器2設為比較匹配輸出模式,在匹配時間到了之后產(chǎn)生一定周期脈沖輸出,并產(chǎn)生中斷。設置定時器1為計數(shù)模式來計數(shù)產(chǎn)生的脈沖輸出。通過定時器2的比較匹配中斷服務子程序來發(fā)信號量通知任務運行,并在中斷子程序中不開中斷,而在任務得到信號后開中斷,以實現(xiàn)中斷處理與任務運行的同步。任務中對一個全局變量計數(shù),以記錄任務執(zhí)行的次數(shù)。運行一段時間后,在設置的匹配時間里,任務的運行次數(shù)和定時器1的計數(shù)一樣,則系統(tǒng)在這段時間里是能*響應外部事件的。當定時器2的比較匹配時間設為大于23 μs時,2個計數(shù)是相等的;當小于23 μs時,定時器1計數(shù)值大于任務計數(shù)值,說明任務沒有*得到響應。這說明中斷的進入和返回即系統(tǒng)對外部時間的響應和處理時間為23 μs,遠遠大于其他操作系統(tǒng)在AVR單片機上移植后的響應時間。
3.2應用例程測試
這里只對源文件中的幾個例程*行簡單的編譯,然后去掉不必要的代碼,加入自己想測試的一些代碼,進行了定時器控制模塊、信號量和消息隊列以其簡單組合的測試,均在ga16上達到了預期的效果。
4 心得體會
①AVRX的源碼都是用匯編語言編寫的,相對來講代碼效率很高,但是由于沒有詳細的API介紹文檔,所以的入門方法就是先讀懂RTOS的源碼和例程,然后進行修改,再加上自己的代碼逐漸熟練應用。
②AVRX需要分配的堆棧為35個字節(jié)加上任務代碼需要的額外堆棧,具體的大小取決于每個進程用的本地變量個數(shù)。比較好的確定分配給任務堆棧大小的方法是:分配很大的堆棧(如70字節(jié)),運行一段應用程序后看堆棧到多深(因為GCC啟動時把所有內(nèi)存都清0了,這樣很容易看到)。不過,為了安全起見,用編譯器或仿真器在估計堆棧的頂端寫入幾個字節(jié)的0xFFFFF去驗證到底達到了多少字節(jié),
FSC Fujitsu Siemens D2164 D2164-A11 Sockel 775 Mainboar...
In Pentium Dual Core E2140 1.60 GHz 1600 MHz SLA3J S...
280 Watt Netzteil für FSC Fujitsu Siemens Esprimo E3500...
Raritan IPR-M1 Remote Access KVM Switch RJ45 VGA PS2 Se...
Aopen i865PEa-71F Mainboard 775 In 865PE ICH5 i865PE...
HP 361681-001 356023-002 BTX Mainboard In Sockel 775...
Dell Poweredge 2950 Backplane 4x SAS PWB H6171 Rev A00 ...
HP Proliant DL560 DC Power Konverter Modul Board 292223...
ASRock ConRoe1333-eSAT?A2 ConRoe1333 eSATA2 PCIe16x eSAT...
ECS 662/1066T-M2 Mainboard 775 SiS 662 964 DDR2 COM LPT...
Aopen 915mPL0B Mainboard 775 In 915 DDR COM LPT VGA ...
ASRock ALiveNF5-eSATA2?+ R3.0 ALiveNF5 eSATA2 PCIe LAN e...
FSC Z118D M/B A04 Sockel 478 Notebook Mainboard 1310A22...
Original Fujitsu SQU-809-F01 Notebook Akku 4400mAh 11.1...
Original Fujitsu Notebook Akku 4400mAh 11.1V für Amilo ...
Original Fujitsu Notebook Akku 4400mAh 11.1V für Amilo ...
FSC PCB M/B P55IMX Rev. C Notebook Mainboard Sockel 478...
ASRock P43R1600Twins P43R1600 Twins DDR3 & DDR2 SPDIF e...
10 Stück Delta AFB0812HH 80x80x25mm FAN Lüfter NEU
Dell Mainboard 0GW726 DVI 775 BTX Audio 5xUSB
In A46046-702 A46046 702 SCSI Backplane für SR1200 6...
SCSI Controller für FSC Primergy RX200 S26361-F3005-E1?0
In D23460-302 SAS Backplan 7200 IR M6 TR49 AL Neu
Mainboard Dell Optiplex 745 Ultra Small Form Factor
ICP GDT7123RN SCSI Raid Controller PCIX 64b AL Neu
IBM C76717-10X 26K9385 FC Expansion Card FL10 Neu
HannStar HSD141PX11-A 35,8cm Panel 71402818004 V18 NEU
M312L5628BT0-CA?2 S26361-F2550-L5?26 2GB DDR1 ECC Z003Neu
ATI FireMV2200 PCI64ATX PCI 64 MB DVI + Zubeh?r (640)
Chenbro 80H103124-005 SATA Server Backplane TR34 AL Neu
ASRock Wolfdale1333-GL?AN/M2 Wolfdale1333 GLAN M2 VGA LA...
Foxconn P9657AA-8EKRS2H P9657A01-8EKRS2?H In P965 Chi...
Asrock K7NF2-RAID K7NF2 RAID AGP 5x PCI Sound LAN USB 2...
Delta DPS-400MB-1 A 400W 39Y7296 39Y7297 24p ATX Z215
Mitac 8224D Notebook Display LCD 35,8 cm (14.1") AU Opt...
Asus M2R-FVM /S VGA PCIe16 PCIe1 2xPCI SATA SPDIF
ASRock P43ME mATX Mainboard In Sockel 775 PCIe 2x PC...
WD2500YS WD2500YS-01SHB1 HBCHNTJAHN 250GB 12JUN07 Y256
WD2500YS WD2500YS-01SHB1 DSBHYTJAHN 250GB 26OCT07 Y261
XFX Geforce 9800 GT Grafikkarte PCIe 512MB 256-bit Dual...
WD2500YS WD2500YS-01SHB1 DSBHYTJAHN 250GB 19JAN08 Y820
WD2500YS WD2500YS-01SHB1 DSBANTJCHN 250GB 19APR07 Y255
WD2500YS WD2500YS-01SHB1 HSBHYTJAHN 250GB 07NOV07 Y251
Asrock ConRoe1333-GLAN ConRoe1333 GLAN PCIE PCI 775 Mai...
FSC Fujitsu Siemens I865G D1567-A22 D1567 478 VGA PCI A...
HP 381028-001 381028 376332-002 Mainboard für DC7600 PC...
Asus P4PE Rev 1.03 Mainboard Sockel 478 AGP 6x PCI Soun...
ASRock ConRoe945PL-GLA?N ConRoe945PL GLAN PCIe Sound GLA...
MSI K8MM3-IL MS-7181 MS7181 MS 7181 VER2 AGP 3xPCI Soun...
HP PS-6241-4HP 437352-001 437798-001 240W 240 Watt Netz...
FSC Fujitsu Siemens D2990-A11 GS4 D2990 A11 Mainboard I...
In 750615-403 750615 403 SCSI Backplane 68p 68-pol 8...
In PRO 100 S Dual Port Server Adapter E-G021-01-1594.?..
Asrock Conroe945G-DVI Conroe945G DVI PCIe Sound SATA II...
Seagate ST3250310AS 250 GB 9EU132-622 09167 SU Y519
Gigabyte GA-8I945PL-G PCIE PCI LAN Sound RAID
Asus P5KPL-VM PCIe1 PCIe16 2xPCI VGA Sound SATA
In Pentium Dual-Core E2180 Dual Core CPU 2.0GHz 1MB ...
ASUS P5G-TVM /S P5G TVM S 1xPCIe 3xPCI SATA IDE VGA LAN...
Asus P8H67-M LX P8H67 M Sockel 1155 PCI PCIe SATA USB V...
Delta DPS-600MB A DPS 600MB 600 Watt 600W Netzteil 80mm...