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

发布者:Jinyu2022最新更新时间:2017-02-20 来源: eefocus关键字:STM8L052R8  代码编译  出错问题 手机看文章 扫描二维码
随时随地手机看文章

我在使用 STM8L052R8 做的一个项目,这颗芯片FLASH应该是 64KB,IAR查看 lnkstm8l052r8.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,则编译出错,提示:

Error[Lp011]: section placement failed

          unable to allocate space for sections/blocks with a total estimated

                    minimum size of 0x96ee bytes in <[0x008000-0x00ffff]>

                    (total uncommitted space 0x7f80).

如果调高优化级别,代码量控制在32KB以内,则可编译通过。

在项目设置, Optione->Target->Device 选择 stm8l152r8; stm8l152.h 中,选择 #define STM8L15X_HD

不知道还有什么可能导致此错误? 还是会不会我买到的芯片有问题呢?

解决办法:更改项目配置,General Options->Target中的Code改为Mediue或者Large

STM8L052R8 超过32KB之后代码编译出错问题 - 我心永恒 - ARM嵌入式研发

 

        Code的small是64K byte寻址范围,medium是16M byte范围,但函数不允许跨越64K byte边界, large模式下是16M byte寻址范围,函数不存在跨界限制,随便放

        Date的small是256 byte寻址范围,medium是64K byte范围,large是16M范围。


关键字:STM8L052R8  代码编译  出错问题 引用地址:STM8L052R8 超过32KB之后代码编译出错问题

上一篇:STM8编译器最快配置方法(STVD+COSMIC)
下一篇:I2C操作笔记——以 AT24C04为例

推荐阅读最新更新时间:2024-03-16 15:34

STM32与FPGA通信写数据出错问题解决方法
项目中需要使用STM32和FPGA通信,使用的是地址线和数据线,在FPGA中根据STM32的读写模式A的时序完成写入和读取。之前的PCB设计中只使用了8跟数据线和8根地址线,调试过程中没有发现什么问题,在现在的PCB中使用了8根地址线和16根数据线,数据宽度也改成了16位,刚开始是读取数据不正确,后来发现了问题,STM32在16位数据宽度下有个内外地址映射的问题,只需要把FPGA中的设定的地址乘以2在STM32中访问就可以了,但是在写操作的时候会出现写当前地址的时候把后面的地址写成0的情况,比如说我给FPGA中定义的偏移地址0x01写一个16位数据,按照地址映射,在STM32中我把地址写入0x02,。实际测试发现这个地址上的数据是
[单片机]
使用DOSBox编译汇编代码
安装 DOSBox:https://blog.csdn.net/qq_44989881/article/details/117266756 配置环境变量 添加后,在DOSBox控制台中输入 masm,显示如图所示,说明环境变量配置成功。 新建一个ASM文件 文件内容: assume cs:code code segment mov ax,1000H add ax,ax mov bx,2000H add bx,bx mov ax,4C00H int 21H code ends end 在DOSBox控制台输入以下指令: mount c: d:Asm c
[单片机]
使用DOSBox<font color='red'>编译</font>汇编<font color='red'>代码</font>
IDA反编译STM32 Hex\Bin文件成C代码
IDA是一款功能强大的反编译软件,网上找了许久没找到它的使用教程,经过摸索可将STM32的hex文件进行反汇编,操作步骤如下,首先下载IDA Pro版破解软件,免安装。 IDA Pro下载链接:https://pan.baidu.com/s/14UyF40mzg17byfnlaWgPwQ 如果文件为bin文件,可使用bin转hex工具转为hex格式, BinToHex下载链接:https://pan.baidu.com/s/1u8ewOrs3H5LOfMUGioNEuw 提取码:20jr 1、打开解压后目录下的idaq.exe可执行文件,点击 - 看到如下界面, 2、打开hex文件弹出提示 3、【pro
[单片机]
IDA反<font color='red'>编译</font>STM32 Hex\Bin文件成C<font color='red'>代码</font>
基于2.6.19内核的小型Linux系统制作与移植
引言 ARM9 S3C2410微处理器与Linux的结合越来越紧密,逐渐在嵌入式领域得到广范的应用。目前,在便携式消费类电子产品、无线设备、汽车、网络、存储产品等都可以看到S3C2410与Linux相结合的身影。 S3C2410微处理器是一款由Samsung公司为手持终端设计的低价格、低功耗、高性能,基于ARM920T核的微处理器。它带有内存管理单元(MMU),采用0.18mm工艺和AMBA新型总线结构,主频可达203MHz。同时,它支持Thumb 16位压缩指令集,从而能以较小的存储空间获得32位的系统性能。 在众多嵌入式操作系统中,Linux目前发展最快、应用最为广泛 。性能优良、源码开放的Linux具有体积小、内核可裁
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved