999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

工業自動化儀表嵌入式軟件系統構建分析

2021-11-18 22:54:51楊覺先
科技信息·學術版 2021年26期

楊覺先

摘要:工業自動化儀表是指在工業制造中,用于顯示工藝參數或者實現對工藝流程的環境控制的儀表裝置。只有在工業制造中對工藝過程的全貌進行精準控制把握,才能保證生產產品的質量。基于此,本文主要是對工業自動化儀表的嵌入式軟件系統架構方法進行分析,希望通過此文給工業儀器儀表的嵌入式軟件開發帶來一些啟示幫助。

關鍵詞:工業自動化儀表;嵌入式軟件;軟件系統構建

前言:

嵌入式軟件系統是指以嵌入式的方式集成在硬件中的操作系統,對軟件進行開發的開發軟件工具,目前被廣泛應用在控制、監視與輔助生產器械設備上,它通常情況下由四部分組成,分別是:嵌入式微處理器;硬件設備;嵌入式操作系統和用戶程序。在嵌入式軟件系統的幫助下,我國工業制造領域突破了一個又一個技術難題,制造精度水平與制造質量都有了明顯提高。因此,深入探究工業自動化儀表的嵌入式軟件系統構建方法是具有廣闊市場應用價值的。

1.軟件復用構建

軟件復用技術是工業自動化儀表嵌入式系統中最常使用的技術,是指在構建新的軟件系統時,對現有的軟件進行重復利用。工業自動化儀表的控制、監視與輔助功能都是在用戶程序的操作基礎上實現的,一種用戶程序的操作對應著一種儀表行動,但并不是所有的操作都需要單獨開發用戶程序來完成,因此需要通過軟件復用技術進行優化,讓一種或者多種用戶程序承載更多的功能,再或者同一類型的軟件分別執行不同的儀表功能。這樣的技術優勢主要有三:一是軟件需要獨立的嵌入式微處理器與硬件設備作為載體,軟件復用減少了載體硬件設備的安裝數量,可以縮減儀表的制造尺寸;二是儀表在后續維修養護時,減少了不必要的單獨校驗工作量;三是降低了軟件開發和后期維護的成本。代碼是程序員利用嵌入式開發工具,以字符、符號和數字等離散的信息表達形式所寫出的源文件,可以近似地理解為用編譯器將人類的“命令語言”轉譯成一種處理器可以理解的二進制計算機指令。有了源代碼,自動化儀表上的嵌入式軟件系統才有了邏輯處理功能。而代碼的復用可以通過對源代碼的剪貼、包含與繼承來實現;設計的復用是指將現用某個成熟嵌入式軟件的功能設計模型進行復用,用于嵌入式軟件的整體移植;分析結果的復用是指復用某個已有嵌入式軟件的分析模型,當用戶使用儀表的功能需求未發生改變,但系統整體結構需要進一步技術優化時會使用這種軟件復用技術。嵌入式軟件開發通常需要編輯(代碼準備)、編譯、功能定位(定制和打包)、燒寫、調試、下載與優化幾個步驟,工業自動化儀表中可能還需要后期的測試與驗證。

2.構建思路

有了軟件復用技術與軟件構件模型,就可以對工業自動化儀表嵌入式軟件系統進行構建了,首先要根據光學儀器、氣溫氣壓或熱輻射感應儀表,或者其他電子測量儀器的使用功能,調用合適的構件模型進行框架構建,在與功能實現相關的各個構建模型中,對它們的源代碼進行分析修改,使系統框架與實際使用功能更加貼合。如儀器的自動化控制功能,可以通過多個軟件構件模型的數據庫分析來實現,而開發人員需要做的,便是通過測試來校對修改底層代碼,并給自動化控制范圍一個合理的賦值。在對嵌入式軟件進行構建時,不是所有的構件模型都能夠適用于相應功能資源的各種情況的。這時需要軟件開發人員為每個外部硬件模塊專門編寫帶有描述性事件的源代碼作為驅動程序,如數字模型轉換器、內部集成電路、串口、外圍接口、本地網絡管理等,都需要單獨手動編寫驅動控制程序。但考慮到儀表工作時可能出現多個外部硬件模塊同時工作的情況,需要建立獨立的構件庫對所有專門編寫的驅動程序進行集中管理。

3.具體構建方法

3.1框架構建流程

工業自動化儀表嵌入式軟件系統的常見編程方法大致分為兩種:一是即時操作系統,二是大循環編程系統。這個要看儀表的具體應用情況來決定。計劃以Linux系統作為構建平臺,將外部所有的設備統一當做系統文件來處理。Linux文件系統是一個目錄樹的結構,最上層是文件根目錄,下面是Linux為使用者創建的標準目錄結構,如sbin、usr、etc、root、hom、lib和mut等,并且能夠指定相應的目錄功能作用與文件類型。由于大多數嵌入式目標機往往不能滿足存儲提供足夠可供編譯的數據資源,所以采用交叉編譯的方式將編譯任務轉交給高性能的宿主機。首先利用常見的Linux外殼,如Bash、ash等shell命令解釋器建立系統交叉編譯的環境,而后再進行Bootloader的移植、配置與編譯。Bootloader是嵌入式系統在硬件通電后運行的第一個代碼指令,它是負責引導Linux系統加載內核的程序,通常以一個固化硬件的形式集成在嵌入式系統中,需要將其設置為通電后自動運行。而后再對kernel進行配置編譯,在交叉編譯時,應當將Bootloader調用kernel的方式設置為“直接跳轉到內核第一條指令處”,使kernel與系統根目錄可以同步創建一個初始化映像,在此基礎上才能進行根目錄與用戶程序的開發、應用。

3.2功能構建

選用一種適用于儀表的嵌入式軟件開發工具,對儀表嵌入式系統中所有出現的已知功能的源代碼進行編譯、鏈接與下載,如KeiluVision2,這就相當于在主體框架上豐富了各個功能單元區的構建。功能構建免不了嵌入式Linux系統的移植,但還是要考慮到具體系統的用途,有針對性地對Linux內核進行裁剪與修改。而構件庫則是開發設計人員為了方便系統構建,編寫一段可復用的命令語句后在嵌入式系統框架上進行測試后整理出的“工具箱”,用軟件復用技術將新開發的功能源代碼變為新的構件。嵌入式Linux系統的可拓展性能極佳,可以支持如ext、NFS、cramfs等十余種不同的文件系統類型,能夠形成可支持精簡用戶程序儲存工作數據的磁盤。功能構建階段,可以近似地看成是嵌入式系統的“組裝”過程,需要分析構件未達到設計功能的原因,這種問題的原因主要有兩種:一是工作評審情況與構件設計的描述不符,二是軟件構件的邏輯性存在問題;前者需要對構件進行調試修改后再次測試直至符合要求后加入構件庫中,而后者是該軟件構件組在開發階段時邏輯驗證存在問題,需要重新進行編寫開發。此外還需要注意如果系統中含有Nor flash性質的存儲器,應在arch/s3c2310/smdk.c中找到對應分區添加修改分區代碼。

3.3后期測試

后期測試分為局部測試與整體測試,不論是哪個功能單元的構建,它所使用的構件都必須經過嚴格的軟件測試才能入庫選用,不然很容易留下影響儀表系統功能的隱患故障。每完成一個單獨的功能單元的構建時,需要在系統框架上給該單元所有的組成構件提供運行環境,將各個構件按照各自的接口定義條件進行自測與互測,對其中出現的bug問題進行修改。在局部測試階段分為兩種問題情況:一是僅僅構件算法有問題,僅在某一功能單元出現問題,且不會影響到其他功能單元的編制,只需對滿足單一功能的構件進行重新構建即可;另外一種測試問題是構件之間的耦合度過高,或者軟件構件之間的抽象分組存在不合實際的嚴重邏輯問題,那么就必須回查構件庫,重新返回嵌入式系統框架與功能單元的設計構建階段。完成系統的構建后,還應當對嵌入式系統進行整體測試,檢查整個系統運行的穩定性與正確性。

4.內核裁剪

目前嵌入式系統使用的內核有多重不同版本,需要根據儀表用途選用的具體處理器架構來選擇合適版本的內核核心。首先需要將適配的內核核心在# export PRJROOT=/home/armlinux文件夾內完整解壓,而后通過命令語句“ # cd armlinux # mkdir build-tools kernel tools”,在用戶目錄文件夾名下建立三個根目錄:build-tools、kernel 和 tools。其中build-tools目錄用于存放編譯后gcc、binutils、glibc等源代碼的數據文件;kernel是負責收容內核源代碼的文件夾;而tools則是用來存放編譯需要的各類交叉編譯工具與數據庫文件的。

第二步是相關的環境變量建立,由export聲明一組臨時變量,當控制臺被注銷或者更換后,這組變量也會隨之消失。具體的環境變量代碼如下:# export PRJROOT=/home/mike/armlinux # export TARGET=arm-linux # export PREFIX=$PRJROOT/tools # export TARGET_PREFIX=$PREFIX/$TARGET # export PATH=$PREFIX/bin:$PATH。若是需要多次使用這組環境變量時,還需要重復export操作。

第三步是下載GUN工具為接下來的編譯做準備,我們可以選擇Binutils下載安裝,它包含了addr2line、ar、as、c++filt等多種工具程序,其中addr2line是負責將程序地址轉化為對應的文件名與行號的;ar是用于建立、修改、提取歸檔數據的程序;as是為ar提取歸檔數據后生成gcc編譯器提供匯總文件環境的工具,以id連接器的形式來創建“ar匯總文件與符號引用之間的映射關系”;而c++filt是用來處理過濾java與c++符號的,避免多種代碼語言的函數在重載時出現邏輯沖突,為編譯操作提供兼容性保障。

第四步需要借助編譯器分析內核的頭部文件,調取與目標平臺適配函數的數據信息,除了要獲取內核的頭部文件之外,還要合理的配置來重新對arm-linux頭部文件進行定義。首先在kernel文件夾中找到格式為linux-2.6.10.tar.gz的內核包文件,通過代碼指令:“# cd $PRJROOT/kernel # tar –xvzf linux-2.6.10.tar.gz”將其解壓在當前位置,而后執行 “# cd linux-2.6.10 # make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig ”命令正確配置內核的頭部文件。配置完成后需要在內核文件目錄中查找是否存在autoconf.h或version.h文件,確認該文件已生成后方可退出保存。

第五步是在linux2.6.10內核配置中設置合適的參數,首先需要將配置完成的內核頭文件復制到交叉編譯工具鏈中,而后安裝arm linux gcc工具進行內核與創建c庫的編譯工作。此時是系統第一次安裝arm交叉編譯工具,并未獲得glibc庫的交互支持,因此只能用來進行內核與不需要c庫支持的程序編譯,如bootloader的編譯修改。在使用arm linux gcc給CFLAGS設置操作參數前,需要通過-Dinhibit_libc-D__ gthr_ posix_h命令來將頭部文件屏蔽使用。內核裁剪完成后,將一個簡單的hello.c源文件編譯為可執行,通過file命令來查看hello.c文件類型,來檢查交叉編譯工具鏈是否正常可用。

結語:綜上所述,工業自動化儀表的嵌入式軟件系統構建,主要是分為兩個部分:系統框架構建與功能單元組建。而其中主要是應用軟件復用技術與構件技術,使用這兩種技術進行嵌入式軟件系統構建時,可以極大地縮減開發設計環節的重復工作量,保證嵌入式軟件系統的靈活性與規范性。而在系統構建時,無論是為構件庫添加構件還是單元區的構建,結束后都要進行測試,查找設計缺陷,降低或消除質量風險。

參考文獻:

[1]李學英,王永兵,徐學青.航天嵌入式軟件構件管理研究[J].中國新通信,2021,23(03):65-66.

[2]陳志瑞.機械工程自動化儀表裝置的應用分析[J].科技創新與應用,2021,11(27):172-173.

[3]劉國超,李春會.工業自動化儀表與自動化控制技術的應用研究[J].科技創新與應用,2021,11(23):177-179.

主站蜘蛛池模板: 国产午夜无码专区喷水| 欧美亚洲国产视频| 日韩无码视频网站| 国产剧情伊人| 老司机午夜精品视频你懂的| 77777亚洲午夜久久多人| 国产成人精品在线| 国产精品香蕉在线观看不卡| 操美女免费网站| jijzzizz老师出水喷水喷出| 71pao成人国产永久免费视频 | 九九香蕉视频| 又粗又硬又大又爽免费视频播放| 日本三级精品| 99视频国产精品| 免费看久久精品99| 欧美日韩国产在线人| 天天视频在线91频| 国产美女在线免费观看| 国产91久久久久久| 亚洲水蜜桃久久综合网站| 一区二区偷拍美女撒尿视频| 国产精品无码一二三视频| 在线观看免费AV网| 久久精品人人做人人爽| 国产在线精品人成导航| 中文字幕欧美成人免费| 亚洲欧洲自拍拍偷午夜色无码| 国产免费怡红院视频| 免费人成黄页在线观看国产| 久久综合亚洲色一区二区三区 | 亚洲欧美国产视频| 国产美女一级毛片| 国产福利微拍精品一区二区| 亚洲精品无码日韩国产不卡| 黄色网站不卡无码| 女人18毛片一级毛片在线 | 精品久久综合1区2区3区激情| 婷婷开心中文字幕| 夜夜爽免费视频| 久久影院一区二区h| 久久久久中文字幕精品视频| 亚洲成人动漫在线| 国产 日韩 欧美 第二页| 亚洲欧洲日本在线| 最新国产网站| a毛片在线| 亚洲天堂网视频| 久久精品国产免费观看频道| aaa国产一级毛片| 99热这里都是国产精品| 国产成人无码AV在线播放动漫 | 日本一区高清| 国产成人一区二区| 91福利在线看| 国产精品所毛片视频| 女人一级毛片| 国产精品第页| 亚洲欧美成人网| 亚洲天堂久久| 在线a网站| 国产精品欧美在线观看| 国产欧美日韩在线一区| 91视频区| 亚洲三级色| 久久香蕉欧美精品| 亚洲精品欧美日韩在线| 国产一区成人| 亚洲中文制服丝袜欧美精品| 亚洲人视频在线观看| 欧美日韩国产在线观看一区二区三区| 性激烈欧美三级在线播放| 亚洲最黄视频| 亚洲一区二区视频在线观看| 欧美日韩亚洲综合在线观看| 区国产精品搜索视频| 蜜桃臀无码内射一区二区三区| 另类重口100页在线播放| 成人一区在线| 制服丝袜无码每日更新| 26uuu国产精品视频| 九九热精品视频在线|