PIC 单片机 中的堆栈是硬件实现的,其深度已随芯片而固定,无法实现需要大量堆栈操作的递归算法

来源:互联网 发布:歌帝梵巧克力 知乎 编辑:程序博客网 时间:2024/05/17 17:15

PICC 基本上符合 ANSI 标准,除了一点:它不支持函数的递归调用。其主要原因是因

 

为 PIC 单片机特殊的堆栈结构。在前面介绍 PIC 单片机架构时已经详细说明了 PIC 单片机

 

中的堆栈是硬件实现的,其深度已随芯片而固定,无法实现需要大量堆栈操作的递归算法;

 

另外在 PIC 单片机中实现软件堆栈的效率也不是很高,为此,PICC 编译器采用一种叫做“静

 

态覆盖”的技术以实现对    C  语言函数中的局部变量分配固定的地址空间。经这样处理后产

 

生出的机器代码效率很高,按笔者实际使用的体会,当代码量超过 4K 字后,C 语言编译出

 

的代码长度和全部用汇编代码实现时的差别已经不是很大(<10%),当然前提是在整个  C

 

代码编写过程中须时时处处注意所编写语句的效率,而如果没有对 PIC 单片机的内核结构、

 

各功能模块及其汇编指令深入了解,要做到这点是很难的。

原创粉丝点击