有些CCS工程中为什么会有两个CMD文件?
这里的CCS就是TI公司的Code Composer Studio 集成开发环境,所以这篇随笔也就是关于TI公司DSP开发过程中对于刚入门同学的一个常见问题了。
那作为一个初学者,对于CCS工程中的cmd文件首先应该是有些基础了解的,下面做一个简单的介绍:
.cmd 的专业名称叫链接器配置文件,是存放链接器的配置信息----给出了程序空间和数据空间的设置,及编译后各程序段在程序或数据空间的具体位置。一般情况下该文件主体部分为两个伪指令, MEMORY和SECTIONS。MEMORY用来配置目标存储器,SECTIONS用来指定段的存放位置。例如下面的格式:
{
PAGE 0 : /* Program Memory */
{
/* Allocate program areas: */
.cinit : > FLASHF PAGE = 0, ALIGN(8)
.pinit : > FLASHF PAGE = 0, ALIGN(8)
.text : > FLASHG PAGE = 0, ALIGN(8)
实际上,(推测是基于便于管理的角度)TI把它分开了,一个对寄存器进行存储映射,因为同个系列的芯片寄存器都是一样的,这样一个cmd文件在该系列芯片的工程里都是可以通用的。
另外一个是对Flash, Ram进行存储分配,同个系列不同芯片有不同存储配置,所以他们的CMD也不一样。
例如2837xS系列芯片的不同芯片ram/rom配置如下表:
从上面可以看到,根据不同的需要,芯片的ram和rom(flash)有多有少,那么在cmd文件中也要针对性的调整,否则可能编译出来的文件无法正确烧写或者执行。
另外一个,顺便提一句的。在同一个芯片系列中相同的cmd文件,主要存放芯片寄存器地址信息,同学们会看到,在这个cmd文件中MEMORY指令中只有PAGE1的内容,就像下面这样:
为什么呢?这是因为,TI公司默认在MEMORY把PAGE0作为程序储存器,PAGE1作为数据储存器进行分配,分别有数据总线和程序总线进行访问。那么,所有芯片寄存器都属于数据空间,所以放在PAGE1,因此这个cmd文件里就只有PAGE1的内容了。
最新文章
- Threejs中的材质贴图
- Cats(2)- Free语法组合,Coproduct-ADT composition
- Unity3D DFGUI根据名称获取多个子控件代码
- U盘插入电脑后,提示需要格式化U盘如何解决?
- Builder模式
- ZTOOLS HTTP&;REGEXTEST&;JSONS 工具包
- 你真的了解UIWindow吗?
- Win10 UAP 绑定
- 【转】Spark性能优化指南——基础篇
- RDIFramework.NET ━ 9.3 用户管理 ━ Web部分
- 《C++代码设计与重用》 书评
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(六)码农网
- JMS - 消息选择器
- @media实现网页自适应中的几个关键分辨率
- java集成swagger
- JMeter学习-042-JMeter BeanShell 脚本应用实例之正则应用:正则提取,批量获取测试数据
- GradleUserGuide中文版 19)Plugins 20)插件规范 21)Java插件
- “AS3.0高级动画编程”学习:第三章等角投影(上)
- 第8章 用SQL语句操作数据
- Servlet基本_オブジェクトのスコープ
热门文章
- GoCN每日新闻(2019-11-07)
- x64汇编第四讲,c / C++中调用x64汇编
- nginx 配置虚拟主机( 基于端口 )
- linux操作系统与jvm
- 记一次phpmyadmin 4.8.1 远程文件包含漏洞(BUUCTF web)
- [2019BUAA软件工程]个人期末总结感想
- 深度学习剖根问底: Adam优化算法的由来
- 【转】Android 将自己的应用改为系统应用
- 织梦Dedecms后台登陆密码忘记怎么办?
- PhantomJS笔记,Node.js集成PhantomJS