微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > Go Main

Go Main

时间:10-02 整理:3721RD 点击:
我使用的是2407
用汇编写程序时,调试 远行一切正常
当使用C时,发现load 后能进入_cint0,但点go main 程序就会跑飞(不能执行 call main那行 )
请问这会是由什么原因引起的?

期待回复。。。。。。

等待高手解答,将帖子顶一下!

把你的程序贴出来看看。

cmd 文件
MEMORY
{
PAGE 0:


PM: origin=8020h, length=0130h
PAGE 1:
B0: origin=0200h, length=0100h
B1: origin=0300h, length=0100h
B2: origin=0060h, length=0020h
}

SECTIONS
{


.text {} > PM PAGE 0
.cinit {} > B0 PAGE 1
}
而主程序只是
main()
{
;
}
这是.map的内容
.text 0 00008020 0000007f
00008020 00000027 rts2xx.lib : boot.obj (.text)
00008047 0000004f : exit.obj (.text)
00008096 00000009 main.obj (.text)

.cinit 1 00000200 00000007
00000200 00000006 rts2xx.lib : exit.obj (.cinit)
00000206 00000001 --HOLE-- [fill = 0000]

.data 1 00000000 00000000 UNINITIALIZED
00000000 00000000 rts2xx.lib : boot.obj (.data)
00000000 00000000 main.obj (.data)
00000000 00000000 rts2xx.lib : exit.obj (.data)

.bss 1 00000207 00000022 UNINITIALIZED
00000207 00000022 rts2xx.lib : exit.obj (.bss)
00000229 00000000 : boot.obj (.bss)
00000229 00000000 main.obj (.bss)

.stack 1 00000229 0000003c UNINITIALIZED
00000229 00000000 rts2xx.lib : boot.obj (.stack)

我找到问题的原因的
是段分配错误:
.cinit 应该分配在PAGE 0

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top