这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » ADS,LPC2104 ADS创建工程问题——LPC2104(汇编)?

共2条 1/1 1 跳转至

ADS,LPC2104 ADS创建工程问题——LPC2104(汇编)?

院士
2006-09-17 18:14:16     打赏
ADS,LPC2104 ADS创建工程问题——LPC2104(汇编)?



关键词: LPC2104     创建     工程     问题     汇编    

院士
2006-12-22 22:43:00     打赏
2楼
问     本人初学ARM,购2104开发板已一个多月,看了实验板的相关资料和书,对LPC2104已有所了解。安装了ADS及EASYJTAG软件,按照资料提供的步骤进行了一些实验(光盘中的)都可进行调试并通过EASYJTAG下载到实验板上。今天想自己创建工程,用实验板提供的工程模板选择ARM Executable Image for lpc21xx创建工程,工程创建后在user文件夹中添加ledcon.c文件,然后进行编译,编译通过并进入AXD调试,也可下载到实验板,说明操作步骤没有错。
但本人想用汇编程序调试却出现了问题,编译不能通过。请问是否操作不正确还是有哪些设置错误。
    具体操作如下:选用asm for lpc21xx(也选用过ARM Executable Image for lpc21xx也不行)创建工程,工程创建后在user文件夹中添加ledcon.s文件,然后进行编译(LPC2106.INC文件已复制到工程所在的文件夹内)却出现以下提示:
Error   : L6218E: Undefined symbol main (referred from Startup.o).  Not enough information to list the image sizes and/or totals.  Finished: 1 information, 0 warning and 1 error messages.             请问是什么原因?
    工程的target文件及中只包含startup.s文件,文件描述如下:lpc21xx的启动代码,包含异常向量入口、初始化堆栈的代码等每个工程应当有独立的这个文件的拷贝,并进行相应的修改。
    工程中没有包含其他的启动文件(用ARM Executable Image for lpc21xx创建就会多了如下的文件:stack.s、heap.s、target.c)。
    请问该如何操作?
1: 请大虾帮帮忙! 2: 没有定义main标号,参看此帖:http://www.zlgmcu.com.cn/club/bbs/ShowAnnounce.asp?ID=44524 3: 问题已解决了,谢谢. 4: 怎样解决的? 5: 解决方法:没有定义main标号,参看此帖:
http://www.zlgmcu.com.cn/club/bbs/ShowAnnounce.asp?ID=44524

具体方法:用ARM Executable Image for lpc21xx工程模板建立工程,工程创建后在user文件夹中添加ledcon.s文件,打开ledcon.s文件,将START改为main,并加EXPORT main然后进行编译即可。
6: 这样加了.还是不行,编译没有成功;***********************************************************
;File:LEDCON.S
;功能:LED闪烁控制.对发光二极管LED4进行控制,采用软件延时方法
;     使用I/O口直接控制LED,采用灌电流方式
;说明:将跳线器JP8_LED4短接
;***********************************************************
            INCLUDE LPC2106.INC                ;引入头文件
        
LEDCON      EQU   0x00002000                   ;P0.13引脚控制LED4,低电平点亮

            AREA  LEDCONC, CODE, READONLY      ;声明程序代码块
            ENTRY
        
MAIN        EXPORT MAIN
    
            LDR      R0, =PINSEL0
            MOV   R1, #0x00000000
            STR   R1, [R0]
            LDR   R0, =PINSEL1
            STR   R1, [R0]
        
            LDR      R0, =IODIR
            LDR   R1, =LEDCON
            STR   R1, [R0]
        
MAIN_LOOP   LDR   R1, =LEDCON
LEDSET        LDR      R0, =IOSET
            STR      R1, [R0]
            BL    DELAYS
            
LEDCLR        LDR   R0, =IOCLR
            STR   R1, [R0]
            BL    DELAYS
            
            B     MAIN_LOOP
            
;***********************************************************
;名称:DELAYS
;功能:软件延时
;入口参数:无
;出口参数:无
;占用资源:R7
;***********************************************************
DELAYS
            MOV   R7, #0x000FF000
DELAYS_L1   SUBS  R7, R7, #1
            BNE      DELAYS_L1
            MOV      PC, LR
            
            ALIGN
            LTORG
            
            END

7: re:lluct你理解错了,应该是这样:
;******************************************************************************
; File:LEDCON.S
; 功能:LED闪烁控制。对发光二极管LED4进行控制,采用软件延时方法。
;      使用I/O口直接控制LED,采用灌电流方式。
; 说明:将跳线器JP8_LED4短接。
;******************************************************************************       
            INCLUDE        LPC2106.INC
               ; 引入头文件
            EXPORT main
LEDCON        EQU        0x000002000            ; P0.13引脚控制LED4,低电平点亮
    
            AREA       LEDCONC,CODE,READONLY         ; 声明程序代码块
            ENTRY                        ; 程序入口
        
main         LDR        R0,=PINSEL0            ; 装载寄存器地址,PINSEL0
            MOV        R1,#0x00000000        ; 设置数据,即设置管脚连接GPIO
            STR        R1,[R0]                ; [R0] <= R1
            LDR        R0,=PINSEL1
            STR        R1,[R0]

            LDR        R0,=IODIR                
            LDR        R1,=LEDCON
            STR        R1,[R0]                ; 设置LED控制口为输出
            
        
MAIN_LOOP    LDR        R1,=LEDCON            ; 设置GPIO控制参数
LEDSET        LDR        R0,=IOSET            
            STR        R1,[R0]                ; LED控制I/O置位,即LED4熄灭
            BL        DELAYS
        
LEDCLR        LDR        R0,=IOCLR
            STR        R1,[R0]                ; LED控制I/O复位,即LED4点亮
            BL        DELAYS
        
            B        MAIN_LOOP            ; 无条件跳转到MAIN_LOOP
        
;******************************************************************************
; 名称:DELAYS
; 功能:软件延时
; 入口参数:无
; 出口参数:无
; 占用资源:R7
;******************************************************************************
DELAYS    
            MOV        R7,#0x000FF000        ; 延时参数
DELAYS_L1    SUBS    R7,R7,#1            ; R7 = R7-1
            BNE        DELAYS_L1              ; 判断R7-1结果是否为0,若不为0则跳转
            MOV        PC,LR                ; 返回        
        
            ALIGN                        ; 数据字对齐
            LTORG                        ; 声明文字池
        
        
            END

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]