找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2168|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

合泰單片機(jī)CMG的層數(shù)超過(guò)堆棧層數(shù),這是內(nèi)存不夠了的意思嗎?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
碰到合泰單片機(jī)的問(wèn)題,這是內(nèi)存不夠了的意思嗎

1.png (13.31 KB, 下載次數(shù): 30)

1.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:401564 發(fā)表于 2021-7-20 23:58 | 只看該作者
合泰單片機(jī)是硬件堆棧,8051是軟件堆棧,兩者是不一樣的
硬件堆棧是用硬件來(lái)進(jìn)行堆棧操作的,它的層數(shù)是有限的,有的是四五層,有的是十多層
調(diào)用一次函數(shù)用一層,函數(shù)里面再調(diào)用一次其它函數(shù)就又用一層,這樣就用了兩層了(8051不需要在乎這個(gè)東西)
硬件堆棧就不一樣了,容易溢出
所以,合泰的C是不允許遞歸的,在中斷函數(shù)內(nèi)盡量碼代碼,而不是通過(guò)函數(shù)來(lái)處理,能寫代碼就不調(diào)用函數(shù)(這個(gè)......跟C唱反調(diào)了)
盡可能的多調(diào)用幾個(gè)函數(shù)來(lái)處理,而不是調(diào)用的函數(shù)中又其它函數(shù)
比如:應(yīng)該是這樣的:
display()
{
aa();
bb();
cc();
}

而不是:
display()
{
aa();      -------------   aa()函數(shù)里面包含了函數(shù)bb();和cc();
}    這樣使用的話就多用了幾層堆棧了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表