搜索
bottom↓
回复: 17

请教:如何解决CodeWarrior的Link Error:L822?

[复制链接]

出0入0汤圆

发表于 2014-7-10 10:58:12 | 显示全部楼层 |阅读模式
最近在调试基于飞思卡尔MC9S12XHY256的软件,开发环境是CodeWarrior V5.1。
编译的时候能通过,不过在Link的时候出现了以下错误:

Link Error   : L1822: Symbol _FCMP in file F:\Freescale\TFT_PRO\TFT_PRO_Data\Standard\ObjectCode\V2Vin.c.o is undefined
Link Error   : L1822: Symbol _FMUL in file F:\Freescale\TFT_PRO\TFT_PRO_Data\Standard\ObjectCode\V2Vin.c.o is undefined
Link Error   : L1822: Symbol _FUTRUNC in file F:\Freescale\TFT_PRO\TFT_PRO_Data\Standard\ObjectCode\V2Vin.c.o is undefined
Link Error   : L1822: Symbol _FDIV in file F:\Freescale\TFT_PRO\TFT_PRO_Data\Standard\ObjectCode\V2Vin.c.o is undefined
Link Error   : Link failed

我是在main.c里面调用了V2Vin.c里面的函数,出现问题的两个函数,均包含浮点型变量。
函数1入参为浮点型变量,函数2入参为结构体,里面包含两个浮点型变量。
调用其他未包含浮点型变量的函数则没问题。

我在新建工程时,没有选择支持浮点型变量。如果我去选择的话,则Link能通过,但是其他功能都不正常了。

我在论坛获得了大家很多的帮助,无以为报,这里选择悬赏莫元的方式来感谢为这里帮助我的人。
莫元不多,聊表心意。谢谢大家!

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2014-7-10 10:58:35 | 显示全部楼层
自己沙发一下

出0入0汤圆

 楼主| 发表于 2014-7-10 11:06:23 | 显示全部楼层
补充一句,我在原工程把浮点型变量宏定义为长整型变量也不能Link

出0入0汤圆

 楼主| 发表于 2014-7-10 11:28:52 | 显示全部楼层
没有人看到吗

出0入0汤圆

发表于 2014-7-10 11:57:25 | 显示全部楼层
如果工程中用到浮点变量的话,那新建工程是要选择浮点库的。
把你的工程发上来看看

出0入0汤圆

 楼主| 发表于 2014-7-10 11:59:46 | 显示全部楼层
FSL_TICS_LY 发表于 2014-7-10 11:57
如果工程中用到浮点变量的话,那新建工程是要选择浮点库的。
把你的工程发上来看看 ...

我也想发,不过按照公司规定不能发。

出0入0汤圆

 楼主| 发表于 2014-7-10 12:00:44 | 显示全部楼层
我在这里贴一些代码吧,其中,注释掉的是有问题的
  1. static void s_DispExtVideo( void )
  2. {
  3.     T_V2VINBCD_SCALE tV2VinBcdScale;
  4.     T_V2VINBCD_AREA  tV2VinBcdArea;
  5.    
  6.     V2VdcCont(128);
  7.     V2VdcBright(32);
  8.      
  9.     V2VinBcdExtSync(TRUE);  // External synchronization control
  10.     //V2VinBcdXPos(8);        // Backdrop plane display start coordinate setting
  11.     V2VinBcdXFlip(FALSE);   // Backdrop plane mirror inversion function
  12.    
  13.     tV2VinBcdScale.Enable = TRUE;
  14.     tV2VinBcdScale.Fx = 864;
  15.     tV2VinBcdScale.Fy = 625;
  16.     tV2VinBcdScale.Mode = 0;
  17.     //V2VinBcdScale( &tV2VinBcdScale );   // Backdrop plane scaling setting

  18.     tV2VinBcdArea.Sx = 1;
  19.     tV2VinBcdArea.Sy = 1;
  20.     tV2VinBcdArea.Height = 799;
  21.     tV2VinBcdArea.Width = 479;
  22.     V2VinBcdArea( &tV2VinBcdArea );     // Backdrop plane display area specification
  23.    
  24.    
  25.     V2VinBcdDisp( TRUE, FALSE, 0 );     // Backdrop plane - Display control
  26. }
复制代码

出0入0汤圆

 楼主| 发表于 2014-7-10 12:01:50 | 显示全部楼层
我再加上那个结构体,F32就是float
  1. typedef struct {
  2.         Bool Enable;                                        /* Scaling function ON/OFF                                */
  3.         U08 Mode;                                                /* Interpolation Method Selection                 */
  4.         F32 Fx;                                                        /* X Scaling Setting                                        */
  5.         F32 Fy;                                                        /* Y Scaling Setting                                        */
  6. } T_V2VINBCD_SCALE
复制代码

出0入0汤圆

 楼主| 发表于 2014-7-10 12:02:56 | 显示全部楼层
FSL_TICS_LY 发表于 2014-7-10 11:57
如果工程中用到浮点变量的话,那新建工程是要选择浮点库的。
把你的工程发上来看看 ...

有同事建议我看看是不是头文件没有包含完全的问题,我仔细找过,都包含了。

出0入0汤圆

发表于 2014-7-10 12:06:58 | 显示全部楼层
你刚开始的帖子里边说如果选择浮点支持的话,别的功能就出问题,那出的问题是什么问题?

出0入0汤圆

 楼主| 发表于 2014-7-10 12:08:56 | 显示全部楼层
FSL_TICS_LY 发表于 2014-7-10 12:06
你刚开始的帖子里边说如果选择浮点支持的话,别的功能就出问题,那出的问题是什么问题? ...

有可能是工程环境设置的问题,具体我还没找到原因。
出现的问题是:用非浮点的工程可以用SPI读写外围芯片,用浮点的工程则不行。

出0入0汤圆

发表于 2014-7-10 12:38:03 | 显示全部楼层
建议楼主还是把时间用在解决SPI读外围芯片的问题上。
程序里边有浮点变量,支持浮点的库是必须的。
实际上,在新建工程的时候,选不选择浮点的支持主要是选择工程中是否要添加支持浮点的库。这个库存在CW V5.1安装目录的{cw}\lib\HC12c\lib。
库的说明在{CWS12v5.1}\lib\HC12c的readme.txt.

出0入0汤圆

 楼主| 发表于 2014-7-10 14:30:06 | 显示全部楼层
FSL_TICS_LY 发表于 2014-7-10 12:38
建议楼主还是把时间用在解决SPI读外围芯片的问题上。
程序里边有浮点变量,支持浮点的库是必须的。
实际上 ...

那请问,已经建立好的工程(我不想重新新建一个),能设置使用浮点库吗?
如果能,应该怎么设置呢?

出0入0汤圆

发表于 2014-7-10 10:58:13 | 显示全部楼层
可以,楼主可以新建一个带浮点的工程,然后看看这个新建工程中用到的是那个库。然后在你的工程里边,右键点击工程中包含的库,remove掉,再右键点击,add files添加相应的库文件。
还有,比较一下新建工程中“Edit”->“standard settings”中的compiler options和你自己工程中的编译选项,修改与floating有关的选项。

出0入0汤圆

发表于 2014-7-10 14:40:38 | 显示全部楼层
更换Lib库的图片

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2014-7-10 15:29:50 | 显示全部楼层

好的,谢谢啊,我刚才新建带浮点库的工程,已经可以正常编译和通信了,谢谢啊

出0入0汤圆

发表于 2014-7-10 15:37:49 | 显示全部楼层
不用客气

出0入0汤圆

发表于 2014-9-4 09:59:57 | 显示全部楼层
进来学习一下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 13:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表