打印

关于STM8汇编的问题请教

[复制链接]
2388|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
牧野流|  楼主 | 2009-5-16 10:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在先写了个小程序,然后编译了一下,出现了两个问题:
1、PUBLIC 'AWU_CSR' redefined...First definition in Debug\music_player.alpha.v001.obj, second in D:\soft\sttool\Work\music_player\stm8s207sfr.asm.
(总共200多个类似的)
后面的那个文件是我的寄存器的头文件,格式如下:
.PA_ODR    DS.B 1    ; Port A data output latch register

从上面的说明应该是重复定义了,我以为我自己加的头文件(建立工程时是没有那个头文件的)是多余的,可是删掉之后就说寄存器没有有效地址。

请问这个如何解决?

2、Error : segment D:\soft\sttool\Work\music_player\music_player.alpha.v001.asm:'periph' [0x5000 - 0x7f76] and segment D:\soft\sttool\Work\music_player\stm8s207sfr.asm:'periph' [0x5000 - 0x7f76] overlap
 The command: "lyn Debug\mapping.obj+Debug\music_player.alpha.v001.obj+Debug\stm8s207sfr.obj, Debug\music_player.cod, " " " has failed, the returned value is: 2
exit code=2.
我的主文件中music_player.alpha.v001.asm根本就没有定义'periph' ,怎么会重叠呢,下面就是对区域的定义:
    WORDS    segment byte at 4000-45FF 'eeprom'

    WORDS    segment byte at 8080-17FFF 'rom'

    WORDS    segment byte at 8000-807F 'vectit'

请问各路高手,这两个问题如何理解啊。

谢谢!!
沙发
john_light| | 2009-5-16 10:37 | 只看该作者

标号(寄存器名)重复定义的原因可能是你多次包含了同一个文

使用特权

评论回复
板凳
8bit_mcu| | 2009-5-19 10:37 | 只看该作者

你最好把你的project打包上来

你的project肯定有问题

使用特权

评论回复
地板
8bit_mcu| | 2009-5-19 10:52 | 只看该作者

随便建个标准项目给你看下

平时一般都不用汇编写了,建个项目给你看下,没做什么功能,就是把PA口的数据寄存器内容倒到A里

使用特权

评论回复
5
牧野流|  楼主 | 2009-5-19 20:22 | 只看该作者

传一下文件

但是有个问题,你给我的例程中,主程序包含的是两个“。INC”文件
但是我主程序中包含的是对应的两个“.ASM”文件,而两个.ASM文件中又包含了对应的.INC文件,这样我的确编译没有问题了,可是仿真又不行了。
我的程序就是点亮LED,可是我一设软件断点,它就提示说无效断点,需要移除。
仿真的时候应该不需要配置选项字节吧,编程才用。再说了,使用默认的也应该没有问题的吧。

使用特权

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

本版积分规则

14

主题

35

帖子

1

粉丝