搜索
bottom↓
回复: 8

RVMDK 4.10编译出现这样的错误!Error: L6218E: Undefined symbol FIQ_Handler (refer

[复制链接]

出0入0汤圆

发表于 2010-11-12 11:22:51 | 显示全部楼层 |阅读模式
如题,错误信息如下:
TEST.axf: Error: L6218E: Undefined symbol DAbt_Handler (referred from aduc702x.o).
TEST.axf: Error: L6218E: Undefined symbol FIQ_Handler (referred from aduc702x.o).
TEST.axf: Error: L6218E: Undefined symbol IRQ_Handler (referred from aduc702x.o).
TEST.axf: Error: L6218E: Undefined symbol PAbt_Handler (referred from aduc702x.o).
TEST.axf: Error: L6218E: Undefined symbol SWI_Handler (referred from aduc702x.o).
TEST.axf: Error: L6218E: Undefined symbol Undef_Handler (referred from aduc702x.o).
不知大家有没有碰到,我也没有用到中断,只是一个简单的跑马灯例程。例程是用一个很老的版本realview2.xx建立的,有代码量限制,就换了现在的高版本。

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2010-11-12 11:24:49 | 显示全部楼层
启动文件也是用的默认的,怎么搞啊,浪费几天了!!!!

(原文件名:未命名.JPG)

出0入0汤圆

发表于 2010-11-13 01:25:13 | 显示全部楼层
就是那几个函数没有定义

出0入0汤圆

 楼主| 发表于 2010-11-13 14:00:15 | 显示全部楼层
回复【2楼】superyongzhe  最后的骑士
-----------------------------------------------------------------------

我都没有用到哪些函数!就只有一个Test.c:
         /*********************************************************************
   作者:QCM
   功能:SPI接口测试,实现跑马灯显示
*********************************************************************/
#include<ADuC7026.h>
/*****************************************************************************/
unsigned char results[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
/*****************************************************************************/
void delay(int lengh)
{
  while(lengh>0)
     lengh--;
}
/*****************************************************************************/
int main()
{
        int i = 0;
       
        GP1CON = 0x22220000;        // 配置SPI总线
        SPIDIV = 0xCC;                        // 配置SPI 时钟 40960000/(2x(1+SPIDIV))
                                                    // 0xCC = 100kHz
        SPICON = 0x104B;                // 使能SPI主机,连续转换模式
                                               
    while(1)
   {       
      
           SPITX = 0xff;
           for (i=0;i<8;i++) // 跑马灯顺序显示
           {
             SPITX = results;                                  
                 delay(200000);
           }
           delay(400000);
           SPITX = 0xff;   
           for (i=7;i>=0;i--) // 跑马灯反序显示
           {
              SPITX = results;                                  
                  delay(200000);
           }   
    }
}
/*****************************************************************************/

出0入0汤圆

发表于 2010-11-13 18:56:48 | 显示全部楼层
还有初始化代码可能使用这写函数,这里面的几个函数都是arm的异常中断处理函数。

出0入0汤圆

发表于 2010-11-13 20:52:56 | 显示全部楼层
看来是MDK为aduc72xx提供的启动代码的问题。我用MDK生成了一个试试,发现这些符号都是"EXTERN"的,看起来是要求自己动手实现这几个异常向量。在test.c中添加以下代码把这几个需要连接进入的函数加入就可以了
void DAbt_Handler(void)
{
        while(1);
}
void FIQ_Handler(void)
{
        while(1);
}
__asm void IRQ_Handler(void)
{
        // todo: 响应中断
}
void PAbt_Handler(void)
{
        while(1);
}
void SWI_Handler(void)
{
        while(1);
}
void Undef_Handler(void)
{
        while(1);
}

要注意的是IRQ_Handler()通常是必须要实现的,除非系统不使用中断。而且这个函数最好用汇编写,因为需要保护现场和操作寄存器。可以在保护现场后再调用一个C函数

出0入0汤圆

 楼主| 发表于 2010-11-19 16:04:42 | 显示全部楼层
回复【6楼】bluelucky  
-----------------------------------------------------------------------
谢谢啊,还是没有解决,我移植到IAR了。按你的方法,编译没有问题,可是下载仿真的时候一点反应也没有,运行的还是原来的程序!感觉程序没有下载进去。而且仿真的时候C程序中都没有那个指示运行步骤的朝右的箭头,反汇编窗口有!

出0入0汤圆

 楼主| 发表于 2010-11-19 16:05:49 | 显示全部楼层

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

本版积分规则

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

GMT+8, 2024-5-14 00:29

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

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