打印

DSP/BIOS生成CMD的缺点

[复制链接]
1950|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
益友电子|  楼主 | 2012-8-4 20:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DSP/BIOS来写cmd虽然很方便,直观,但是编译链接后,查看.map文件可以发现,其占用了大量的内部空间。对于实时性要求不高,数据量不大,不一定要求数据一定要存在内部RAM的用户,可以采用DSP/BIOS,而且可以方便的进行调试!否则,为了节省内部数据RAM,还是自己写的比较好!!
DSP的存储器的地址范围,CMD是主要是根据那个来编的。
CMD 它是用来分配rom和ram空间用的,告诉链接程序怎样计算地址和分配空间.
所以不同的芯片就有不同大小的rom和ram.放用户程序的地方也不尽相同.所以要根据芯片进行修改.分两部分.MEMORY和SECTIONS.
MEMORY
{ PAGE 0 ..........

PAGE 1.........
}

SECTIONS
{SECTIONS
{
.vectors .................
.reset .................
................

}
MEMORY是用来指定芯片的rom和ram的大小和划分出几个区间.
PAGE 0 对应rom;PAGE 1对应ram
PAGE 里包含的区间名字与其后面的参数反映了该区间的起始地址和长度.
SECTIONS:(在程序里添加下面的段名如.vectors.用来指定该段名以下,另一个段名以上的程序(属于PAGE0)或数据(属于PAGE1)放到“>”符号后的空间名字所在的地方。

相关帖子

沙发
益友电子|  楼主 | 2012-8-4 20:57 | 只看该作者
SECTIONS
{
.vectors : { } > VECS PAGE 0 /* Interrupt vector table */
.reset : { } > VECS PAGE 0 /* Reset code */
............
............
..........
}

eg:
MEMORY
{
PAGE 0: VECS: origin = 00000h, length = 00040h
LOW: origin = 00040h, length = 03FC0h
SARAM: origin = 04000h, length = 00800h
B0: origin = 0FF00h, length = 00100h

PAGE 1: B0: origin = 00200h, length = 00100h
B1: origin = 00300h, length = 00100h
B2: origin = 00060h, length = 00020h
SARAM: origin = 08000h, length = 00800h
}

SECTIONS
{
.text : { } > LOW PAGE 0
.cinit : { } > LOW PAGE 0
.switch : { } > LOW PAGE 0

.const : { } > SARAM PAGE 1
.data : { } > SARAM PAGE 1
.bss : { } > SARAM PAGE 1
.stack : { } > SARAM PAGE 1
.sysmem : { } > SARAM PAGE 1
}

使用特权

评论回复
板凳
shyinyang| | 2012-8-6 12:35 | 只看该作者
不错的帖子!楼主分享的很好

使用特权

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

本版积分规则

7

主题

445

帖子

0

粉丝