28103|15

221

帖子

2

TA的资源

一粒金砂(高级)

楼主
 

老是出这个错误L6218E:undefined symbol GPIO_PORT_D_ISR(referred from startup.o) [复制链接]

在EK-LM3S8962上玩光盘上的例程,PWMGEN,想给它加个中断,不让蜂鸣器老是一直响。
我只加了个中断服务,
void
GPIO_PORT_D_ISR(void)
{
    unsigned char ucKey;
    unsigned long ulStatus;
   
    ulStatus = GPIOPinIntStatus(GPIO_PORTD_BASE, true);
    GPIOPinIntClear(GPIO_PORTD_BASE, ulStatus);
   
    if(ulStatus & GPIO_PIN_7)
    {
        ucKey = GPIOPinRead(GPIO_PORTC_BASE, GPIO_PIN_4);
        ucKey = ucKey>>1;
        ucValue = ucValue + ucKey;
        //ucValue = ucValue<<1;
        if(ucValue==0x10)
            PWMGenDisable(PWM_BASE, PWM_GEN_0);
        if(ucValue==0x20)
            PWMGenEnable(PWM_BASE, PWM_GEN_0);
    }
}
/*当按下按键1(外设)时,停止发声;按键2开始发声*/
结果问题出来了,编译的时候老是提示
pwmgen.axf: Error: L6218E: Undefined symbol GPIO_PORT_D_ISR (referred from startup.o).

看了网上的提示,说是缺文件,我干脆就把所有的库都加里面了,但是还是不行啊,一直出这个提示!
那位高人帮帮我~~~:(" />" />


我把整个工程都贴上来,大家帮我看看~~~~~~~~~~~~

[ 本帖最后由 sptt1 于 2010-9-15 08:31 编辑 ]

pwmgen.rar

41.79 KB, 下载次数: 12

复件pwmgen.rar

953.29 KB, 下载次数: 16

最新回复

我也遇到过这样的问题,估计楼主已经解决了,给后面看到的一点建议吧。 我在startup.s上改了这么一个地方! DCD IntDefaultHandler ; GPIO Port A DCD IntDefaultHandler ; GPIO Port B DCD IntDefaultHandler ; GPIO Port C DCD GPIO_PORT_D_ISR ; GPIO Port D DCD IntDefaultHandler ; GPIO Port E 我在8楼的基础上多了一个一条语句 DCD IntDefaultHandler ; GPIO Port A DCD IntDefaultHandler ; GPIO Port B DCD IntDefaultHandler ; GPIO Port C EXTERN        GPIO_Port_D_ISR DCD GPIO_PORT_D_ISR ; GPIO Port D DCD IntDefaultHandler ; GPIO Port E 就是中间那条语句,中断就可以用了!  详情 回复 发表于 2012-5-4 15:36
 
点赞 关注

回复
举报

1412

帖子

15

TA的资源

版主

沙发
 
有没有用IMPORT导入这个函数呢?把整个工程贴上来看看
 
个人签名https://bbs.eeworld.com.cn/thread-471646-1-1.html
欢迎加入我的团队
 

回复

2641

帖子

0

TA的资源

五彩晶圆(中级)

板凳
 
你没有加引用,像这种#include "inc/hw_ints.h"
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(高级)

4
 
你的startup那个启动代码文件里面,有没有注册这个函数啊
 
 
 

回复

109

帖子

0

TA的资源

纯净的硅(初级)

5
 

回复

兄弟,这个不是简单的8bit的MCU,它的中断也不是8bit的那么去调用,它是需要通过中断管理来进行的.
请参考LM3S8962开发包里面interrupts.c里面进行中断处理.
函数给你只是方便编程,但你还需要了解中断机理.
如果你还不明白请加1246696660.
 
 
 

回复

221

帖子

2

TA的资源

一粒金砂(高级)

6
 
原帖由 fengzhang2002 于 2010-9-14 17:41 发表 你没有加引用,像这种#include "inc/hw_ints.h"


#include "hw_ints.h"
#include "hw_memmap.h"
#include "hw_types.h"
#include "debug.h"
#include "gpio.h"
#include "pwm.h"
#include "interrupt.h"
#include "sysctl.h"
#include "diag.h"
#include "rit128x96x4.h"

这些是我包含的头文件,不知道全不全!
 
 
 

回复

221

帖子

2

TA的资源

一粒金砂(高级)

7
 
二楼的youki12345,很感谢你的帮忙
但是你说的IMPORT,我不知道怎么添加,在哪里添加!
能详细说明下吗?
 
 
 

回复

221

帖子

2

TA的资源

一粒金砂(高级)

8
 
我在startup.s上改了这么一个地方!
        DCD     IntDefaultHandler           ; GPIO Port A
        DCD     IntDefaultHandler           ; GPIO Port B
        DCD     IntDefaultHandler           ; GPIO Port C
        DCD     GPIO_PORT_D_ISR           ; GPIO Port D
        DCD     IntDefaultHandler           ; GPIO Port E
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(高级)

9
 
小盆友,你……,有没有看到#ifdef ,#endif……
#ifdef  DEBUG
void
__error__(char *pcFilename, unsigned long ulLine)
{
}

void GPIO_PORT_D_ISR(void)
{……}

#endif
 
 
 

回复

221

帖子

2

TA的资源

一粒金砂(高级)

10
 
看到了,这个是什么意思啊?
给说说大侠
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(高级)

11
 

回复 10楼 sptt1 的帖子

#ifdef DEBUG
void
__error__(char *pcFilename, unsigned long ulLine)
{
}
#endif

void GPIO_PORT_D_ISR(void)
{……}
 
 
 

回复

1412

帖子

15

TA的资源

版主

12
 

原帖由 sptt1 于 2010-9-15 08:46 发表 二楼的youki12345,很感谢你的帮忙但是你说的IMPORT,我不知道怎么添加,在哪里添加!能详细说明下吗?

 

给你传个TI的interrup的例子,你仔细看startup_rvmdk.S文件中的

 

;******************************************************************************
;
; External declarations for the interrupt handlers used by the application.
;
;******************************************************************************
        EXTERN  IntGPIOa
        EXTERN  IntGPIOb
        EXTERN  IntGPIOc

;******************************************************************************

 

这一段,就是声明

 

interrupts.rar (120.09 KB, 下载次数: 55)

 
个人签名https://bbs.eeworld.com.cn/thread-471646-1-1.html
欢迎加入我的团队
 
 

回复

802

帖子

24

TA的资源

五彩晶圆(中级)

13
 

原帖由 mawenwei 于 2010-9-15 09:12 发表 #ifdef DEBUG void __error__(char *pcFilename, unsigned long ulLine) { } #endif void GPIO_PORT_D_ISR(void) {……}

这也是我第一个想法,照此修改后我试了一下

输出:

Build target 'pwmgen'
assembling Startup.s...
compiling pwmgen.c...
pwmgen.c(75): error:  #20: identifier "ucValue" is undefined
compiling rit128x96x4.c...
compiling uvision.c...
Target not created

还是不行,我也不明白为什么

 

 
个人签名生活在激情中 ... 希望 哈哈

https://home.eeworld.com.cn/?80086
 
 

回复

69

帖子

0

TA的资源

一粒金砂(高级)

14
 
pwmgen.c(75): error:  #20: identifier "ucValue" is undefined

楼主提到的问题解决了对不?那现在说这个东西没定义,定义一下就好了,unsigned char  ucValue ?
 
 
 

回复

221

帖子

2

TA的资源

一粒金砂(高级)

15
 
感谢楼上各位的帮忙,谢啦
 
 
 

回复

19

帖子

0

TA的资源

一粒金砂(中级)

16
 
我也遇到过这样的问题,估计楼主已经解决了,给后面看到的一点建议吧。
我在startup.s上改了这么一个地方!
DCD IntDefaultHandler ; GPIO Port A
DCD IntDefaultHandler ; GPIO Port B
DCD IntDefaultHandler ; GPIO Port C
DCD GPIO_PORT_D_ISR ; GPIO Port D
DCD IntDefaultHandler ; GPIO Port E

我在8楼的基础上多了一个一条语句
DCD IntDefaultHandler ; GPIO Port A
DCD IntDefaultHandler ; GPIO Port B
DCD IntDefaultHandler ; GPIO Port C

EXTERN        GPIO_Port_D_ISR

DCD GPIO_PORT_D_ISR ; GPIO Port D
DCD IntDefaultHandler ; GPIO Port E

就是中间那条语句,中断就可以用了!
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表