嵌入式软件开发-50页PPT资料
合集下载
《嵌入式开发》课件
分类:嵌入式网 络通信技术可以 分为有线网络通 信和无线网络通 信两大类。
有线网络通信: 包括以太网、 USB、串行通信 等,可以实现嵌 入式系统与外部 网络的高速、稳 定、可靠的数据 传输。
无线网络通信: 包括Wi-Fi、蓝 牙、ZigBee等, 可以实现嵌入式 系统与外部网络 的低功耗、远距 离、灵活的数据 传输。
优化方法:对操作 系统进行裁剪和优 化,提高系统性能
移植与优化工具: 使用嵌入式操作系 统移植工具,如 Yo c t o 、 Buildroot等
移植与优化效果: 提高系统稳定性、 降低功耗、提高性 能,满足实际应用 需求。
06
嵌入式网络通信技术
嵌入式网络通信技术的概述与分类
概述:嵌入式网 络通信技术是嵌 入式系统与网络 通信技术相结合 的产物,可以实 现嵌入式系统与 外部网络的互联 互通。
04
嵌入式软件开发基础
嵌入式软件开发流程
需求分析:明确系统需求,确定功能、 性能、接口等要求
系统设计:进行ቤተ መጻሕፍቲ ባይዱ件和软件设计,包括 芯片选型、电路设计、软件架构设计等
编码实现:编写源代码,进行单元测试 和集成测试
测试验证:进行系统测试和性能测试, 确保系统稳定可靠
发布部署:将系统部署到目标设备上, 进行现场调试和优化
嵌入式系统的应用领域
工业控制:如自动化生产线、机器人等
医疗设备:如医疗仪器、医疗机器人等
智能家居:如智能家电、智能安防等
汽车电子:如车载导航、汽车电子控制单 元等
消费电子:如智能手机、平板电脑等 航空航天:如卫星、航天器等
03
嵌入式硬件平台
ARM处理器架构
ARM处理器架构是一种广泛应用于嵌入式系统的处理器架构 ARM处理器架构的特点是低功耗、高性能、低成本 ARM处理器架构的应用领域包括智能手机、平板电脑、物联网设备等 ARM处理器架构的发展趋势是向高性能、低功耗、高集成度方向发展
嵌入式系统软件的开发精华版.ppt
优点
1) 提高调试程序的效率 ,缩短开发周期,降 低成本
2) 简单、方便 3) 可扩展性强,可支持许多高级调试功能 4) 成本低廉,不需专门的调试硬件支持 5) 几乎所有的交叉调试器都支持这种方式
14
ROM Monitor
缺点
1) Debug Monitor需要用Crash and Burn方法开发。 2) 当ROM Monitor占用CPU时,应用程序不响应外
❖ 从以上嵌入式软件开发分类来看,嵌入 式软件开发工具可以分为 :
与嵌入式OS相关的开发工具,用于开发基 于嵌入式OS的应用和部分的驱动程序等。
与嵌入式OS无关的开发工具,用于开发基 本的驱动程序、辅助硬件调试,系统软件 的开发等。
9
9.1.2 嵌入式软件的交叉开发环境
❖ 交叉开发环境是指用于嵌入式软件开 发的所有工具软件的集合,一般包括 文本编辑器、交叉编译器、交叉调试 器、仿真器、下器等工具。
6
嵌入式软件开发工具的分类
主要嵌入式软件开发工具产品
7
嵌入式软件开发工具的分类
❖ 嵌入式软件的开发可以分为以下几种 :
编写简单的板级测试软件,主要是辅助硬 件的调试
开发基本的驱动程序
开发特定嵌入式操作系统的驱动程序(板 级支持包BSP)
开发嵌入式系统软件,如:嵌入式操作系 统等
开发应用软件
8
嵌入式软件开发工具的分类
(4)使用调试器进行调试,发出各种调试命令,监控 器解释并执行这些命令,通过目标机上的各种异常来 获取对目标机的控制,将命令执行结果回传给调试器;
(5)如果程序有问题,在调试器的帮助下定位错误; 修改之后再重新编译链接并下载程序,开始新的调试, 如此反复直至程序正确运行为止。
1) 提高调试程序的效率 ,缩短开发周期,降 低成本
2) 简单、方便 3) 可扩展性强,可支持许多高级调试功能 4) 成本低廉,不需专门的调试硬件支持 5) 几乎所有的交叉调试器都支持这种方式
14
ROM Monitor
缺点
1) Debug Monitor需要用Crash and Burn方法开发。 2) 当ROM Monitor占用CPU时,应用程序不响应外
❖ 从以上嵌入式软件开发分类来看,嵌入 式软件开发工具可以分为 :
与嵌入式OS相关的开发工具,用于开发基 于嵌入式OS的应用和部分的驱动程序等。
与嵌入式OS无关的开发工具,用于开发基 本的驱动程序、辅助硬件调试,系统软件 的开发等。
9
9.1.2 嵌入式软件的交叉开发环境
❖ 交叉开发环境是指用于嵌入式软件开 发的所有工具软件的集合,一般包括 文本编辑器、交叉编译器、交叉调试 器、仿真器、下器等工具。
6
嵌入式软件开发工具的分类
主要嵌入式软件开发工具产品
7
嵌入式软件开发工具的分类
❖ 嵌入式软件的开发可以分为以下几种 :
编写简单的板级测试软件,主要是辅助硬 件的调试
开发基本的驱动程序
开发特定嵌入式操作系统的驱动程序(板 级支持包BSP)
开发嵌入式系统软件,如:嵌入式操作系 统等
开发应用软件
8
嵌入式软件开发工具的分类
(4)使用调试器进行调试,发出各种调试命令,监控 器解释并执行这些命令,通过目标机上的各种异常来 获取对目标机的控制,将命令执行结果回传给调试器;
(5)如果程序有问题,在调试器的帮助下定位错误; 修改之后再重新编译链接并下载程序,开始新的调试, 如此反复直至程序正确运行为止。
《嵌入式软件开发》课件
VxWorks
VxWorks是一种实时操作系统,广泛应用于航空航天、军事等领域。 它具有高度的可靠性和实时性,能够满足严苛的实时任务需求。
03
Android
Android是一种基于Linux的开源操作系统,主要用于移动设备。由于
其开放性和丰富的应用生态,Android也被广泛应用于嵌入式领域,如
智能家居、物联网设备等。
数据加密、数据备份与恢复
数据安全与隐私保护问题是嵌入式软 件开发中不可忽视的问题之一。由于 嵌入式系统通常涉及到敏感数据和隐 私信息,如果程序中存在数据泄露或 数据损坏问题,会导致严重的信息安 全和隐私侵犯问题。
解决方案: 对敏感数据进行加密处理 ,使用数据备份与恢复机制,确保数 据的完整性和安全性。同时加强用户 隐私保护意识,避免敏感信息的泄露 和滥用。
时钟管理问题
时钟不准确、时钟同步
时钟管理问题也是嵌入式软件开发中常见的问题之一。由于嵌入式系统 的时钟资源有限,如果程序中存在时钟不准确或时钟同步问题,会导致
系统时间错误或数据采集错误。
解决方案: 使用高精度时钟源,优化时钟配置,实现时钟同步和校准, 确保系统时间的准确性。
多任务并发问题
01
任务优先级、任务同步
外设接口
用于连接外部设备,扩展嵌入 式系统的功能。
嵌入式系统的软件架构
操作系统
负责资源管理和任务调度,提供系统服务。
驱动程序
用于管理硬件设备,实现与操作系统的通信 。
应用程序
实现特定功能的软件,直接与硬件交互。
嵌入式中间件
提供跨平台的通信和数据交换服务。
嵌入式软件开发工具与环境
IDE(集成开发环境)
《嵌入式软件开发》PPT课 件
VxWorks是一种实时操作系统,广泛应用于航空航天、军事等领域。 它具有高度的可靠性和实时性,能够满足严苛的实时任务需求。
03
Android
Android是一种基于Linux的开源操作系统,主要用于移动设备。由于
其开放性和丰富的应用生态,Android也被广泛应用于嵌入式领域,如
智能家居、物联网设备等。
数据加密、数据备份与恢复
数据安全与隐私保护问题是嵌入式软 件开发中不可忽视的问题之一。由于 嵌入式系统通常涉及到敏感数据和隐 私信息,如果程序中存在数据泄露或 数据损坏问题,会导致严重的信息安 全和隐私侵犯问题。
解决方案: 对敏感数据进行加密处理 ,使用数据备份与恢复机制,确保数 据的完整性和安全性。同时加强用户 隐私保护意识,避免敏感信息的泄露 和滥用。
时钟管理问题
时钟不准确、时钟同步
时钟管理问题也是嵌入式软件开发中常见的问题之一。由于嵌入式系统 的时钟资源有限,如果程序中存在时钟不准确或时钟同步问题,会导致
系统时间错误或数据采集错误。
解决方案: 使用高精度时钟源,优化时钟配置,实现时钟同步和校准, 确保系统时间的准确性。
多任务并发问题
01
任务优先级、任务同步
外设接口
用于连接外部设备,扩展嵌入 式系统的功能。
嵌入式系统的软件架构
操作系统
负责资源管理和任务调度,提供系统服务。
驱动程序
用于管理硬件设备,实现与操作系统的通信 。
应用程序
实现特定功能的软件,直接与硬件交互。
嵌入式中间件
提供跨平台的通信和数据交换服务。
嵌入式软件开发工具与环境
IDE(集成开发环境)
《嵌入式软件开发》PPT课 件
嵌入式软件开发技术与方法 PPT课件
30%
20%
10%
0% 4-bits
8-bits 16-bits 32-bits 64-bits Special
Programming Languages
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
Assemble C language C++
Java
language
1998-99 1999-00 2000-01
28
软件仿真开发环境
嵌入式软件开发人员只需要了解所使用的编程 语言、编译器及其使用方法、操作系统系统 API接口及系统函数,就可以实施并完成嵌入 式软件的程序设计,生成虚拟机环境下可运行 的可执行程序。
可以在宿主机环境下查看到运行的结果,进行 运行结果的分析,并反复进行软件的调试,最 终生成一个认可的可执行软件。待时机条件具 备时安装到目标机上运行。
与动态连接库或运行时库进行链接,生成一个可执 行程序,作为文件存放在磁盘上。 运行:通过操作系统的加载程序,将可执行文件从 磁盘加载到内存,运行。 桌面系统可运行许多程序,可快速容易地加载运行。
19
如何构建嵌入式应用程序-2
嵌入式系统软件
工具 软件组件 过程:编译器或汇编器产生一个或多个目标文件,
29
实时软件分析设计方法
嵌入式实时软件系统的生命周期分为以下几个阶段: 需求分析与详细说明:对系统功能及性能的需求进行
描述。 系统设计:任务分解, 定义任务间接口关系。 任务设计:按模块方式设计每个任务,定义模块间接
口。 模块设计与实现:完成每个模块的详细设计、编码和
单元测试。 任务与系统集成:任务单独运行及并发运行调试,查
嵌入式系统 及其软件开发 ppt课件
xlanchen@2007.5.21
嵌入式系统 及其软件开发
9
2. 嵌入式系统是将先进的计算机技术、半导体技术 和电子技术以及各个行业的具体应用相结合后的 产物。
这就决定了它必然是一个技术密集、资金密集、 高度分散、不断创新的知识集成系统。所以,介 入嵌入式系统行业,必须有一个正确的定位。例 如
Palm OS之所以在PDA领域占有70%以上的市场,就 是因为其立足于个人电子消费品,着重发展图形界面 和多任务管理;
xlanchen@2007.5.21
嵌入式系统 及其软件开发
7
什么是嵌入式系统: 国内的经典定义
嵌入式系统是
“以应用为中心,以计算机技术为基础,并且软硬 件可裁剪,适用于应用系统对功能、可靠性、成本、 体积、功耗有严格要求的专用计算机系统”
一般由嵌入式微处理器、外围硬件设备、嵌入 式操作系统以及用户的应用程序等部分组成, 用于实现对其他设备的控制、监视或管理等功 能。
xlanchen@2007.5.21
嵌入式系统 及其软件开发
24
典型嵌入式微处理器: MIPS
MIPS Microprocessor without Interlocked Piped Stages “无内部互锁流水线微处理器”
也是现在比较流行的一种RISC处理器,其机制是尽 量利用软件办法避免流水线中的数据相关问题
嵌入式系统 及其软件开发
22
典型嵌入式微处理器: ARM系列
ARM(Advanced RISC Machines) 是ARM公司的高性能、廉价、低功耗的RISC 处理器,适用于多种领域
如嵌入控制、消费/教育类多媒体、DSP和移动式 应用等。
ARM公司将其硬件技术授权给世界上许多著 名的半导体厂商,包括Intel,IBM,LG,NEC, SONY,Philps这样的大公司。 关于软件系统的合伙人,则包括Microsoft、 SUN等一系列著名公司
嵌入式入门(设计与实例开发)PPT课件
分析嵌入式系统的各种故障模式 及其影响,为可靠性设计和改进 提供依据。
可靠性框图
02
03
故障树分析(FTA)
通过可靠性框图分析嵌入式系统 的可靠性结构,确定关键件和冗 余件。
通过故障树分析找出导致系统故 障的原因和最小割集,评估系统 的可靠性和安全性。
06
嵌入式系统应用案例分 析
智能家居系统案例分析
开源硬件与软件
开源硬件和软件的发展 为嵌入式系统的设计和 开发提供了更多选择和
灵活性。
02
嵌入式硬件设计
ARM处理器
ARM处理器是一种流行的嵌入式处理器架构,广泛应用于各种嵌入式系 统。
ARM处理器具有低功耗、高性能的特点,适用于各种应用场景,如智能 家居、工业控制等。
ARM处理器的选择需要根据具体应用需求来决定,如ARM Cortex-M系 列适用于微控制器应用,ARM Cortex-A系列适用于智能手机、平板电 脑等应用。
工业控制系统发展前景
探讨工业控制系统的发展趋势和未来发展方向。
医疗电子设备案例分析
医疗电子设备概述
医疗电子设备是指用于医疗领域的电子设备, 如监护仪、超声波诊断仪等。
医疗电子设备优势
分析医疗电子设备的优势,如高精度、高可 靠性、实时监测等。
医疗电子设备案例
介绍医疗电子设备的具体应用案例,如远程 医疗监护系统等。
FPGA芯片
FPGA芯片是一种可编程逻辑器件,可以通过编程 实现各种数字逻辑功能。
FPGA芯片具有高度的灵活性,可以根据实际需求 进行定制,实现各种复杂的数字逻辑功能。
FPGA芯片广泛应用于通信、图像处理、雷达等领 域,可以大大提高系统的性能和可靠性。
嵌入式微控制器
可靠性框图
02
03
故障树分析(FTA)
通过可靠性框图分析嵌入式系统 的可靠性结构,确定关键件和冗 余件。
通过故障树分析找出导致系统故 障的原因和最小割集,评估系统 的可靠性和安全性。
06
嵌入式系统应用案例分 析
智能家居系统案例分析
开源硬件与软件
开源硬件和软件的发展 为嵌入式系统的设计和 开发提供了更多选择和
灵活性。
02
嵌入式硬件设计
ARM处理器
ARM处理器是一种流行的嵌入式处理器架构,广泛应用于各种嵌入式系 统。
ARM处理器具有低功耗、高性能的特点,适用于各种应用场景,如智能 家居、工业控制等。
ARM处理器的选择需要根据具体应用需求来决定,如ARM Cortex-M系 列适用于微控制器应用,ARM Cortex-A系列适用于智能手机、平板电 脑等应用。
工业控制系统发展前景
探讨工业控制系统的发展趋势和未来发展方向。
医疗电子设备案例分析
医疗电子设备概述
医疗电子设备是指用于医疗领域的电子设备, 如监护仪、超声波诊断仪等。
医疗电子设备优势
分析医疗电子设备的优势,如高精度、高可 靠性、实时监测等。
医疗电子设备案例
介绍医疗电子设备的具体应用案例,如远程 医疗监护系统等。
FPGA芯片
FPGA芯片是一种可编程逻辑器件,可以通过编程 实现各种数字逻辑功能。
FPGA芯片具有高度的灵活性,可以根据实际需求 进行定制,实现各种复杂的数字逻辑功能。
FPGA芯片广泛应用于通信、图像处理、雷达等领 域,可以大大提高系统的性能和可靠性。
嵌入式微控制器
嵌入式软件开发讲义(参考课件)
陕西飞腾科技发展有限责任公司
嵌入式开发环境与开发工具
ROM Emulator 优点: 目标机可以没有ROM芯片、可以使用ROM Emulator提供的ROM空间且不需要用别的工 具来写ROM。 缺点: 目标机必须能支持外部ROM存储空间,而且 由于其通常要和ROM Monitor配合使用,因此 它拥有ROM Monitor的所有缺点。
陕西飞腾科技发展有限责任公司
嵌入式开发环境与开发工具
嵌入式软件开发工具的分类
从以上嵌入式软件开发分类来看,嵌入式软件开发
工具可以分为:
I)与嵌入式OS相关的开发工具,用于开发: ■基于嵌入式OS的应用
■部分驱动程序等
II)与嵌入式OS无关的开发工具,用于开发: ■基本的驱动程序 ■辅助硬件调试程序 ■系统软件等
Simulator方式(非交叉)
陕西飞腾科技发展有限责任公司
嵌入式开发环境与开发工具
在宿主机上编写代码 反复检查代码,直到编译 通过,生成可执行程序
Crash and Burn
最早的嵌入式应用软件调试方法。
将程序固化(Burn)到目标机的非易失 性存储器(E2PROM、FLASH等)中
启动目标机运行,观 察程序是否正常工作
陕西飞腾科技发展有限责任公司
嵌入式开发环境与开发工具
ICE
连接ICE和目标机时,一般是将目标机的CPU取 下,而将ICE的CPU引出线接到目标机的CPU插槽。 用ICE进行调试时,在Host端运行的调试器通过 ICE来控制目标机上运行的程序。
宿主开 发平台 ICE调试结构
目标平台
陕西飞腾科技发展有限责任公司
陕西飞腾科技发展有限责任公司
嵌入式开发环境与开发工具
ROM Monitor
嵌入式开发环境与开发工具
ROM Emulator 优点: 目标机可以没有ROM芯片、可以使用ROM Emulator提供的ROM空间且不需要用别的工 具来写ROM。 缺点: 目标机必须能支持外部ROM存储空间,而且 由于其通常要和ROM Monitor配合使用,因此 它拥有ROM Monitor的所有缺点。
陕西飞腾科技发展有限责任公司
嵌入式开发环境与开发工具
嵌入式软件开发工具的分类
从以上嵌入式软件开发分类来看,嵌入式软件开发
工具可以分为:
I)与嵌入式OS相关的开发工具,用于开发: ■基于嵌入式OS的应用
■部分驱动程序等
II)与嵌入式OS无关的开发工具,用于开发: ■基本的驱动程序 ■辅助硬件调试程序 ■系统软件等
Simulator方式(非交叉)
陕西飞腾科技发展有限责任公司
嵌入式开发环境与开发工具
在宿主机上编写代码 反复检查代码,直到编译 通过,生成可执行程序
Crash and Burn
最早的嵌入式应用软件调试方法。
将程序固化(Burn)到目标机的非易失 性存储器(E2PROM、FLASH等)中
启动目标机运行,观 察程序是否正常工作
陕西飞腾科技发展有限责任公司
嵌入式开发环境与开发工具
ICE
连接ICE和目标机时,一般是将目标机的CPU取 下,而将ICE的CPU引出线接到目标机的CPU插槽。 用ICE进行调试时,在Host端运行的调试器通过 ICE来控制目标机上运行的程序。
宿主开 发平台 ICE调试结构
目标平台
陕西飞腾科技发展有限责任公司
陕西飞腾科技发展有限责任公司
嵌入式开发环境与开发工具
ROM Monitor
嵌入式资料PPT课件
C语言
适用于需要面向对象编程 的应用场景,如GUI开发、 游戏机等。
Python语言
适用于需要快速原型开发 或脚本编程的应用场景。
嵌入式软件设计模式
单片机程序架构
适用于资源受限的微控制器,如8051系列。
ARM Cortex-M系列MCU程序架构
适用于ARM Cortex-M系列MCU,如STM32。
软件设计
根据系统需求和总体设计,设计 软件模块和接口,确定软件架构。
系统实现与测试
编码实现
按照设计要求,编写代 码并实现系统功能。
单元测试
对每个模块进行测试, 确保模块功能正常。
集成测试
将所有模块集成在一起 进行测试,确保系统整
体功能正常。
系统测试
对整个系统进行测试, 确保系统满足需求规格
说明书的要求。
系统部署与维护
系统部署
将系统安装到实际运行环境中,并进 行配置和调试。
系统维护
对系统进行日常维护和升级,确保系 统稳定运行。
05
嵌入式系统应用案例
智能家居系统
智能家居系统
01
通过嵌入式系统技术,将家中的各种设备连接到互联网,实现
智能化控制和管理。
智能家居系统的功能
02
包括远程控制、语音控制、自动化控制等,提高家庭生活的便
传感器和执行器是嵌入式系统 的关键组成部分,用于实现系
统的感知和控制功能。
选择合适的传感器和执行器需 要考虑应用场景、性能要求和
成本等因素。
嵌入式硬件开发工具
嵌入式硬件开发工具包括原理图 设计软件、PCB设计软件、仿真
软件等。
这些工具可以帮助开发人员快速 设计、仿真和调试嵌入式硬件系
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Semihosting Support
66v06 Embedded Software Development
Retarget
TM
ANSI C
input/ output
User Code
Target Hardware
7
7
重定向C库函数(2)
要重定向C库函数,简单的办法是使用你自己的可执行的semihosting SWIs来代 替原来的C库函数,从而来满足你的系统要求 比如说, the printf()系列函数(sprintf()除外) 都会调用fputc(). 在默认情况 下fputc()的执行使用了semihosting SWI. 用下面的语句来代替:
Semihosting Support
调试工具环境
C库函数功能是支持PC软件的,而目标板上的可执行软件则依赖相关的硬件资源; 在ARM体系中,我们可以采用semihosting通过相应的驱动来进行调试。
66v06 Embedded Software Development
TM
3
3
ADS默认的存Leabharlann 器映射嵌入式开发过程hello world
“PC软件”
独立的嵌入式应用
当程序员开始开发一个基于ARM应用的时候,你可以使用ARM的ADS编写类似于 “HELLO WORLD”的程序,使用ARMulator或者在评估板上来调试,但当你把他 移植到独立的嵌入式应用设备中时,下面这些问题就成为我们首要考虑的:
硬件环境中所使用的C库函数 目标板上的存储器资源 应用程序的初始化
66v06 Embedded Software Development
TM
Agenda
6
6
重定向C库函数 (1)
你可以使用适合你目标板运行的驱动来替换标准C库中的设备驱动。 Eg: printf( ) 可打印到LCD上,而不是打印控制台上
C Library
ANSI C
input/ output
Debug Agent
extern void sendchar(char *ch);
int fputc(int ch, FILE *f) { /* e.g. write a character to an LCD */
char tempch = ch; sendchar(&tempch); return ch; }
可查看在ADS Embedded example目录下的retarget.c,可看到更多的重定向例子 你可以确定有不在连接时使用semihosting SWI 的吗?…...
file (peripherals.ami)
RW
default = 0x08000000
Multi-ICE => from debugger
internal variable $top_of_memory
RO
default = 0x80000
链接时确定 0x8000
66v06 Embedded Software Development
66v06 Embedded Software Development
TM
8
8
消除C库函数中的semi hosting
为了确保在连接时没有函数使用了semi hosting SWIs ,你可以在程序中加入 下面的句子:
#pragma import(__use_no_semihosting_swi)
在默认的情况下,我们链接、定位、 运行在0x8000
Stack
heap 被直接放置在数据区的上面
由调试环境提 供
Heap(malloc,alloc)
堆栈的基地址是通过调试环境从C库
函数的Startup Code 里读取出来的。
ZI
ARMulator => from configuration
如果在程序中仍然使用了semihosting ,编译时将会报错:
Error: Symbol __semihosting_swi_guard multiply defined
修改: 如果使用 (check -verbose linker output for occurrences of I use_ semihosting_ swi), 那么连接器将会把那些使用了smeihosting 的程序列出来, 然后: 提供你自己可运行的功能函数。
66v06 Embedded Software Development
TM
1
1
PC软件的构造 定制标准C库函数到目标板 定制IMAGE的存储器映射到目标板 复位和初始化 深层次的存储器器映象考虑 编译和调试IMAGE
66v06 Embedded Software Development
TM
议程
2
Exit from application
应用程序启动
User Code
main( )
causes the linker to pull in library initialization code
66v06 Embedded Software Development
TM
5
5
一个PC软件的构造 定制标准C库函数到目标板 定制IMAGE的存储器映射到目标板 复位和初始化 深层次的存储器器映象考虑 编译和调试IMAGE
2
ADS默认的标准C库
C Library
ANSI C
input/ output
error handling
stack & heap setup
other
应用程序调用的C库 函数 eg: fputc()
设备驱动层 使用semihosting SWI’s eg: _sys_write()
Debug Agent
TM
4
4
程序入口点
C Library
__main
copy code and data zero uninitialized data
__rt_entry
set up application stack and heap initialize library functions call top-level constructors (C++)
在ADS 1.2 编译器和库函数手册, 表4-2给出了所有使用了semihosting的C库函 数。
注意: 连接器在用户自己的应用代码中不会出现任何有关 semihosting SWI使 用的报告。