stm8s使用问题总结1——segment .text size overflow

       这几天在使用stm8s003MCU进行嵌入式开发,之前没用过stm8系列的MCU,在使用过程中不免遇到很多问题,本文讲述的即是开发过程中一个问题。在使用stm8s003编程过程中,使用了官方的库文件,在进行build时候,报了一个error:segment .text size overflow。经过查阅资料才发现之所以出现本错误是因为代码长度超过了MCU的flash。因为stm8s003的flash为8KB,而我的代码长度超过了8KB。实际上,在使用官方库进行编程时,官方库中好多代码实际上没有用到,所以可以将这些库中未使用到的代码函数不编译进自己写的代码。具体操作如下:


第一步,打开stvd软件,点击Project下的Settings,界面如下


第二步,点击C Compiler,选择General的d倒三角图标,出现界面如下

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
com.segment.backo.Backo 是一个 Java 库,可以用于实现指数退避重试策略。该策略在网络通信或者其他需要重试的场景中非常常见,它会在第一次失败之后,等待一段时间后再次尝试,等待的时间间隔会按照指数级别逐渐增加,直至重试次数达到上限或者成功为止。 使用 com.segment.backo.Backo 库的方式非常简单,首先需要通过 Backo.builder() 方法创建一个 Backo.Builder 对象,然后调用 builder 对象的各种方法设置退避策略的参数,比如最大重试次数、初始等待时间、等待时间的增长倍数等等。最后,通过 builder.build() 方法创建一个 Backoff 对象,即可使用该对象实现指数退避重试策略。 以下是一个使用示例: ``` Backoff backoff = Backo.builder() .base(TimeUnit.MILLISECONDS, 100) .factor(2) .jitter(0.1) .maxAttempts(5) .build(); int attempt = 0; while (attempt < backoff.maxAttempts()) { try { // 执行操作 break; // 如果成功,跳出循环 } catch (Exception e) { // 出现异常,等待一段时间后重试 long waitTime = backoff.delay(attempt++); Thread.sleep(waitTime); } } ``` 在上面的示例中,Backo.builder() 方法创建了一个 Backo.Builder 对象,然后通过 builder 对象的各种方法设置退避策略的相关参数。最后通过 builder.build() 方法创建了一个 Backoff 对象。 在执行操作的过程中,如果出现异常,就调用 backoff.delay(attempt++) 方法计算等待时间,然后使用 Thread.sleep(waitTime) 方法进行等待,等待一段时间后再次尝试。如果重试次数达到上限或者成功执行了操作,就跳出循环。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值