在嵌入式系統編程中,一般很少建議使用全局變量進行參數的傳遞,因爲全局變量將破壞函數的封裝性。並且會浪費一些內存,但是他至少還是有下面兩個好處:
1、節省了函數切換的開銷——參數的入棧、出棧
2、可以隨時檢測和控制內存的使用量,在編譯過程中就可以知道程序運行時將佔用多大的內存,如果使用堆或者是棧是不可能知道這些內容的。
全局變量是不可衝入的。
嵌入式系統中參數的傳遞方式:
當調用的函數的參數比較多的時候,調用者需要將參數放入內存中,使用指向內存地址的寄存器傳遞參數。在ARM體系結構下,一般來說,傳遞參數將使用4個寄存器,當寄存器使用不夠時,就需要使用棧了。
在ARM處理器中,傳遞的參數的個數小於4,就是利用R0~R4寄存器進行傳遞,大於4個,就要利用入棧和出棧的操作了!