首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MPLAB X32编译器和将函数移到内存中会导致链接器错误。

MPLAB X32编译器和将函数移到内存中会导致链接器错误。
EN

Stack Overflow用户
提问于 2021-12-06 19:55:33
回答 1查看 195关注 0票数 0

我使用微芯片XC32 C编译器和工具为SAM E70处理器构建可执行文件。

我必须创建一个从RAM而不是ROM/Flash执行的函数,因为这个函数使用特殊的指令在Flash开头读取一个唯一的128位。

所以我定义了函数的开头,如下所示:

代码语言:javascript
复制
__ramfunc__ void ReadUniqueID(uint32_t *pdwUniqueID)
{
    uint32_t status;

    if (pdwUniqueID == NULL)
        return;
    printf("ReadUniqueID begin\r\n", pdwUniqueID[0]);

根据文档,__ramfunc__应该确保函数从ram中执行。

但是,当链接时,会发生以下错误。

代码语言:javascript
复制
c:\program files\microchip\xc32\v3.01\bin\bin\..\..\lib\gcc\pic32c\8.3.1\..\..\..\..\bin\bin/pic32c-ld.exe: Link Warning: attributes for input section '.RAMFUNC$.__stub' conflict with output section '.RAMFUNC$'
c:\program files\microchip\xc32\v3.01\bin\bin\..\..\lib\gcc\pic32c\8.3.1\..\..\..\..\bin\bin/pic32c-ld.exe: section .text.Reset_Handler%184 LMA [0044ba08,0044bb8b] overlaps section .text%180 LMA [0044b3bc,0044ba0f]
c:\program files\microchip\xc32\v3.01\bin\bin\..\..\lib\gcc\pic32c\8.3.1\..\..\..\..\bin\bin/pic32c-ld.exe: section .bss%44 VMA [2045fff4,2045ffff] overlaps section .RAMFUNC$ VMA [2045ff58,20460007]
Link Error: can't load section .RAMFUNC$ contents

任何帮助或指示都将不胜感激.

EN

回答 1

Stack Overflow用户

发布于 2021-12-08 17:27:59

问题是我在"ramfunc“函数中使用printf()。移除printf()的文件,所有操作都按预期进行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70251189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档