Microchip
直播中

h1654155275.5795

7年用户 213经验值
私信 关注
[问答]

替换C ++的启动代码:需要crtbegin和crtend

嗨,我正在尝试制作一个定制的CRT0. S文件。首先,我将Microchip的版本复制到我的目录中,将其添加到项目中,并告诉链接器不要包含默认的启动代码。我的代码启动和运行。扭曲是我使用C++,而我的静态对象的构造函数没有被调用。比较起作用的版本(默认启动)和我的版本中的映射文件,我发现我需要crtn.S、crti.S、crtstart.S和crtend.S。有大量的CRTSKE.O和CRADID.O文件,所以即使抓取其中的一个就足够了,我不知道该抓取哪一个(我使用的是PIC32 MZ2048 EFH064)。有人能帮助我获得完整的C++启动代码吗?谢谢你,鲍伯

回帖(1)

陈发赫

2019-10-24 14:31:49
没关系,我想出了一个解决方案:MAP文件指定CRTSCANT.O、CRADEY、O等文件的完整路径。所以我告诉链接器不要包括标准的启动库,复制在这四个.o文件上,然后将它们与我定制的crt0.S.-Bob一起添加到我的项目中。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分