[STM8] cosmic 编译时时库文件中没有用到的函数也编译了

[复制链接]
 楼主| smartpower 发表于 2011-8-31 21:24 | 显示全部楼层 |阅读模式
cosmic 编译时时库文件中没有用到的函数也编译了,有什么解决方法吗?
将用不到的函数删除后,编译好的文件就小很多。
Simon21ic 发表于 2011-9-1 00:02 | 显示全部楼层
香版,这个是我们下半年的一个批量项目,第一次使用STM8,请尽量帮忙解决,谢谢。
汉之云 发表于 2011-9-1 10:25 | 显示全部楼层
在 《C Cross Compiler User’s Guide for ST Microelectronics STM8》里面有方法:
1. 在 project settings - c complier - category /optimizations 中 选中 +split,目的是使函数在编译时模块化
clip_image002.jpg
2. 在 project settings - linker - category /input - segment - .text 的options 中 加入 ‘-k’ 选项,目的是在链接时将不使用的函数模块优化掉
clip_image001.jpg
香水城 发表于 2011-9-1 12:26 | 显示全部楼层
谢谢3楼,好像很多人问过这个问题。
 楼主| smartpower 发表于 2011-9-1 21:26 | 显示全部楼层
本帖最后由 smartpower 于 2011-9-1 21:56 编辑

方法1(8楼).编译时只选minimize code size选项 编译后最后一条指令地址为81e7
方法2(7楼).按3楼所提供方法编译后最后一条指令的地址为81e9
方法3(6楼).手工删除stm8L10x_gpio.c中没有用到的函数,编译只选minimize code size选项,编译后最后一条指令的地址为8177.
 楼主| smartpower 发表于 2011-9-1 21:34 | 显示全部楼层
本帖最后由 smartpower 于 2011-9-1 21:50 编辑

5楼测试时的3种方法相关图片如下:

方法3:
该方法的gpio.c文件中只有用到的3个函数

mini_prj.JPG
mini_op.JPG
mini_lk.JPG
mini_addr.JPG
 楼主| smartpower 发表于 2011-9-1 21:38 | 显示全部楼层
本帖最后由 smartpower 于 2011-9-1 22:12 编辑

方法2:
nnn_prj.JPG
-k_op.JPG
-k_lk.JPG

-k_addr.JPG
mini_prj.JPG
 楼主| smartpower 发表于 2011-9-1 21:45 | 显示全部楼层
方法1:


nnn_prj.JPG
nnn_op.JPG
nnn_lk.JPG
nnn_addr.JPG
 楼主| smartpower 发表于 2011-9-2 11:38 | 显示全部楼层
希望 知道 解决方法的 朋友来指导一下!!
 楼主| smartpower 发表于 2011-9-4 21:11 | 显示全部楼层
有那位 大侠 出来指导一下下啊!!!!!!
 楼主| smartpower 发表于 2011-9-4 21:12 | 显示全部楼层
别沉 了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

442

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部