打印
[STM32L1]

STM8L152R8超过32KB之后代码编译出错问题

[复制链接]
1402|34
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuxh|  楼主 | 2022-3-1 21:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM8L152R8超过32KB之后代码编译出错问题

使用特权

评论回复
沙发
zwll| | 2022-3-1 22:04 | 只看该作者
还有什么现象?能再详细描述下吗?

使用特权

评论回复
板凳
chuxh|  楼主 | 2022-3-1 22:06 | 只看该作者

我在使用 STM8L152R8 做的一个项目,这颗芯片FLASH应该是 64KB,IAR查看 lnkstm8l152r8.icf 文件,有如下定义:
define region NearFuncCode = [from 0x8000 to 0xFFFF];
define region FarFuncCode = [from 0x8000 to 0xFFFF]
                          | [from 0x10000 to 0x17FFF];
define region HugeFuncCode = [from 0x8000 to 0x17FFF];

但是,我在程序中,如果编译代码超过 32KB,则编译出错

使用特权

评论回复
地板
renyaq| | 2022-3-1 22:09 | 只看该作者

提示什么

使用特权

评论回复
5
chuxh|  楼主 | 2022-3-1 22:11 | 只看该作者

Error[Lp011]: section placement failed
          unable to allocate space for sections/blocks with a total estimated minimum size of 0x8986 bytes in <[0x008000-0x00ffff]> (total uncommitted space 0x7f80).

使用特权

评论回复
6
yinxiangh| | 2022-3-1 22:13 | 只看该作者
调高优化级别?

使用特权

评论回复
7
chuxh|  楼主 | 2022-3-1 22:15 | 只看该作者
代码量控制在32KB以内,则可编译通过。

使用特权

评论回复
8
chuxh|  楼主 | 2022-3-1 22:17 | 只看该作者
不知道还有什么可能导致此错误?

使用特权

评论回复
9
morrisk| | 2022-3-1 22:20 | 只看该作者
会不会买到的芯片有问题

使用特权

评论回复
10
kangzj| | 2022-3-1 22:22 | 只看该作者
我遇到过程序里有数组类型定义小了时会出现这种情况,用了“__huge”就不会出错。

使用特权

评论回复
11
dingy| | 2022-3-1 22:24 | 只看该作者

数组这么加可以,不过我用的数组比较少,函数就不知道怎么弄了:(

使用特权

评论回复
12
jiajs| | 2022-3-1 22:26 | 只看该作者

Error[Lp011]: section placement failed
          unable to allocate space for sections/blocks with a total estimated minimum size of 0x8986 bytes in <[0x008000-0x00ffff]> (total uncommitted space 0x7f80).
是不是没有**彻底。

使用特权

评论回复
13
zwll| | 2022-3-1 22:29 | 只看该作者
这个问题真的要考虑是不是没有**彻底,32k是没有**的使用大小

使用特权

评论回复
14
yinxiangh| | 2022-3-1 22:32 | 只看该作者
为什么会这样,是代码过长吗

使用特权

评论回复
15
supernan| | 2022-3-1 22:34 | 只看该作者
你没有licence!

使用特权

评论回复
16
stly| | 2022-3-1 23:13 | 只看该作者

估计芯片容量就是32K

使用特权

评论回复
17
pengf| | 2022-3-1 23:15 | 只看该作者
不排除是芯片的问题

使用特权

评论回复
18
pengf| | 2022-3-1 23:18 | 只看该作者
编译的时候提示你使用了多少资源了啊

使用特权

评论回复
19
wuhany| | 2022-3-1 23:19 | 只看该作者
说芯片问题的都扯到哪里去了,明明是编译期间就出了问题,还没有烧写呢,这跟芯片到底是真是假有多大rom根本没关。

使用特权

评论回复
20
wyjie| | 2022-3-1 23:21 | 只看该作者
IAR经常bug,有的地方就是改一点点就编译不过。有些模块因为已经编译过了但是源码没变就不重新编译。把所有过程文件和目标文件都清空再编译就有另一番新气相了。

使用特权

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

本版积分规则

936

主题

11296

帖子

2

粉丝