CH32V203最多可以嵌套多少级函数?

CH32V203最多可以嵌套多少级函数?

image.png

V203是V4B内核,硬件堆栈只有2级,不是很明白到底能嵌套多少级函数?

CH32V203中断最多两级嵌套。


也就是说中断里最多只能调用两级函数是吧?比如:


中断函数

{

    a函数();

}


a函数()

{

    b函数();

}


b函数()

{

    b函数里不能再调用其他函数了,是这样的是吗?

}




我觉得是“中断”的嵌套,即中断1的ISR当中被更高优先级中断2打断,进入中断2的ISR中即达到2级嵌套。而一般的函数调用层数其实是受到堆栈限制的。


这里的理解有点偏差,CH32V203的中断最多两级嵌套与能嵌套几级函数是没关系的,默认的CH32V203栈大小是2048字节,理论上只要你嵌套的函数不会把栈用满就可以一直嵌套下去,但是在实际应用环境下还会有很多其他函数的的局部变量、被调用函数包含的局部变量,参数等等需要放在栈区,所以实际数值是有限的,具体能嵌套多少层跟你具体的程序有关,没有确定的数据。


好的,明白了,我平时用的OTP单片机,一般有8级硬件堆栈,那就只能调用最深就8个函数。


只有登录才能回复,可以选择微信账号登录