汇编的一个问题

[复制链接]
2887|8
 楼主| ntao0227 发表于 2009-9-29 18:52 | 显示全部楼层 |阅读模式
各位大侠,你们好!
今天用汇编写一个GPIO的程序段(不折不扣的菜鸟),可是编译有错误,不知问题出在什么地方,望指教!

硬件:LPC2103

编译软件:Keil MDK

错误提示:
Build target 'Target 1'
assembling 01GPIO.s...
linking...
01GPIO.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST.
"01GPIO.axf" - 1 Error(s), 0 Warning(s).

程序如下:
PINSEL0    EQU    0xE002C000
IOCLR    EQU    0xE002800C
IODIR    EQU    0xE0028008
IOPIN    EQU    0xE0028000
IOSET    EQU    0xE0028004

        AREA    GPIO,CODE,READONLY
        ENTRY
        CODE32
START    LDR        R0,=PINSEL0            ; 装载寄存器地址,PINSEL0
        MOV        R1,#0xFFFFFF3F
        STR        R1,[R0]               
        LDR        R0,=IODIR               
        MOV        R1,#0x00000008
        STR        R1,[R0]
        LDR        R0,=IOCLR               
        MOV        R1,#0x00000008
        STR        R1,[R0]
        
        END
duojinian 发表于 2009-9-30 09:01 | 显示全部楼层
code程序段 DATA register寄存器段要分开
 楼主| ntao0227 发表于 2009-9-30 19:24 | 显示全部楼层
汗颜!不怎么明白楼上的意思。能再说的详细一点吗?
Foreverzhang 发表于 2009-9-30 23:09 | 显示全部楼层
二楼是说“CODE32”这个地方吗???还真不知道这是什么???
machunshui 发表于 2009-10-1 09:07 | 显示全部楼层
呵呵,很少看到ARM的汇编,很多人吧汇编等同于51了.
这是链接错误.

与IDE相关设置也是有关系的,
发个完整工程项目文件上来有利于解决问题
machunshui 发表于 2009-10-1 09:15 | 显示全部楼层
本帖最后由 machunshui 于 2009-10-1 09:16 编辑

PRESERVE8
                AREA    GPIO,CODE,READONLY
                ARM
                ENTRY

代替

        AREA    GPIO,CODE,READONLY
        ENTRY
        CODE32


看一下.


楼主的伪代码格式好像是ADS的
 楼主| ntao0227 发表于 2009-10-7 19:43 | 显示全部楼层
谢谢!
楼上的方法我试了,问题依旧,错误提示和原来一样的。
arm_fan168 发表于 2009-10-7 20:26 | 显示全部楼层
参考一下keil MDK开发环境自带的汇编启动代码的伪指令格式。
 楼主| ntao0227 发表于 2009-10-9 09:30 | 显示全部楼层
楼上的方法不错,就是伪代码没有注释。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

124

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部