因此,我正在尝试编译代码,用C语言编写,用于linux中的msp430fx。我最近重新编译了一个新版本的mspgcc,因为以前使用的是4.3,它与扩展模式(20位-mlarge)不兼容/不稳定。
我跟踪了这个站点。
安装后,我运行了一个简单的(main,调用一些随机函数),它编译得很好,但现在,编译这个大项目,我在结束这个错误:
bsp 430-gcc build/MoteISTv5_mspgcc/projects/common/03oos_macpong_prog -mmcu=msp430f5438a -Wall -Wno-main -mlarge -O0 -g -ggdb -Lbuild/MoteISTv5 5_mspgcc/bsp/boards Lbuild/MoteISTv5 5_mspgcc/内核/openos-Lbuild/MoteISTv5 5_mspgcc/驱动程序-Lbuild/MoteISTv5 5_mspgcc/openstack -Lbuild/MoteISTv5_mspgcc/openapps -lopenstack -lopenapps -ldrivers -lbsp /opt/msp430-toolchain/lib/gcc/msp430-none-elf/4.9.1/../../../../msp430-none-elf/bin/ld:无法打开链接器脚本文件msp430f5438a.ld:没有这样的文件或目录collect2: ld返回了一个退出状态scon:* build/MoteISTv5_mspgcc/projects/common/03oos_macpong_prog错误1:因错误而终止了构建。
因为我对编译器不太了解,所以我需要一些帮助来解决这个问题。有人能帮忙吗?
先杀了他,
迪奥戈·格拉
发布于 2015-07-29 22:54:22
编辑:在这个新版本的gcc 430-elf-gcc这个函数被命名为_read_SR()而不是__read_status_register()。
======================= / ====================== / =====================
显然,我不得不将.ld文件的目录强制到带有-L的编译器标志中。
但是现在使用新的mspgcc 430-gcc v4.9.1,他不承认__read_status_register函数,而在mspgcc-遗留(4.6.3)中,他没有问题地编译.
我做了一些浏览,而且很明显,bin库不支持大多数__的“特定处理器功能”。他们说我们必须使用内联程序集来访问特殊寄存器,这是很尴尬的。“他们是否会移除这种支持?”
如果您需要使用内联程序集,这里是__read_status_register()的一个示例
static inline __attribute__((always_inline))
unsigned int __read_status_register( void){
unsigned int xReturn;
asm volatile( "MOV R2, %0"
: "=r" (xReturn)); // output parameters
return xReturn;
}要了解更多信息,您可以使用我发现非常有用的本站。
https://stackoverflow.com/questions/31644751
复制相似问题