CH32V203最多可以嵌套多少級(jí)函數(shù)?
V203是V4B內(nèi)核,硬件堆棧只有2級(jí),不是很明白到底能嵌套多少級(jí)函數(shù)?
CH32V203最多可以嵌套多少級(jí)函數(shù)?
V203是V4B內(nèi)核,硬件堆棧只有2級(jí),不是很明白到底能嵌套多少級(jí)函數(shù)?
CH32V203中斷最多兩級(jí)嵌套。
也就是說(shuō)中斷里最多只能調(diào)用兩級(jí)函數(shù)是吧?比如:
中斷函數(shù)
{
????a函數(shù)();
}
a函數(shù)()
{
? ? b函數(shù)();
}
b函數(shù)()
{
? ? b函數(shù)里不能再調(diào)用其他函數(shù)了,是這樣的是嗎?
}
我覺(jué)得是“中斷”的嵌套,即中斷1的ISR當(dāng)中被更高優(yōu)先級(jí)中斷2打斷,進(jìn)入中斷2的ISR中即達(dá)到2級(jí)嵌套。而一般的函數(shù)調(diào)用層數(shù)其實(shí)是受到堆棧限制的。
這里的理解有點(diǎn)偏差,CH32V203的中斷最多兩級(jí)嵌套與能嵌套幾級(jí)函數(shù)是沒(méi)關(guān)系的,默認(rèn)的CH32V203棧大小是2048字節(jié),理論上只要你嵌套的函數(shù)不會(huì)把棧用滿就可以一直嵌套下去,但是在實(shí)際應(yīng)用環(huán)境下還會(huì)有很多其他函數(shù)的的局部變量、被調(diào)用函數(shù)包含的局部變量,參數(shù)等等需要放在棧區(qū),所以實(shí)際數(shù)值是有限的,具體能嵌套多少層跟你具體的程序有關(guān),沒(méi)有確定的數(shù)據(jù)。
好的,明白了,我平時(shí)用的OTP單片機(jī),一般有8級(jí)硬件堆棧,那就只能調(diào)用最深就8個(gè)函數(shù)。