ldscript文件、.cs与.map文件该如何解释?

问题: 在EMBEST IDE的例子中,有ldscript文件,该文件好像是gcc自带的脚本文件,是吗?有何用?.cs与.map文件又起何作用?他们所实现的功能能用源代码实现吗? 

 
  回答: ldscript文件:GCC确实附带了ldscript文件,但我们在例子中用到的ldscript文件,都是另外写的,ldscript文件是用来描述链接定位的有关信息。如:起始地址,代码 
段,数据段,以及bss段等等。从而在链接时严格控制输出文件的格式(当然还有其他功能,不必关注)。一般作为系统级的程序开发都要用到ldscript文件,这一点和桌面应用的开发是不同的。但是ldscript文件,一般都不需要完全重新书写,只需COPY一个,再稍做修改就可以了。有兴趣详细了解 ldscript开发人员,可以参考Embest IDE附带的文档《Program Reference》中,ld->scripts部分。   

 .cs文件在Embest IDE中是作为命令脚本文件,相当于DOS下的批处理文件。你可以注意一下例子工程$(EmbestIDE)\Examples\Samsung\Snds100\LedDemo.pjf。在该工程中有一个snds100.cs文件,该文件就是一个命令脚本文件,它包含一串命令,在 IDE“Remote Connect”目标板后执行。你可以发现snds100.cs的第一句就是stop----目标板停止运行,接下来写了一串内存,完成地址映射。  

 .map文件,用于描述目标板的可访问存储区,告诉Embest IDE那些内存地址是合法的,那些区域可以读,那些可以写。以免在调试时,IDE内存的读写,出现不可预知的结果。