固件库,太占用程序空间了。STM8S103

[复制链接]
13010|22
 楼主| bester 发表于 2012-8-23 15:51 | 显示全部楼层 |阅读模式
STM8S103F3的flash为8K,使用固件库,程序就只是判断串口命令然后调节PWM,编译一下以后,竟然用去7k多,  7 033 bytes of readonly  code memory
     997 bytes of readonly  data memory
     300 bytes of readwrite data memory
不过,话说使用固件库,开发时间确实缩短不少,我从看datasheet到画板到程序写完,一共用了一周。
现在想想,当初的选型也真够大胆的,万一程序复杂点,flash不够怎么办。。。
sszxxm 发表于 2012-8-23 16:11 | 显示全部楼层
我是先用固件库,调试通过,直接调查固件库函数所调用涉及的寄存器最终设置数值,然后替换固件库初始化代码,立刻,世界清静了。
香水城 发表于 2012-8-23 16:54 | 显示全部楼层
呵呵,ST提供固件库就是提供一条快速安全上手的路径。

等走熟了,自己开辟下路径也就方便了。
秋天落叶 发表于 2012-8-23 18:18 | 显示全部楼层
固件库的确是很占空间
奔牛滚滚 发表于 2012-8-23 23:59 | 显示全部楼层
本帖最后由 奔牛滚滚 于 2012-8-24 00:00 编辑

你等着悲剧吧,空间肯定是不够的.
我自己优化了,iap+程序代码,刚刚好.太危险了.以后肯定不会这么干了.原来我用avr只用到4k,现在8k刚刚够,还是优化后的结果
holts 发表于 2012-8-24 08:09 | 显示全部楼层
固件库是TM占空间, 不过STM8S103比白菜还便谊, 加多到16K也贵不过白菜, 为何不用库 ?  省下了时间,哪就是白花花的银子啊
触觉的爱 发表于 2012-8-24 13:27 | 显示全部楼层
实现功能后,有时间再慢慢替换掉呀
2011自控 发表于 2014-2-18 08:51 | 显示全部楼层
路过来看看
yanyinzhong 发表于 2014-4-7 22:41 | 显示全部楼层
香水城 发表于 2012-8-23 16:54
呵呵,ST提供固件库就是提供一条快速安全上手的路径。

等走熟了,自己开辟下路径也就方便了。 ...

st官网 在哪下固件库 找不到
huzi2099 发表于 2014-4-7 23:39 | 显示全部楼层
占空间是因为包含了不需要的函数,编译选项里钩选"One ELF Section pre Function"就行了.
d865841995 发表于 2015-4-18 16:38 | 显示全部楼层
huzi2099 发表于 2014-4-7 23:39
占空间是因为包含了不需要的函数,编译选项里钩选"One ELF Section pre Function"就行了. ...

这个 "One ELF Section pre Function"没有找到,能具体说说么
andy_bj4 发表于 2015-4-19 09:21 | 显示全部楼层
本帖最后由 andy_bj4 于 2015-4-19 09:22 编辑
d865841995 发表于 2015-4-18 16:38
这个 "One ELF Section pre Function"没有找到,能具体说说么

選前.jpg
one_elf.jpg
選後.jpg
戈卫东 发表于 2015-4-19 10:04 | 显示全部楼层

他们说的是STM8,你这是STM32还是用的KEIL。。。。。。。
andy_bj4 发表于 2015-4-20 00:30 | 显示全部楼层
本帖最后由 andy_bj4 于 2015-4-22 19:41 编辑
戈卫东 发表于 2015-4-19 10:04
他们说的是STM8,你这是STM32还是用的KEIL。。。。。。。

我以為環境/固件庫沒什麼差別,手邊剛好用32, stm8不能用keil環境嗎?下一個案子準備要用stm8
04/22
有查過了, stm8不能用keil, 只能用其他環境IAR/其他 !!
d865841995 发表于 2015-4-21 22:33 | 显示全部楼层

谢谢你的回复,很直观。我用的IARFORSTM8,也遇到程序溢出的问题。决定从库改到寄存器。。。。
行云_流水 发表于 2015-4-23 16:05 | 显示全部楼层

如果是在STVD平台下编译的,可以尝试一下以下设置后,再重新编译,代码会优化压缩很多的

project--->project  settings

c  compliler选项卡

optimizations--->>customize:

勾选  minimize  code  size  和split  function in separate sections

评分

参与人数 1威望 +1 收起 理由
工控板 + 1 很给力!

查看全部评分

desertsailor 发表于 2015-4-24 10:53 来自手机 | 显示全部楼层
固件库是为了求全,所以体积大,个人可根据应用适当裁剪即可
yjneedsky 发表于 2015-6-9 23:59 | 显示全部楼层
desertsailor 发表于 2015-4-24 10:53
固件库是为了求全,所以体积大,个人可根据应用适当裁剪即可

真心 没用! 直接换寄存器操作...
mzhboy 发表于 2015-6-11 08:50 | 显示全部楼层
我的一个典型的IAR工程,测试结果如下

optimization.PNG
huarana 发表于 2015-6-11 11:55 | 显示全部楼层
你不会包含所有库了吧?

用到啥外设就包含啥库,没用到的不要包含。

如果你要用到所有外设,我相信你也不会整8K这么小的片子
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

219

帖子

4

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