打印

上传一篇原创的**,讲CMD文件的原理和使用。

[复制链接]
27041|124
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
玄德|  楼主 | 2009-8-20 21:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上传一篇本人原创的文章,讲CMD文件的原理和使用。陆陆续续用四个月时间完成的,只发到本网站,和另一个我常去的网站。

CMD文件的原理.pdf

241.37 KB

评分
参与人数 2威望 +2 收起 理由
小星2008 + 1
ff_hust + 1

相关帖子

沙发
op27| | 2009-8-23 17:54 | 只看该作者
大大哥,
太兴奋了,您的大作已经下载了,不过还没看。
没看是因为真的太兴奋了。
一直以来我都被这个.cmd所折磨,希望看了以后能如题灌顶。
再次写写大大哥。
对了,大大哥的名字都很有气魄啊,玄德。
其实,我的小名是秦始皇。
幸会~

使用特权

评论回复
板凳
op27| | 2009-8-23 17:57 | 只看该作者
对了,大大哥,我没看到你发的这个贴之前,我还给你发了个短消息了呢。
你无聊没事做的时候也看看吧。
如果觉得有提问的价值,就给我回一个吧。
谢谢

使用特权

评论回复
地板
mytempid| | 2009-8-24 08:40 | 只看该作者
收藏了

使用特权

评论回复
5
andy.free-tech| | 2009-8-25 13:48 | 只看该作者
CMD文件本来就是比较死板的事情,本来应该由软件自动生成。

使用特权

评论回复
6
angelguard| | 2009-8-25 17:27 | 只看该作者
我只看了一半,就忍不住来发帖了,
我想对楼主说:
楼主,
真乃强人也!
小的佩服!

使用特权

评论回复
7
angelguard| | 2009-8-25 17:35 | 只看该作者
本帖最后由 angelguard 于 2009-8-25 17:51 编辑

请教楼主:“顺便说一下,对于2407,无论是仿真开发还是脱离仿真,最好不要使用0x8000 ~
0xFFFF 的高32K 程序空间”是指.text段或是.cint段或是.const段这类已初始化的段不能放在这个区么?如不能用,那这一段(主要是那段SARAM)的作用是什么呢?

使用特权

评论回复
8
angelguard| | 2009-8-25 17:56 | 只看该作者
还有,请教楼主高人:
能否透露一点关于如何用CPLD将DSP和SRAM连接起来的知识?小弟对这方面一直不懂?谢谢!

使用特权

评论回复
9
玄德|  楼主 | 2009-8-26 23:27 | 只看该作者
本帖最后由 玄德 于 2009-8-26 23:31 编辑

To angelguard:
1、我所说“最好不要使用0x8000 ~ 0xFFFF 的高32K 程序空间”,意思是把这段程序空间视为不存在。我注意到2407片内有一块SARAM可以映射到高32K的程序区,我也考虑过为什么,估计是在仿真状态下,做最小系统用的,可以使系统抛开外扩的RAM而运行起来。这是我个人的判断。
2、关于CPLD将DSP和SRAM连接起来的知识。SRAM芯片的存储单元的地址,从它自身的角度看,当然是从0开始的,没有厂家会说“我的RAM芯片的地址范围是从0x1000开始的”之类的话;但站在DSP的角度去看,我们必须把它的地址安排在DSP的系统体系之内,或者说地址范围之内,这就是通常所说的映射。我估计你所说的“连接起来”也是这个意思。比如,“把RAM映射到DSP数据空间的0x8000”,意思是:当DSP发出0x8000地址时,实际上就是对RAM芯片的0x0000存储单元进行唯一的读或写的操作;DSP的0x8001地址,实际就是RAM芯片的0x0001单元,0x8002就是RAM的0x0002单元,...... 以此类推。明白这一点,就应当知道连接电路该怎么设计了,无外乎就是如何产生片选信号、读写信号的问题,这是硬件开发人员必备的基本功。至于用CPLD还是其他什么电路,已经不重要了。建议你去看看基本的数字电路的书籍。

使用特权

评论回复
10
jettlau| | 2009-8-27 11:42 | 只看该作者
很好,赞一个

使用特权

评论回复
11
angelguard| | 2009-8-27 12:00 | 只看该作者
谢谢楼主的指点,小弟感激不尽!

使用特权

评论回复
12
op27| | 2009-8-29 16:11 | 只看该作者
楼主大哥,已经比较仔细看过您这篇关于CMD的**了。
但是,关于SECTION里的那些段是如何产生的、每个C文件最后生成的.OBJ文件里的段的种类肯定是不尽相同的,那么怎么知道会产生哪些段呢?只有知道了有哪些段产生,我才能去将这些短填到MEMORY里的空里去吧?还有我如何得知它们的大小。这些问题还是不知道哦 !

使用特权

评论回复
13
玄德|  楼主 | 2009-8-29 23:47 | 只看该作者
看编译后产生的map文件,**里讲到了。

使用特权

评论回复
14
op27| | 2009-8-30 15:56 | 只看该作者
o ?map文件不是在CMD文件后产生的吗?
应该是先有CMD文件再有的map文件的吧?
obj文件产生的时候能-m 产生map文件?

使用特权

评论回复
15
玄德|  楼主 | 2009-8-31 01:46 | 只看该作者
找这段话:
那么,我们怎么知道,我的工程项目会产生哪些“段”呢?工程项目在编译之后,会在项目文件夹内产生一个 .map 文件,用随便一个文本编辑器就可以打开,内容也很容易理解。初学者可以先找一个现成的CMD文件,稍作修改或者不修改,加入项目中进行编译,如果编译失败(failure或error),则根据提示进行修改,如果只是告警(warning)则不必理会。成功编译之后,查看 .map 文件中“output  section”那一列,那些长度(length)非0的段,就是你的项目真正会产生的段;那些长度为0的段,基本都可以从CMD文件中删除。有时也存在这样的情况:某些长度为0的段,即使开发人员并没有在CMD文件中作出声明,仍然会在 .map 文件里出现,这对我们的开发并没有影响。

使用特权

评论回复
16
op27| | 2009-8-31 16:28 | 只看该作者
15# 玄德

使用特权

评论回复
17
role_2099| | 2009-9-2 16:27 | 只看该作者
收藏了,恰好遇到这个问题

使用特权

评论回复
18
zhongvv| | 2009-9-10 22:14 | 只看该作者
好! 谢谢楼主分享。要好好研究研究。

使用特权

评论回复
19
qy114| | 2009-10-30 20:39 | 只看该作者
刚下载了,谢谢分享啊!刚开始学DSP对于软件和硬件衔接的这块疑惑很大,希望有高手可以给大家讲讲啊

使用特权

评论回复
20
myhisense| | 2009-11-12 09:13 | 只看该作者
和好,顶一个

使用特权

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

本版积分规则

153

主题

5927

帖子

44

粉丝