打印

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

[复制链接]
11878|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 | 只看该作者
固件库的确是很占空间

使用特权

评论回复
5
奔牛滚滚| | 2012-8-23 23:59 | 只看该作者
本帖最后由 奔牛滚滚 于 2012-8-24 00:00 编辑

你等着悲剧吧,空间肯定是不够的.
我自己优化了,iap+程序代码,刚刚好.太危险了.以后肯定不会这么干了.原来我用avr只用到4k,现在8k刚刚够,还是优化后的结果

使用特权

评论回复
6
holts| | 2012-8-24 08:09 | 只看该作者
固件库是TM占空间, 不过STM8S103比白菜还便谊, 加多到16K也贵不过白菜, 为何不用库 ?  省下了时间,哪就是白花花的银子啊

使用特权

评论回复
7
触觉的爱| | 2012-8-24 13:27 | 只看该作者
实现功能后,有时间再慢慢替换掉呀

使用特权

评论回复
8
2011自控| | 2014-2-18 08:51 | 只看该作者
路过来看看

使用特权

评论回复
9
yanyinzhong| | 2014-4-7 22:41 | 只看该作者
香水城 发表于 2012-8-23 16:54
呵呵,ST提供固件库就是提供一条快速安全上手的路径。

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

st官网 在哪下固件库 找不到

使用特权

评论回复
10
huzi2099| | 2014-4-7 23:39 | 只看该作者
占空间是因为包含了不需要的函数,编译选项里钩选"One ELF Section pre Function"就行了.

使用特权

评论回复
11
d865841995| | 2015-4-18 16:38 | 只看该作者
huzi2099 发表于 2014-4-7 23:39
占空间是因为包含了不需要的函数,编译选项里钩选"One ELF Section pre Function"就行了. ...

这个 "One ELF Section pre Function"没有找到,能具体说说么

使用特权

评论回复
12
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 (66.54 KB )

選前.jpg

one_elf.jpg (95.65 KB )

one_elf.jpg

選後.jpg (70.15 KB )

選後.jpg

使用特权

评论回复
13
戈卫东| | 2015-4-19 10:04 | 只看该作者

他们说的是STM8,你这是STM32还是用的KEIL。。。。。。。

使用特权

评论回复
14
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/其他 !!

使用特权

评论回复
15
d865841995| | 2015-4-21 22:33 | 只看该作者

谢谢你的回复,很直观。我用的IARFORSTM8,也遇到程序溢出的问题。决定从库改到寄存器。。。。

使用特权

评论回复
16
行云_流水| | 2015-4-23 16:05 | 只看该作者

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

project--->project  settings

c  compliler选项卡

optimizations--->>customize:

勾选  minimize  code  size  和split  function in separate sections

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
工控板 + 1 很给力!
17
desertsailor| | 2015-4-24 10:53 | 只看该作者
固件库是为了求全,所以体积大,个人可根据应用适当裁剪即可

使用特权

评论回复
18
yjneedsky| | 2015-6-9 23:59 | 只看该作者
desertsailor 发表于 2015-4-24 10:53
固件库是为了求全,所以体积大,个人可根据应用适当裁剪即可

真心 没用! 直接换寄存器操作...

使用特权

评论回复
19
mzhboy| | 2015-6-11 08:50 | 只看该作者
我的一个典型的IAR工程,测试结果如下

optimization.PNG (5.13 KB )

optimization.PNG

使用特权

评论回复
20
huarana| | 2015-6-11 11:55 | 只看该作者
你不会包含所有库了吧?

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

如果你要用到所有外设,我相信你也不会整8K这么小的片子

使用特权

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

本版积分规则

38

主题

215

帖子

4

粉丝