西門子三明PLC模塊總代理
μC/OS-II核心代碼很小,程序開發(fā)人員要把它移植到自己的目標(biāo)板中只需做少量的工作。圖1是μC/OS-II硬件和軟件的體系結(jié)構(gòu)。 雖然μC/OS-II大部分源代碼是用C語言寫的,但是完成和處理器一些有關(guān)的代碼時,還是必須要用匯編語言來實(shí)現(xiàn)的。寄存器的讀、寫只能通過匯編語言的存儲和加載指令來實(shí)現(xiàn)。要使μC/OS-II能夠正常工作, 處理器必須滿足以下要求: ?、?處理器的C編譯器能產(chǎn)生可重入代碼; ?、?用C語言可以打開和關(guān)閉中斷; ?、?處理器支持中斷,并且能夠產(chǎn)生定時中斷(通常在10~100Hz之間); ?、?處理器能夠支持容納一定量數(shù)據(jù)的硬件堆棧; ?、?處理器有將堆棧指針和其它寄存器讀出和存儲到堆?;騼?nèi)存中的指令。 μC/OS-II的移植包括以下幾個部分。 (1)設(shè)置與編譯器有關(guān)的代碼[OS_CPU.H]
{ mrs r0, CPSR; stmfd sp!, ; orr r0, r0, #NOINT; msr CPSR_c, r0; } #define OS_EXIT_CRITICAL() IRQFIQRE #define IRQFIQRE __asm { ldmfd sp!, ; msr CPSR_c, r0; } #Endif (2)編寫4個匯編語言函數(shù)[OS_CPU_A.S] μC/OS-II的移植實(shí)例要求用戶編寫4個簡單的匯編語言函數(shù): OSStartHighRdy() OSCtxSw() [NextPage] OSTaskDelHook() OSTaskSwHook() OSTaskStatHook() OSTaskTickHook() 這6個函數(shù)只對OSTaskStkInit()編寫代碼,后5個函數(shù)必須聲明,但是內(nèi)部并沒有代碼。OSTaskCreate()和OSTaskCreateExt()通過調(diào)用OSTaskStkInit()來初始化任務(wù)的堆棧結(jié)構(gòu)。這個函數(shù)的移植代碼,可參考文獻(xiàn)[3]。 3 測試、編寫驅(qū)動和應(yīng)用程序 做完以上工作以后,就要測試移植的是否正確。測試一個μC/OS-II實(shí)時內(nèi)核并不復(fù)雜,就是讓這個實(shí)時內(nèi)核在自己的目標(biāo)板上跑起來。開始時,可以運(yùn)行一些簡單的任務(wù)和時鐘節(jié)拍中斷任務(wù),如果調(diào)試成功就可以在上面添加應(yīng)用程序。 μC/OS-II移植完成以后,就要在這個實(shí)時內(nèi)核之上編寫接口驅(qū)動程序。由于嵌入式操作系統(tǒng)體積更小,功能更強(qiáng),且快速、穩(wěn)定,更具有針對性,因此不像其它操作系統(tǒng)那樣,對系統(tǒng)的所有接口設(shè)備都需要驅(qū)動、管理、調(diào)度和監(jiān)視。由于嵌入式產(chǎn)品是針對特殊的用途而設(shè)計(jì)的,有很強(qiáng)的專一性,因此,在編寫驅(qū)動程序時內(nèi)容更精簡,更具有穩(wěn)定性,編寫出的驅(qū)動模塊更小。編寫驅(qū)動程序應(yīng)完成以下基本功能:①對設(shè)備初始化和釋放;②把數(shù)據(jù)從內(nèi)核傳送到硬件和從硬件讀取數(shù)據(jù);③讀取應(yīng)用程序傳送給設(shè)備文件的數(shù)據(jù)和回送應(yīng)用程序請求的數(shù)據(jù);④檢測和處理設(shè)備出現(xiàn)的錯誤。實(shí)現(xiàn)了以上功能以后,一個嵌入式操作系統(tǒng)就基本構(gòu)成了。 完成了μC/OS-II的移植和驅(qū)動程序的編寫以后,利用操作系統(tǒng)提供的API函數(shù)編寫應(yīng)用程序,調(diào)用μC/OS-II中與應(yīng)用程序相關(guān)的系統(tǒng)服務(wù)。調(diào)試通過后,固化到目標(biāo)板上,這個嵌入式應(yīng)用軟件就完成了 西門子CP 5611 A2 可在不同的軟件包下進(jìn)行操作,并允許用戶通過 PROFI-BUS 和多點(diǎn)接口(MPI)執(zhí)行編程設(shè)備的功能和 PC 函數(shù)。 每臺編程器或PC上只能使用一個通訊處理器。 每個CP 只能使用一個相同的協(xié)議 (PROFIBUS DP, S7 通訊或者 FDL)。 下面的軟件包支持 CP 5611 A2: STEP 7 V3.2 及以上; CP 5611 A2 驅(qū)動程序在供貨 STEP 7 范圍之內(nèi) 。 SOFTNET-S7 V3.2 及以上 使用該軟件包,S7 編程接口 SOFTNET-DP V3.2 及以上 CP 5611 可用作帶這種軟件包的 Class 1 或 2 PROFIBUS DP主站。 SOFTNET DP V3.2 及以上 用于使用 CP 5611 作為 PROFIBUS DP 從站。 COM PROFIBUS V3.3 及以上; 使用本軟件包,CP 5611 A2 可用于PROFIBUS DP系統(tǒng)的調(diào)試或診斷(DP在線功能。) STEP 7-Micro/WIN V2.1 及以上; 用作 SIMATIC S7-200 的編程軟件的硬件基礎(chǔ)。 ProTool,ProTool/Pro; CP 5611 A2 可用作所有 SIMATIC 操作員面板,觸摸屏和文件顯示等組態(tài)工具的硬件基礎(chǔ) NCM PC; RS485總線連接器 用于將 PROFIBUS 節(jié)點(diǎn)連接到 PROFIBUS 總線電纜 安裝方便 FastConnect 插頭采用絕緣刺破連接技術(shù),可確保極短的組裝時間 集成端接電阻 (6ES7 972-0BA30-0XA0 中不具有) 通過帶 Sub-D 接口的連接器可以連接編程器,無需額外安裝網(wǎng)絡(luò)節(jié)點(diǎn) 用于 PROFIBUS 的 RS485 總線連接器,可用于連接 PROFIBUS 節(jié)點(diǎn)或 PROFIBUS 網(wǎng)絡(luò)部件到 PROFIBUS 總線電纜。 提供有各種類型的總線連接器,可優(yōu)化用于連接的設(shè)備:
|