打印

IAR 优化Balance BL 函数跳转

[复制链接]
313|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
白鹭hu|  楼主 | 2018-7-15 10:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开发环境:IAR:6.60.1.5099

优化等级: high balance
file:///D:/Program%20Files/wizdata/temp/b5126e70-0bf1-4b94-9f28-592a80d0b25d/128/index_files/e250c490-0043-46c9-981b-aa5f4de74bcb.jpg

现象:有一个工程需要增加一个通信功能,该功能总共有4个函数,称为 A,B,C,D,其中A函数调用B,C,D,A函数被工程中的原来的函数调用。在A函数内,BCD函数均被流水调用多次(30次)。
B函数的调用一般形式为 B(0x12,pbuf)   每次调用B的pbuf参数2都是一样的,参数1是各种常数,不要问我为什么参数2不变为啥还要这个参数,我也不知道,历史传承。
调用树简单如下所示:
file:///D:/Program%20Files/wizdata/temp/b5126e70-0bf1-4b94-9f28-592a80d0b25d/128/index_files/a7f13c97-1a01-486b-8c39-24108d60c82a.png
两种写法:
mode-1        将A,B,C,D 函数放置在init.c 中,main.c 中extern A();mode-2        将A,B,C,D 函数放置在main 中,main.c 头声明 A();
发现代码空间差距2K,mode-2 代码空间较大

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

396

主题

396

帖子

0

粉丝