使用ADS1.2进行嵌入式软件开发
日期:2007年8月11日 作者: 查看:[大字体 中字体 小字体]-
概述
嵌入式应用程序通常都是在样机环境下调试与开发的,这种环境与最终产品之间并不完全相同。因此,在系统调试阶段就考虑应用程序在最终目标硬件中的运行情况是非常重要的。
本文旨在讨论如何将一个开发/调试环境下的嵌入式应用程序转移到最终独立运行的目标系统中去,并提到了ARM ADS1.2开发工具包的一些功能特性及其在这个过程中所起到的作用。使用ADS开发嵌入式程序时,需要着重考虑以下几个问题:
1.与硬件相关的C语言库函数的使用;
2.某些C语言库函数使用了调试环境中的资源,要把这些使用的资源重定向到目标系统中的硬件上来;
3.可执行映象文件的存储器映射必须根据目标硬件的存储器分布进行裁剪;
4.在主程序执行前,嵌入式应用程序必须先完成系统的初始化。一个完整的初始化包括用户的启动执行代码和ADS中C库函数的初始化过程。
图1 Semihosting的实现举例
图2 C语言库函数结构
图3 缺省的存储器映射
图4 连接器布局规则缺省的工程项目设置
刚开始一个嵌入式应用软件开发时,ADS用户可能并不完全清楚目标硬件的一些参数指标。比如有关外设、存储器地址分布,甚至处理器类型等一些细节,可能还没有最终确定。为了在所有这些细节全部就绪前就能进行软件开发,ADS工具有一套程序构建和调试的缺省设置。了解这套缺省的工程项目设置方法,对于掌握最终的移植步骤非常有好处。
ADS1.2C语言函数库
Semihosting
在ADS的C语言函数库中,某些ANSIC的功能是由主机的调试环境来提供的,这套机制有一个专门术语叫Semihosting。Semihosting通过一组软件中断(SWI)指令来实现。如图1所示,当一个Semihosting软中断被执行时,调试系统先识别这个SWI请求,然后挂起正在运行的程序,调用Semihosting的服务,完成后再恢复原来的程序执行。因此,主机执行的任务对于程序来说是透明的。
C语言库函数结构
从概念上来讲,C语言库函数可以被分成两部分,一是ANSIC语言规范本身的一部分,一是只受某一特定ANSIC层次支持的函数,如图2所示。
其中一些ANSIC的功能是由主机调试环境调用驱动程序级的函数完成的。例如,ADS的库函数printf()把输出信息输出到调试器的控制台窗口,这个功能通过调用__sys_write()实现,__sys_write()执行了一个把字符串输出到主机控制台的Semihosting软中断服务程序。
缺省的存储器映射
如果用户在程序编译时没有指定映象的存储器映射分布,ADS将为生成的目标代码和数据分配一个缺省的存储器映射图,如图3所示。 - [1] [2] [3] [4] [5] [6] [7] [8] 下一页
-
- 使用ADS1.2进行嵌入式软件开发 相关文章:
- ·《真?三国无双3》月英使用心得 - 真三国无双4攻略秘籍 - 真三国无双4
- ·QQ空间开场代码使用说明
- ·为什么iexplore.exe在打开网页时CPU使用会100%?
- ·MSComm控件使用详解
- ·联讯证券同花顺软件分析系统使用
- ·流光5.0使用小窍门
- ·vista下 迅雷右键不能使用
- ·在vista系统中使用特殊方法来输入特殊字符
- ·QQ空间鼠标代码使用说明
- ·DM万用版使用方法
- 使用ADS1.2进行嵌入式软件开发 相关软件
- ·使命召唤-联合进攻 Call of Duty United
- ·飘羽失忆天使 简体中文版
- ·使命召唤2 汉化包
- ·倾城之恋!粉色天使桌面主题
- ·天使之翼游戏下载
- ·天使帝国2
- ·《使命召唤2》免CD补丁
- ·超级兔子XP升级天使2007-10
- ·蓝色天使队
- ·咕噜小天使
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:如何为嵌入式开发建立交叉编译环境
精品推荐
热点TOP10
- ·深入浅出.NET泛型编程
- ·如何为嵌入式开发建立交叉编译环境
- ·使用ADS1.2进行嵌入式软件开发
- ·SVG与UML图详解
- ·Linux 系统内核的调试
- ·UML类图详解(1)
- ·统一建模语言(UML)的现状及发展
- ·微软WCF给SOA带来的影响
- ·.NET 数据访问架构指南
- ·质量管理新七种工具简介(1)
- ·利用UML类图设计Java应用程序详解(1)
- ·Tomcat中用web.xml控制Web应用详解
- ·VC中利用多线程技术实现线程之间的通信
- ·WinCE嵌入式开发程序入门
- ·用WPF构建强大的用户体验
- ·ISO9000:2000 质量管理八大原则(1)
- ·掀起你的盖头来:WPF开发简介
- ·Apache APR可移植运行库简介(1)
- ·.NET下可复用的TCP通信层实现之TCP组件
- ·质量意识概述
