共2条
1/1 1 跳转至页
ADS,LPC2104 ADS创建工程问题——LPC2104(汇编)?
问
本人初学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
但本人想用汇编程序调试却出现了问题,编译不能通过。请问是否操作不正确还是有哪些设置错误。
具体操作如下:选用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 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |