打印
[STM8]

stm8s汇编编译出错

[复制链接]
1801|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lwag|  楼主 | 2015-9-6 14:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如下:Error 56: unrecognised opcode '#include "mapping.inc"'


程序如下:
stm8/

#include "mapping.inc"

PB_ODR EQU $5005
PB_IDR EQU $5006
PB_DDR EQU $5007
PB_CR1 EQU $5008
PB_CR2 EQU $5009

stack_start.w EQU $stack_segment_start
stack_end.w   EQU $stack_segment_end

segment 'rom'
main.l
ldw X, #stack_end
ldw SP, X

ld A, #$20
ld PB_DDR, A        ;Set to Output
ld A, #$20
ld PB_CR1, A        ;Set to PushPull
ld A, #$00
ld PB_CR2, A        ;2MHz

main_loop.l
ld A, #$20
ld PB_ODR, A        ;PB.5 set to 1
ld A, #100
call delay_ms
ld A, #$00
ld PB_ODR, A        ;PB.5 set to 0
ld A, #100
call delay_ms
jra main_loop

delay_ms.l
push A
ld A, #250
delay_ms_1.l
nop
nop
nop
nop
nop
dec a
jrne delay_ms_1
pop a
dec a
jrne delay_ms
ret

interrupt NonHandledInterrupt
NonHandledInterrupt.l
iret

segment 'vectit'
dc.l {$82000000+main}                                                                        ; reset
dc.l {$82000000+NonHandledInterrupt}        ; trap
dc.l {$82000000+NonHandledInterrupt}        ; irq0
dc.l {$82000000+NonHandledInterrupt}        ; irq1
dc.l {$82000000+NonHandledInterrupt}        ; irq2
dc.l {$82000000+NonHandledInterrupt}        ; irq3
dc.l {$82000000+NonHandledInterrupt}        ; irq4
dc.l {$82000000+NonHandledInterrupt}        ; irq5
dc.l {$82000000+NonHandledInterrupt}        ; irq6
dc.l {$82000000+NonHandledInterrupt}        ; irq7
dc.l {$82000000+NonHandledInterrupt}        ; irq8
dc.l {$82000000+NonHandledInterrupt}        ; irq9
dc.l {$82000000+NonHandledInterrupt}        ; irq10
dc.l {$82000000+NonHandledInterrupt}        ; irq11
dc.l {$82000000+NonHandledInterrupt}        ; irq12
dc.l {$82000000+NonHandledInterrupt}        ; irq13
dc.l {$82000000+NonHandledInterrupt}        ; irq14
dc.l {$82000000+NonHandledInterrupt}        ; irq15
dc.l {$82000000+NonHandledInterrupt}        ; irq16
dc.l {$82000000+NonHandledInterrupt}        ; irq17
dc.l {$82000000+NonHandledInterrupt}        ; irq18
dc.l {$82000000+NonHandledInterrupt}        ; irq19
dc.l {$82000000+NonHandledInterrupt}        ; irq20
dc.l {$82000000+NonHandledInterrupt}        ; irq21
dc.l {$82000000+NonHandledInterrupt}        ; irq22
dc.l {$82000000+NonHandledInterrupt}        ; irq23
dc.l {$82000000+NonHandledInterrupt}        ; irq24
dc.l {$82000000+NonHandledInterrupt}        ; irq25
dc.l {$82000000+NonHandledInterrupt}        ; irq26
dc.l {$82000000+NonHandledInterrupt}        ; irq27
dc.l {$82000000+NonHandledInterrupt}        ; irq28
dc.l {$82000000+NonHandledInterrupt}        ; irq29
end


大家帮忙看看?万分感谢。
沙发
lwag|  楼主 | 2015-9-6 14:10 | 只看该作者
补充一下,用的是ST官方的汇编编译器

使用特权

评论回复
板凳
bobo5650| | 2015-9-6 14:42 | 只看该作者
#号不要顶最左边写

使用特权

评论回复
地板
lwag|  楼主 | 2015-9-6 15:04 | 只看该作者
我把#include前加Tab,指令前加Tab,标号顶格写,程序如下:
stm8s/

        #include "mapping.inc"

PB_ODR EQU $5005
PB_IDR EQU $5006
PB_DDR EQU $5007
PB_CR1 EQU $5008
PB_CR2 EQU $5009

stack_start.w EQU $stack_segment_start
stack_end.w   EQU $stack_segment_end

        segment 'rom'
main.l
        LDW X, #stack_end
        LDW SP, X

        ld A, #$20
        ld PB_DDR, A        ;Set to Output
        ld A, #$20
        ld PB_CR1, A        ;Set to PushPull
        ld A, #$00
        ld PB_CR2, A        ;2MHz

main_loop.l
        ld A, #$20
        ld PB_ODR, A        ;PB.5 set to 1
        ld A, #100
        call delay_ms
        ld A, #$00
        ld PB_ODR, A        ;PB.5 set to 0
        ld A, #100
        call delay_ms
        jra main_loop

delay_ms.l
        push A
        ld A, #250
        delay_ms_1.l
        nop
        nop
        nop
        nop
        nop
        dec a
        jrne delay_ms_1
        pop a
        dec a
        jrne delay_ms
        ret

        interrupt NonHandledInterrupt
NonHandledInterrupt.l
        iret

        segment 'vectit'
        dc.l {$82000000+main}                                                                        ; reset
        dc.l {$82000000+NonHandledInterrupt}        ; trap
        dc.l {$82000000+NonHandledInterrupt}        ; irq0
        dc.l {$82000000+NonHandledInterrupt}        ; irq1
        dc.l {$82000000+NonHandledInterrupt}        ; irq2
        dc.l {$82000000+NonHandledInterrupt}        ; irq3
        dc.l {$82000000+NonHandledInterrupt}        ; irq4
        dc.l {$82000000+NonHandledInterrupt}        ; irq5
        dc.l {$82000000+NonHandledInterrupt}        ; irq6
        dc.l {$82000000+NonHandledInterrupt}        ; irq7
        dc.l {$82000000+NonHandledInterrupt}        ; irq8
        dc.l {$82000000+NonHandledInterrupt}        ; irq9
        dc.l {$82000000+NonHandledInterrupt}        ; irq10
        dc.l {$82000000+NonHandledInterrupt}        ; irq11
        dc.l {$82000000+NonHandledInterrupt}        ; irq12
        dc.l {$82000000+NonHandledInterrupt}        ; irq13
        dc.l {$82000000+NonHandledInterrupt}        ; irq14
        dc.l {$82000000+NonHandledInterrupt}        ; irq15
        dc.l {$82000000+NonHandledInterrupt}        ; irq16
        dc.l {$82000000+NonHandledInterrupt}        ; irq17
        dc.l {$82000000+NonHandledInterrupt}        ; irq18
        dc.l {$82000000+NonHandledInterrupt}        ; irq19
        dc.l {$82000000+NonHandledInterrupt}        ; irq20
        dc.l {$82000000+NonHandledInterrupt}        ; irq21
        dc.l {$82000000+NonHandledInterrupt}        ; irq22
        dc.l {$82000000+NonHandledInterrupt}        ; irq23
        dc.l {$82000000+NonHandledInterrupt}        ; irq24
        dc.l {$82000000+NonHandledInterrupt}        ; irq25
        dc.l {$82000000+NonHandledInterrupt}        ; irq26
        dc.l {$82000000+NonHandledInterrupt}        ; irq27
        dc.l {$82000000+NonHandledInterrupt}        ; irq28
        dc.l {$82000000+NonHandledInterrupt}        ; irq29
        end
这次汇编报错:
The command: "asm -sym -li=Debug\main.lsr main.asm -I="C:\Program Files\STMicroelectronics\st_toolset\asm\include"  -obj=Debug\main.obj -I="C:\Program Files\STMicroelectronics\st_toolset\stvd"" has failed, the returned value is: 2
exit code=2.

a1.s19 - 1 error(s), 0 warning(s)

使用特权

评论回复
5
bobo5650| | 2015-9-6 15:32 | 只看该作者
STMicroelectronics\st_toolset\asm\include下没有mapping.inc
要在工程设置里添加额外的include路径

使用特权

评论回复
6
lwag|  楼主 | 2015-9-6 16:03 | 只看该作者
本帖最后由 lwag 于 2015-9-6 16:11 编辑

怎么设置呢?还请帮一下忙。

使用特权

评论回复
7
amanda_s| | 2015-9-7 10:51 | 只看该作者
看这提示内容,是不认识操作符。
楼主换个编译环境试试看。
或者去掉前面的”#“号,用INCLUDE xxx.inc试试看

使用特权

评论回复
8
lwag|  楼主 | 2015-9-8 09:18 | 只看该作者
现在又出现提示错误:

----------- Project a0 - ST Assembler Linker - Configuration Debug -------------

Assembling main.asm...
asm -sym -li=Debug\main.lsr main.asm -I="C:\Program Files\STMicroelectronics\st_toolset\asm\include"  -obj=Debug\main.obj -I=..\include

STMicroelectronics assembler v4.52

      No errors on assembly of 'c:\program files\stmicroelectronics\st_toolset\asm\a_1\main.asm'

Running ST linker
lyn Debug\mapping.obj+Debug\stm8s103f.obj+Debug\main.obj, Debug\a0.cod, " "

STMicroelectronics - Linker - rel 3.19

        200K namespace for approx 8150 publics
**        No Errors found on Link.

obsend Debug\a0.cod,f,Debug\a0.s19,s

STMicroelectronics - Obsend - rel 2.15


Running Post-Link step
?

Error creating process for executable ?参数错误。

Failed to create process.

a0.s19 - 1 error(s), 0 warning(s)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

163

帖子

2

粉丝