stm32棧空間溢出處理方法


  在寫stm32程序時會用到一些局部變量,函數中的局部變量是存在棧空間當中,在stm32的啟動文件當中可以設置棧空間大小,在如果函數當中定義的的局部變量超過棧空間大小編譯時不會報錯,但運行時極有可能出現錯誤,甚至會導致程序卡死,那么如何修改棧空間大小呢?

方法一:修改棧空間大小

1、找到啟動文件hd.s(例如:是stm32f103則是startup_stm32f10x_hd.s)

2、找到啟動文件當中的棧空間大小定義

1  Stack_Size      EQU     0x00000400  //系統默認棧空間大小為1K

3、修改棧空間大小

1  Stack_Size      EQU     0x00001000  //我們么修改為4K

方法二:將局部變量改為全局變量

另外:

棧,用於存放局部變量,局部數組等 堆,用於保存malloc這些自定義的內存變量; 全局靜態區,用於保存全局變量和靜態變量; 字符常量區,用於保存字符串; 代碼區,用於保存程序的二進制代碼;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM