这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » 【已解决】怎样解决在工程选项中,选中use microlib之后,连接时出错的问

共7条 1/1 1 跳转至

【已解决】怎样解决在工程选项中,选中use microlib之后,连接时出错的问题

高工
2013-06-16 19:11:29     打赏

原问题

.\chip_stm32f407vg\kernel-rom.sct: Error: L6218E: Undefined symbol __initial_sp (referred from entry2.o).

这是个什么错误啊?

我把ST库弄到工程里边,刚开始还好  后来不知道怎么回事就出来这么个错误

编译环境搜MDK471

__initial_sp  没有定义,可这个东西在sct中好像没有用到啊

找到问题所在:是在工程选项卡中选中了use microlib,之后就报错

问题补充:


怎样解决在工程选项中,选中use microlib之后,连接时出错的问题(工程选项的Target选项卡)

使用microlib,可以很方便地使用诸如printf之类的东西

但是工程中,如果选中该选项,会报如下错误:

.\chip_stm32f407vg\kernel-rom.sct: Error: L6218E: Undefined symbol __initial_sp (referred from entry2.o).

错误应该就是没有为__initial_sp这个东西安排空间,但是我不知道怎么写sct分散加载描述符。谁能帮帮忙




关键词: 解决     怎样     工程     选项     选中     microlib         

菜鸟
2013-06-16 21:27:09     打赏
2楼
关于 microlib
microlib 是缺省 C 库的备选库。 它用于必须在极少量内存环境下运行的深层嵌入式应用程序。 这些应用程序不在操作系统中运行。microlib 不会尝试成为符合标准的 ISO C 库。

microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。某些库函数的运行速度也比较慢,例如,memcpy()。


还有我想知道你添加的ST的库指的是什么库?


高工
2013-06-17 12:04:25     打赏
3楼

microlib跟创建工程时候添加的那个.s文件有关系。uT中取消了那个汇编文件,也就取消了那个initial_sp。因此不能再像以前那样使用了。

虽然这样,我还是想用用着破东西。


菜鸟
2013-06-17 13:39:25     打赏
4楼

我也用过,而且选过use microlib , 在工具版本MDK421, MDK423中,没有出现上述link错误。

可以尝试退一个版本。


高工
2013-06-17 17:06:10     打赏
5楼
你没有用uTenux吧?utenux改写了启动文件.s

菜鸟
2013-06-21 17:46:36     打赏
6楼
o,是uTenux, 这个没用过。 改掉了.s 启动代码构成的话,只能手动改了

菜鸟
2015-06-18 11:16:48     打赏
7楼
我也出现过这样的问题,把#include“stdio.h”替换成#include<stdio.h>,然后勾选microlib,就没有报错了。

共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]