有一個任務開始定義在main.c中,可以正常運行(堆疊設定為64)。但當定義在其他.c檔案中去,便會發生堆疊溢位硬體例外,需要將其任務堆疊增加(需增加到大概100)才可正常運行。為什么呢?
任務只是申請了一個變數做自增而后顯示。
uj5u.com熱心網友回復:
定義在不同的檔案中,不會影響堆疊實際使用的大小,但是會影響堆疊的存盤位置。64的堆疊大小,無論定義在哪里都會溢位,只不過當你定義在main.c中的時候,堆疊分配空間的下方的空間沒有用或者沒什么影響,因此堆疊溢位沒有產生副作用,當你換到另一個檔案的時候,堆疊溢位破壞了有用的資料,讓你可以感覺到這里有問題了。uj5u.com熱心網友回復:
謝謝!明白了轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/129976.html
標籤:單片機/工控
