37923|20

9

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教各位高手编译问题(迫切想知道答案,在线等) [复制链接]

ASM程序如下:
.title " add.asm "
     
 .def start
.mmregs ;预定义的寄存器
 .text ;程序区
start:  SSBX XF ;XF 置1
  CALL Delay ;调用延时程序
  RSBX XF ;XF 清0  
  CALL Delay ;调用延时程序 
  B start ;跳转到程序开头循环执行
Delay:
     STM #0x26,AR1 ;循环次数1000 
LOOP1:
  STM #0x55,AR2 ;循环次数5000 
LOOP2:  
  BANZ LOOP2,*AR2- ;如果AR2 不等于0,AR2 减1,再判断  
  BANZ LOOP1,*AR1- ;如果AR1 不等于0,AR1 减1,跳转到LOOP1  
  RET
.end
vectors程序:
        .sect ".vectors"              
   .ref start     
   .align 0x80   
RS:  BD start
  STM #128,SP  
nmi:    RETE
        NOP
        NOP
        NOP       
sint17  .space 4*16
sint18  .space 4*16
sint19  .space 4*16
sint20  .space 4*16
sint21  .space 4*16
sint22  .space 4*16
sint23  .space 4*16
sint24  .space 4*16
sint25  .space 4*16
sint26  .space 4*16
sint27  .space 4*16
sint28  .space 4*16
sint29  .space 4*16
sint30  .space 4*16
int1: RETE
  NOP
  NOP
  NOP  
int2:   RETE
  NOP  
  NOP
  NOP 
tint0:  RETE
  NOP
  NOP
  NOP  
brint0: RETE
  NOP
  NOP
  NOP  
bxint0: RETE
  NOP
  NOP
  NOP  
brint1: RETE
  NOP
  NOP
  NOP  
bxint1: RETE
  NOP
  NOP
  NOP    
bint3: RETE
  NOP
  NOP
  NOP 
   .end

CMD文件:
-stack 0x800
-heap 0x800
MEMORY {
PAGE 0:VECT: org=0080h len=0080h
PARAM: org=100h len=0F00h
PAGE 1:DARAM: org=1000h len=1000h
}
SECTIONS
 {
.text :> PARAM PAGE 0
.vectors :> VECT PAGE 0
 STACK :> DARAM PAGE 1
.bss :> DARAM PAGE 1
.data :> DARAM PAGE 1
}
编译结果:

----------------------------  asm_add.pjt - Debug  ----------------------------
"d:\ti_ccs\c5400\cgtools\bin\cl500" -g -q -fr"E:/dsp_exercis/asm_add/Debug" -d"_DEBUG" -@"Debug.lkf" "add.asm"
"add.asm", ERROR!   at line 1: [E0002] Invalid mnemonic specification
 .title " add.asm "

"add.asm", ERROR!   at line 2: [E0300] '_INT0_AD' is not defined in this source
                                       file
  .def _INT0_AD

"add.asm", ERROR!   at line 3: [E0300] '_HPINT' is not defined in this source
                                       file
  .def _HPINT      

3 Assembly Errors, No Assembly Warnings

Errors in Source - Assembler Aborted

"d:\ti_ccs\c5400\cgtools\bin\cl500" -g -q -fr"E:/dsp_exercis/asm_add/Debug" -d"_DEBUG" -@"Debug.lkf" "vectors.asm"

Build Complete,
  4 Errors, 0 Warnings, 0 Remarks.
______________________________________________

疑问:
不知道为什么好象不能识别 .title .def  .ref 等伪指令,如果把.title " add.asm "
指令屏蔽,则出现以下结果,还请各位高手指导我这个菜鸟下:
----------------------------  asm_add.pjt - Debug  ----------------------------
"d:\ti_ccs\c5400\cgtools\bin\cl500" -g -q -fr"E:/dsp_exercis/asm_add/Debug" -d"_DEBUG" -@"Debug.lkf" "add.asm"

"d:\ti_ccs\c5400\cgtools\bin\cl500" -g -q -fr"E:/dsp_exercis/asm_add/Debug" -d"_DEBUG" -@"Debug.lkf" "vectors.asm"

"d:\ti_ccs\c5400\cgtools\bin\cl500" -@"Debug.lkf"
>> warning: entry point symbol _c_int00 undefined

Build Complete,
  0 Errors, 1 Warnings, 0 Remarks.

最新回复

−e是CCS的Link选项,其作用是定义程序执行的入口地址,主要用于CCS仿真。 当CCS把.out加载到目标memory后,代码从什么地址开始执行(即PC要初始化成什么值)是通过这个-e选项来指定。 如果未指定-e选项,CCS将默认使用 1) _c_int00 (如果存在)。如果使用C语言编码,入口必须是_c_int00,而_c_int00在rts[xxxx].lib定义,在链接时已经包含在目标文件中,所以无需手工去设定-e选项 或者 2) _main (如果存在)。如果使用纯汇编,程序的入口可以设成_main 或者 3) 0 如果你的程序入口地址不是以上三者中的任何一个,必须设定-e选项。  详情 回复 发表于 2012-9-1 16:16
点赞 关注
 

回复
举报

47

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

DSP没做过
 
 

回复

47

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

汇编手册中有介绍 .title " add.asm "用法的吗?
 
 
 

回复

47

帖子

0

TA的资源

一粒金砂(初级)

4
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

看汇编手册中介绍伪指令用法
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

5
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

谢谢各位 不过我觉得好象不是 这个语句的问题 但是我又想不出来问题在哪, 我从书上看的的用法就是 .title "string" 
 
 
 

回复

337

帖子

0

TA的资源

裸片初长成(中级)

6
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

语法错误吧?去详细了解汇编手册。
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

7
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

前面的错误基本上找到了,但是连结的时候出现 ---------------------------- asm_add.pjt - Debug ---------------------------- "d:\ti_ccs\c5400\cgtools\bin\cl500" -g -q -fr"E:/dsp_exercis/asm_add/Debug" -d"_DEBUG" -@"Debug.lkf" "add.asm" "d:\ti_ccs\c5400\cgtools\bin\cl500" -g -q -fr"E:/dsp_exercis/asm_add/Debug" -d"_DEBUG" -@"Debug.lkf" "vectors.asm" "d:\ti_ccs\c5400\cgtools\bin\cl500" -@"Debug.lkf" >> E:\dsp_exercis\asm_add\add.cmd, line 4: error: -e flag does not specify a legal symbol name Build Complete, 1 Errors, 0 Warnings, 0 Remarks.
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

8
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

好象是-E START 没有连接上 我上2个汇编程序 都单独compier  OK 但是一连CMD文件就出现-e flag does not specify a legal symbol name   但是前面我已经有了 .def start 我的  compile 设定为: -g -q -fr"E:\dsp_exercis\asm_add\Debug" -d"_DEBUG" 默认的 linker设定: -q -c -m".\Debug\asm_add.map" -o".\Debug\asm_add.out" -x
 
 
 

回复

337

帖子

0

TA的资源

裸片初长成(中级)

9
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

主要是汇编太长时间不接触,都给忘掉了
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

10
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

大家一起研究吧,在于过程,不在结果呵呵,解决问题的时候总能学到很多东西 比自己看强多了,记忆也深刻 以后还要多讨论啊
 
 
 

回复

32

帖子

0

TA的资源

一粒金砂(初级)

11
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

菜鸟帮忙顶呵呵,学习
 
 
 

回复

337

帖子

0

TA的资源

裸片初长成(中级)

12
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

非常支持楼主的想法和观点,我们的目的就是大家共同讨论,共同学习。
 
 
 

回复

449

帖子

0

TA的资源

五彩晶圆(高级)

13
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

-e flag does not specify a legal symbol name -e flag 没有明确说明一个合法的符号名 不知用得是哪个软件啊?
个人签名世界是个圈,人生也是个圈。
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

14
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

ccs 2('5000)
 
 
 

回复

449

帖子

0

TA的资源

五彩晶圆(高级)

15
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

请问这个 -e flag 是什么作用呢?
个人签名世界是个圈,人生也是个圈。
 
 
 

回复

229

帖子

0

TA的资源

纯净的硅(高级)

16
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

楼主你找下安装目录下add.asm是否存在。
个人签名作人随心、做事随缘。世间凡事岂能尽如人意。不求无怨无悔、但求无愧于心。
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

17
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

存在的 我自己编写的东西没有放在默认的\ti_ccs\myprojects里 而是把工程所有的文件都指定另外的目录 我所理解的-E命令是用来连接程序用的,定位一个起始位置,因为CMD就是用来 LINK和资源配置的,首先指定了程序的入口.我刚看不久 , 不知道这样的理解是否正确,还请指正
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

18
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

谢谢大家支持 基本上解决掉了 我分析可能是编译器问题 最后的一个错误是 -E定位不了 我把程序的起始位置重新命名 比如改start 为asdf 如下: ASM: .title " add.asm " .mmregs ;预定义的寄存器 .global asdf .text ;程序区 asdf: SSBX XF ;XF 置1 CALL Delay ;调用延时程序 RSBX XF ;XF 清0 CALL Delay ;调用延时程序 B asdf ;跳转到程序开头循环执行 Delay: STM #0x26,AR1 ;循环次数1000 LOOP1: STM #0x55,AR2 ;循环次数5000 LOOP2: BANZ LOOP2,*AR2- ;如果AR2 不等于0,AR2 减1,再判断 BANZ LOOP1,*AR1- ;如果AR1 不等于0,AR1 减1,跳转到LOOP1 RET .end cmd: -e asdf /*-e start*/ MEMORY { PAGE 0:VECT: org=0080h len=0080h PARAM: org=100h len=0F00h PAGE 1:DARAM: org=1000h len=1000h } SECTIONS { .text :> PARAM PAGE 0 .vectors :> VECT PAGE 0 STACK :> DARAM PAGE 1 .bss :> DARAM PAGE 1 .data :> DARAM PAGE 1 } 结果: compiler film 没问题 build     没问题 rebuid all 则出现如下问题: "d:\ti_ccs\c5400\cgtools\bin\cl500" -@"Debug.lkf" >> warning: entry point other than _c_int00 specified Build Complete, 0 Errors, 1 Warnings, 0 Remarks.   然后我就不知道什么原因了 欢迎各位高手把这个问题继续讨论下去 虽然这个问题对于高手来说可能很简单,但是对于我们这些菜鸟可能要闷好些天

点评

−e是CCS的Link选项,其作用是定义程序执行的入口地址,主要用于CCS仿真。 当CCS把.out加载到目标memory后,代码从什么地址开始执行(即PC要初始化成什么值)是通过这个-e选项来指定。 如果未指定-e选项,  详情 回复 发表于 2012-9-1 16:16
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

19
 

Re: 请教各位高手编译问题(迫切想知道答案,在线等)

晕了 兴奋过头了 虽然能生成.OUT文件 但是第一次build 还是有错误 今夜无眠了
 
 
 

回复

2606

帖子

0

TA的资源

五彩晶圆(初级)

20
 
前面加一个tab键就可以了
个人签名工程 = 数学+物理+经济
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表