標(biāo)題:
合泰單片機(jī)CMG的層數(shù)超過堆棧層數(shù),這是內(nèi)存不夠了的意思嗎?
[打印本頁]
作者:
啊h啊
時(shí)間:
2021-7-20 19:45
標(biāo)題:
合泰單片機(jī)CMG的層數(shù)超過堆棧層數(shù),這是內(nèi)存不夠了的意思嗎?
碰到合泰單片機(jī)的問題,這是內(nèi)存不夠了的意思嗎
1.png
(13.31 KB, 下載次數(shù): 30)
下載附件
2021-7-20 22:48 上傳
作者:
Y_G_G
時(shí)間:
2021-7-20 23:58
合泰單片機(jī)是硬件堆棧,8051是軟件堆棧,兩者是不一樣的
硬件堆棧是用硬件來進(jìn)行堆棧操作的,它的層數(shù)是有限的,有的是四五層,有的是十多層
調(diào)用一次函數(shù)用一層,函數(shù)里面再調(diào)用一次其它函數(shù)就又用一層,這樣就用了兩層了(8051不需要在乎這個(gè)東西)
硬件堆棧就不一樣了,容易溢出
所以,合泰的C是不允許遞歸的,在中斷函數(shù)內(nèi)盡量碼代碼,而不是通過函數(shù)來處理,能寫代碼就不調(diào)用函數(shù)(這個(gè)......跟C唱反調(diào)了)
盡可能的多調(diào)用幾個(gè)函數(shù)來處理,而不是調(diào)用的函數(shù)中又其它函數(shù)
比如:應(yīng)該是這樣的:
display()
{
aa();
bb();
cc();
}
而不是:
display()
{
aa(); ------------- aa()函數(shù)里面包含了函數(shù)bb();和cc();
} 這樣使用的話就多用了幾層堆棧了
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1