pic单片机C语言PICC决定了C原程序中的一个函数经编译后生成的机器码

pic单片机C语言中档系列的PIC单片机其一个程序页面的长度是2K字,换句话说,用C语言编写的任何一个函数最后生成的代码不能超过2K字。如果为实现特定的功能确实要连续编写很长的程序,这时就必须把这些连续的代码拆分成若干函数,以保证每个函数最后编译出的代码不超过一个页面空间。

PICC规定原C程序中的函数编译后生成的机器码必须放在同一程序页中。 中档系列PIC单片机的程序页长度为2K字。 也就是说,任何用C语言编写的函数最终生成的代码都不能超过2K字。 一个好的程序设计应该有清晰的组织结构。 使用不同的函数来实现不同的功能是最好的方式。 因此,函数的2K字数限制一般不会对程序代码的编写造成太大影响。 如果确实需要连续编写很长的程序来实现某个特定的功能,那么就必须将连续的代码拆分成多个函数,以保证每个函数最终编译后的代码不超过一页空间。

11.6.2 呼叫级别控制

中档系列PIC单片机的硬件堆栈深度为8级。 考虑到中断响应需要一层堆栈,所以

嵌套函数调用的最大深度不应超过 7 层。 程序员必须控制子程序调用本身的嵌套深度以遵守此限制。

最终编译连接成功后,PICC可生成连接定位映射文件(*.map)。 在这个文件中

里面有详细的函数调用嵌套指令图“call graph”。 建议您关注一下。 信息大致如下(摘自示例程序的编译结果):

调用图:

*_主大小0,0偏移0

_右移_C

* _任务大小0,1偏移0

鲁夫托夫特

ftmul 大小 0,0 偏移量 0

ftunpack1

ftunpack2

ftadd 大小 0,0 偏移 0

ftunpack1

ftunpack2

ft 分母

示例 11-4 C 函数调用层次结构图

上述信息表明,正常调用子程序时(不考虑中断),整个程序最多可以嵌套两层。 因为main函数不能返回,所以嵌套系列中不需要计算。 有些函数调用是编译代码时自动添加的库函数。 这些函数调用无法从原始C程序中直接看到,但在这个嵌套的指标图上却清晰可见。

单片机

三菱继电器电路+PLC编程软件应用+定时器+顺序控制编程

2024-4-6 17:04:56

单片机

信阳师范学院华锐学院本科毕业论文(设计)中期检查情况总结

2024-4-6 18:12:27

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索