李麗萍
(云南經濟管理職業學院,云南昆明,650106)
基于ARM嵌入式系統的C語言編程初探
李麗萍
(云南經濟管理職業學院,云南昆明,650106)
在計算機程序化的使用過程中,對于系統軟件的更新速度要隨著社會發展的需要進行改變,對于非智能狀態下的系統軟件的革新要從其本身的嵌入式進行入手,對于系統中的引導程序和相應的驅動裝置進行改變,有效的加強計算機程序動態管理的進程。尤其是在C語言編程的內存管理中,使用的通信I/C等相關的通信軟件。
嵌入式系統;c語言編程;ARM
計算機技術的不斷演化過程中,對于計算機的操作智能化的要求也越來越高,如何將計算機技術更好的服務于大眾是計算機程序設計的主要目的。對于計算機程序設計的方式是應用匯編語言和C語言,基于兩種語言的不同優勢進行分析研究,同時對于兩者的嵌入進行分析討論。在計算機的使用實踐過程中,對于應用程序的語言使用當中,少量的使用相應的匯編程序語言,但是根據實踐證明,使用關于C語言的程序的可操作性能遠比匯編語言的程序更加的方便實用,因而現在對于計算機程序的編程都是使用ARM程序的平臺化管理模式,并不斷的完善C語言的使用范圍。
C語言的使用過程中,都是含有參數和函數的表達式,其中關于main函數的變化之最多,也是在程序研究中最為關鍵的因素之一。在對于main函數的使用中,首先要弄清楚函數的最初原型,對于函數的表達意義要有初步的了解,并且能夠合理的使用程序的改變方程式,對于main中的函數參數也有著不同的規范要求。在main可編輯函數中,agent是表示函數中參數的含義,同時也表達出函數中參數的個數,把agent最為函數參數的指導性參數值進行分析判斷,可以得到函數相關數組的即時數組信息。
提到操作程序的初始化設定中,以往會使用匯編語言進行修改,包括對于軟件的初始化歸零處理和內存器的設置,通過在RAM的程序運行中體現出模塊運行的合理性,并且對于語言的編輯實現合理的操作。在程序進入了預定的程序設計軌道過程中,main語言會自動控制程序的下一步運行,這就是所謂的嵌入式的系統模式,相關的參數會在嵌入的過程中實現交叉比對,保留原有的數據值,將不必要的和使用過的數據自動的刪除,同時會對程序中產生的運行錯誤和編輯錯位進行修改,對于找尋的錯誤在不能自動修改的情況下,會發生一定的程序默認設置運行。這里我們重點提到相關的匯編語言和C語言在嵌入交匯的過程中出現的語言混亂的情況。系統在自動甄別這樣的情況,會對main函數重新擬定新的函數編輯式。如果這樣的操作管理下還不能完成重新定義,系統函數編輯器會將函數自動的歸為初始程序進行處理,用這樣的方式來完成函數之間的有效串接。從而實現系統
程序在新的語言環境中的正常使用。
在計算機語言的使用管理中,對于數據的更新和函數的變化中,都會出現一些緩沖和緩存文件,在有些程序的編程過程中這些文件會出現丟失的現象。對于函數文件的儲存是一項技術性的難題。在嵌入式的RAM磁盤管理當中,可以實現一定的動態數據釋放,在對于存儲器的功能改變上起到了關鍵的作用,也可以使嵌入式的系統在C語言的編輯狀態下完成操作的程序化,也保證了系統的安全。
在C語言編程過程中,需求有一定的函數值的比對實現,在系統磁盤的空余空間當中,合理的分配好存儲模塊的函數值。在ARM平臺中賦予函數值新的定義,可以直接的調用,實現了動態存儲的模式。在相對的函數管理程序編輯中,將對應的函數值定義為不同的映射區間,在區間中的代碼也有一定的不同,其中代碼的定義包括:代碼定義區域、代碼數據管理區域和代碼更新區域,在這三個區域之間的代碼可以形成有效的聯系,并且形成一定的代碼分布層次。在此之中,代碼的區域從最低端開始,代碼的定義區域決定了數據函數在嵌入管理運行中的發展模式,對于目標函數的定義在代碼的可控范圍之內,形成有一定的數據交流邊界,初步定好了函數的定義域范圍。代碼區域的終端是代碼的數據管理區域,這是映射區域的直接表現模塊分布區域,在嵌入系統中找尋參數的對應,對于保護緩沖和緩存數據有一定的保護作用,對于收集數據上起到了關鍵的作用。另外,在存儲器中,不光可以使用空余的存儲空間還能夠使用RAM中的空間進行存放。
在基于ARM嵌入式的程序設計方案中,對于計算機硬件的驅動模式中,包含有程序的設計流程,計算機硬件的驅動模式中包含最底層的中斷處理程序設計和建立在其上的驅動程序設計兩個部分,其實現與具體的外圍設備有關,在研究的過程中也可以看出該程序的復雜性和操作困難的特點。在這里只介紹使用c語言設計驅動程序時需要注意的一些方面,目的是在操作過程中更加的簡便。對于外圍硬件設備一般通過中斷與CPU進行通信。中斷是一種外部不同步的事件。在處理與中斷相關的變量的過程中,要尤為的注意其整個改變中可能會出現的故障。一般情況下,編譯器的優化選項在默認情況下打開之后,對于變量的操作,將盡量安排在存儲器當中。中斷服務程序常常通過改變一些全局變量來通知應用程序某個外部事件已經發生,這些全局變量是不應該被優化的。
解決的辦法是在聲明變量時加上相應的模塊修飾符,通常以通知編譯器這是一個可能被不同步事件改變的量。這個問題在理論的研究過程中看似簡單,但是在實際的操作中并不完全是這樣,如果一旦出現不注意的情況,在實際運行時,程序將出現錯誤等故障,且調試時很難定位故障。運行效率是設計驅動程序的另外一個問題。中斷比較頻繁的外設,其中斷處理程序的速度對整個系統的性能影響是非常大的。這些模塊應該直接用匯編語言編寫,并盡可能優化算。
嵌入式計算機程序平臺上的應用程序設計也有與Pc機上的應用程序設計不同的地方,需要格外注意。首先注意的是,凡是由需操作系統支持的標準庫函數均不能使用,除非自己編寫(如m-alk和m-free)。其次,由于內存資源有限,棧容量有限且不能自動擴展,使用時要格外小心。常常能見到這樣的局部變量的應用:
mt buff[2048]
其目的是要申請一個2048woId(8192Bt)的緩沖區,對于嵌入式系統來說.開銷過于龐大。同時,棧空間巾用于嵌套調用的升銷是不可見的,在嵌套層數較多時尤其如此。一下子申請這么大的棧空間,該系統是一個大的挑戰,如果操作不當還會出現整套系統崩潰不能運行的情況發生。關于堆的操作比棧更靈活,也更好控制。如果m一且110c調用成功,它將返回分配的內存塊的地址,否則返回0。如果返回O.表明系統內存已經所剩不多,這時程序員可以采取別的措施來解決問題,而不至于使系統崩潰。
在本篇文章中,對于現階段研究廣泛的計算機程序進行了討論,并從計算機的匯編語言和C語言方面入手,不斷的深入介紹兩者之間的必然聯系,以及兩種語言在銜接嵌入的過程中程序的運行方式,并且對于使用兩者的計算機程序環境進行了介紹。在一些函數變換的過程中,語言的特殊性就顯現出來了,同時在引入了關于ARM嵌入式的系統的過程中,更好的完善了計算機的使用程序管理,對于計算機在程序自檢和驗算的過程中發揮了巨大的作用,在今后的研究中,會不斷的計算機中的程序化語言繼續的深化和完善程序,更好的使得計算機程序服務于大眾。
[1] 嚴蔚敏.吳偉民,數據結椅(第二版)[J].清華大學出版社.2002,12(18):340-343
[2] 金麗.包志華.陳海進基于ARM嵌入式系統的C程序優化設計方法[J].南通大學學報(自然科學版).2006 ,12(23):230-233
[3] 辛鑫.蒙建波.羅根.由C語言到APM指令及程序優化[J].單片機與嵌入式系統應.2007.11(16):190-192
Preliminary C language programming of embedded systems based on ARM
Li Liping
(Yunnan College of Business Management,YunnanKunming,650106)
In the process of using computer programming,the updating speed of system software to carry out with the development of society change,the system software of non intelligence under the condition of reform should be started from the embedded itself,the system boot program and the corresponding driving device of a change,strengthen dynamic management of computer program process effectiveness.Especially in the memory management of C language programming,use communication software communication I/C and other related.
Embedded system;The C programming language;ARM