国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ARM Cortex-M4的PLC結(jié)構(gòu)化框架研究

2022-02-28 04:14:20陳占標(biāo)
電子元器件與信息技術(shù) 2022年12期
關(guān)鍵詞:主程序子程序文件夾

陳占標(biāo)

泉州市天志智能科技有限公司,福建 泉州 362000

0 引言

ARM Cortex-M4主要應(yīng)用于傳感、決策、中斷驅(qū)動(dòng)等領(lǐng)域,具有功耗低、成本低、性能高、擴(kuò)展性好等特征[1]。但與C語言相比,基于ARM Cortex-M4的PLC結(jié)構(gòu)化框架不夠直觀,編程難度較大,對(duì)基于ARM Cortex-M4的PLC結(jié)構(gòu)化框架應(yīng)用發(fā)展產(chǎn)生不利影響。對(duì)此,本文構(gòu)建PLC結(jié)構(gòu)化匯編框架模型,根據(jù)框架設(shè)計(jì)原則,設(shè)計(jì)具有可移植性,包括CAN模塊擴(kuò)展站點(diǎn)分配功能和PID功能的框架,并對(duì)PLC框架進(jìn)行測試分析,旨在為學(xué)習(xí)者有效學(xué)習(xí)及提升編程效率提供借鑒與參考。

1 PLC結(jié)構(gòu)化匯編框架模型構(gòu)建

PLC結(jié)構(gòu)化匯編框架可應(yīng)用于匯編編程,在具體編程時(shí),可以應(yīng)用硬件抽象層、軟件構(gòu)件層、應(yīng)用層三層邏輯架構(gòu)[2],具體如圖1所示。

圖1 結(jié)構(gòu)化匯編框架

硬件抽象層應(yīng)用嵌入式系統(tǒng),該系統(tǒng)可以將硬件與軟件系統(tǒng)融合,有利于明確硬件與軟件之間的關(guān)系[3]。在具體應(yīng)用中,硬件層應(yīng)用于芯片上電后復(fù)位啟動(dòng)與編譯鏈接中,可以對(duì)設(shè)備外設(shè)的硬件寄存器地址和異常進(jìn)行自整定處理。

軟件構(gòu)件層具有可重復(fù)性、規(guī)范性、嵌入性特征,是組織嵌入式系統(tǒng)的功能單位[4]。需要注意的是,應(yīng)用構(gòu)建是封裝而成的,所以在編程過程中,需要調(diào)用底層驅(qū)動(dòng)構(gòu)件。應(yīng)用層包括中斷服務(wù)例程、用戶主程序等。

2 PLC結(jié)構(gòu)化匯編框架設(shè)計(jì)原則

基于軟件工程理論的分析可知,保證結(jié)構(gòu)的清晰性是PLC結(jié)構(gòu)化匯編框架設(shè)計(jì)的基本點(diǎn)。在文件內(nèi)容安排方面,應(yīng)保證其具有合理性、易修改性、可擴(kuò)展性等特征[5]。為保證軟件開發(fā)效率與質(zhì)量,在設(shè)計(jì)PLC結(jié)構(gòu)化匯編框架過程中,

應(yīng)遵循以下幾點(diǎn)原則,即可復(fù)用、可維護(hù)、可移植等基本思想原則。

每款芯片都有其自身的初始化文件,為保證框架匯編的有效性,可以將這些芯片的初始文件組織在一起,避免在對(duì)某款芯片開發(fā)過程中,特意修改某一文件[6]。

PLC結(jié)構(gòu)化匯編框架設(shè)計(jì)需要對(duì)芯片相關(guān)程序框架文件、軟件構(gòu)件文件、主程序文件等進(jìn)行匯編。為提升匯編效率,提升閱讀清晰度,需要將這些文件分類,并將分類號(hào)的文件組織放在統(tǒng)一的文件夾下,實(shí)現(xiàn)目錄結(jié)構(gòu)的合理分類。

不同的開發(fā)環(huán)境需要不同的配置,在設(shè)計(jì)PLC結(jié)構(gòu)化匯編框架時(shí),需要將所有工程配置文件,如鏈接文件等,組織在一起,避免在同一開發(fā)環(huán)境下,進(jìn)行重復(fù)配置,并提升不同環(huán)境下查找配置文件的便利性[7]。

在設(shè)計(jì)PLC結(jié)構(gòu)化匯編框架時(shí),應(yīng)根據(jù)軟件商的分層思想,將軟件構(gòu)件分為底層驅(qū)動(dòng)構(gòu)件、應(yīng)用構(gòu)件、高層軟件構(gòu)件[8]。同時(shí),在設(shè)計(jì)過程中,可以將不同層次的構(gòu)件存放在不同文件夾中,保證文件的功能明確,結(jié)構(gòu)清晰。另外,在制作構(gòu)件過程中,應(yīng)對(duì)構(gòu)件的共性、特征進(jìn)行分析,在提取構(gòu)件屬性的基礎(chǔ)上,使構(gòu)件移植到不同的環(huán)境中,最大程度避免源程文件的修改。

在編譯鏈接過程中,源程序?qū)a(chǎn)生機(jī)器碼文件,用戶可以通過下載該文件的方式,在目標(biāo)板中運(yùn)行,經(jīng)過重新編譯后,文件極有可能發(fā)生改變,這些新文件需要單獨(dú)存儲(chǔ)[9]。

3 PLC結(jié)構(gòu)化匯編框架結(jié)構(gòu)與設(shè)計(jì)

3.1 框架的結(jié)構(gòu)組織

PLC結(jié)構(gòu)化匯編框架的技術(shù)參數(shù)如表1所示。基于技術(shù)參數(shù)分析,根據(jù)框架模型中的相應(yīng)順序,對(duì)框架中的文件夾進(jìn)行編號(hào),為明確程序的運(yùn)行情況,通常設(shè)置LED閃爍功能,加入了LED閃爍相關(guān)指示文件[10]。當(dāng)主機(jī)功能不夠用的情況,增加了CAN擴(kuò)展功能,當(dāng)主機(jī)與擴(kuò)展模塊通信正常時(shí):主機(jī)處于STOP時(shí),擴(kuò)展的RUN燈間隔1.5s閃爍一次;當(dāng)主機(jī)處于RUN時(shí),擴(kuò)展的RUN燈基本與主機(jī)閃爍一致;當(dāng)主機(jī)與擴(kuò)展模塊通信當(dāng)通信中斷時(shí):擴(kuò)展的RUN燈熄滅,并關(guān)閉所有輸出。在此基礎(chǔ)上,添加了CAN模塊擴(kuò)展站點(diǎn)分配功能(表2)和PID功能(功能選擇見表3)。

表1 PLC結(jié)構(gòu)化匯編框架的技術(shù)參數(shù)

表2 CAN模塊擴(kuò)展站點(diǎn)分配

表3 PID功能選擇說明

3.2 框架設(shè)計(jì)分析

在框架設(shè)計(jì)過程中,需要注重分析工程文件夾的內(nèi)容情況,文件夾內(nèi)除基礎(chǔ)編程環(huán)境需要保留的文件夾外,添加編號(hào)的子文件夾的個(gè)數(shù)、名稱應(yīng)固定[11]。同時(shí),框架設(shè)計(jì)應(yīng)保證框架能夠在不同的CPU、芯片與開發(fā)環(huán)境中移植,并對(duì)移植時(shí)修改的內(nèi)容進(jìn)行說明。

3.3 主程序文件設(shè)計(jì)

整體而言,PLC結(jié)構(gòu)化匯編要包含名為main.s的匯編主程序文件,同時(shí)要保證匯編程序具有簡潔性和清晰性。主程序文件main.s包括以下幾點(diǎn)。

(1)工程描述:工程名、版本、日期等。若在調(diào)試過程中有新的添加內(nèi)容,可以在原有基礎(chǔ)上進(jìn)行補(bǔ)充,目的在于便于使用,且能夠提供備忘信息。

(2)總頭文件:對(duì)頭文件、宏定義(主程序文件中)等進(jìn)行聲明[11]。

(3)主程序:本框架中,將主程序設(shè)計(jì)為初始化與主循環(huán)兩部分。其中,主循環(huán)代表的是程序工作循環(huán)。在實(shí)際運(yùn)行中,可以根據(jù)實(shí)際需求進(jìn)行設(shè)計(jì),但程序段不宜過長,具體功能需要在調(diào)試后實(shí)現(xiàn)。

(4)內(nèi)部直接調(diào)用子程序:若存在不能單獨(dú)存RAM的子程序,可以存放在內(nèi)部直接調(diào)用子程序中[11]。若有多個(gè)子程序,需要單獨(dú)存在外部Flash,并進(jìn)行獨(dú)立校驗(yàn)。

(5)外部子程序:若外部子程序使用的是獨(dú)立存RAM的子程序,可以使用“.include”包含[12]。

(6)程序加密:下載程序時(shí)自動(dòng)讀取ARM Cortex-M4芯片與外部Flash自帶的ID號(hào),并且進(jìn)行無序打散,從二進(jìn)制轉(zhuǎn)換成十六進(jìn)制,無序存放在ARM 芯片與Flash的某些位置,再次上電后,系統(tǒng)自動(dòng)驗(yàn)證該配套ID號(hào)。

4 PLC結(jié)構(gòu)化匯編框架測試

首先,在開發(fā)環(huán)境中導(dǎo)入?yún)R編框架,創(chuàng)建需要測試的工程內(nèi)容,并調(diào)用GPIO構(gòu)件,實(shí)現(xiàn)LED燈閃爍功能[12]。其次,根據(jù)上述主程序的設(shè)計(jì)方法編制主程序。最后,將測試工程編譯鏈接后,下載到目標(biāo)板上,重新通電運(yùn)行,能夠觀察到LED燈間隔閃爍,RS485、RS232、CAN通信正常,且運(yùn)行穩(wěn)定。通過測試結(jié)果分析可知,PLC結(jié)構(gòu)化匯編框架規(guī)范、有效,能夠?yàn)槲⑻幚砥魃顚哟蔚膽?yīng)用開發(fā)和匯編語言研究提供便利途徑。

5 結(jié)語

本研究主要介紹了基于ARM Cortex-M4的PLC結(jié)構(gòu)化匯編框架,設(shè)計(jì)了層次性框架模型,闡述了框架設(shè)計(jì)原則,并對(duì)設(shè)計(jì)進(jìn)行詳細(xì)分析。通過框架測試,結(jié)果表明框架具有實(shí)用性,可以提升匯編程序的可移植性,并能夠降低相關(guān)人員學(xué)習(xí)基于ARM Cortex-M4-PLC結(jié)構(gòu)化匯編程序的難度,具有現(xiàn)實(shí)應(yīng)用價(jià)值。

猜你喜歡
主程序子程序文件夾
磁力文件夾
淺談數(shù)控銑削技術(shù)代碼程序的嵌套方式研究
電控冰箱軟件模塊化設(shè)計(jì)
日用電器(2019年12期)2019-02-26 01:53:06
調(diào)動(dòng)右鍵 解決文件夾管理三大難題
時(shí)光倒流 換回PotPlayer老圖標(biāo)
淺談子程序在數(shù)控車編程中的應(yīng)用
TC一鍵直達(dá)常用文件夾
電腦迷(2015年1期)2015-04-29 21:24:13
子程序在數(shù)控車加工槽中的應(yīng)用探索
西門子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
簡化編程與子程序嵌套的應(yīng)用
科技傳播(2011年24期)2011-08-29 05:39:46
尼木县| 临武县| 莫力| 同德县| 三台县| 海兴县| 三门峡市| 大港区| 罗平县| 富裕县| 宜宾县| 丘北县| 新源县| 新建县| 张家界市| 醴陵市| 隆安县| 青神县| 商丘市| 嘉禾县| 温州市| 娱乐| 通海县| 永康市| 靖州| 丰顺县| 凤台县| 美姑县| 肇源县| 拉孜县| 调兵山市| 桂东县| 夹江县| 喀什市| 庄河市| 修水县| 乐平市| 新民市| 高邮市| 依安县| 沙湾县|