在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2701|回复: 0

[原创] [求助]C55的link问题

[复制链接]
发表于 2007-4-6 14:35:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 cjsb37 于 2013-4-29 09:10 编辑

link的时候,试图将.data section或自己定义的初始化数据段(比如.sect "coef" link到30000h地址上去,但linker报错,信息如下:
<Linking>
>>   error: relocation overflow occured at address 0x00000037 in TEXT section
            '.text' of input file
            'D:\user\anzp\DDSPC16\DDSPC16\CCS\test\Debug\test.obj'.  The 17-bit
            relocated address 0x1a100 is too large to encode in the 16-bit
            signed field. You may need to add a mask to the assembly
            instruction or use other target specific assembly features if you
            really only need the lowest 16 bits of this symbol. Please see the
            section on Relocation in the Assembly User's Guide.
(注:我的工程名是test)
我不能完全明白上述error信息想要传达的意义,但是很明显这些全局变量段只能放到0-FFFF(字地址)上。另外我也知道C55的程序和数据总线都为24位(当然数据总线实际为23位),可error 信息里面又为什么提到指令中16位的分支编码呢?

请问,这是为什么,又如何解决呢?谢谢!

PS:我在程序中把.data段的首地址指针用amov指令放入一个辅助地址寄存器,或许是这个原因。但是link却对.bss段没有这个限制阿。
code里面是这么写的:
  .data
IN_DATA int 1,2,3, 4
  .bss OUT_DATA, 4

  .text
AMOV #IN_DATA, XAR0
AMOV #OUT_DATA,XAR1

难道c55的linker对初始化的全局变量有这方面的限制?谢谢!





您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-16 20:28 , Processed in 0.018235 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表