无操作系统的应用程序开发PPT教学课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章 无操作系统的应用软件开发
2020/12/10
1
• 嵌入式软件系统分为无操作系统和有操作系统。
• 前者包括引导程序和应用程序,后者则在引导程序结束后 运行操作系统,并将应用程序作为任务添加到操作系统中。
NOTE:
运行操作系统会占用大量宝贵的硬件资源,因此很多硬 件资源有限、任务简单的嵌入式应用并不使用操作系统。
(3)从汇编程序跳转到应用程序时,编译器会自动计算跳转的 目的地址。
。
2020/12/10
7
(4) 跳转的代码如下: IMPORT C_Entry ;导入应用程序的C_Entry函数 BL C_Entry ;跳转到该函数,跳转地址由编译器
在编译时计算
NOTE: 应用程序存放到SDRAM的引导程序后,但其起始地址
* 在调试或烧写过程中,可以将必要信息通过RS-232 串口输出到PC超级终端进行显示。
2020/12/10
5
4.2无操作系统的软件运行模式
• 不使用操作系统时,嵌入式软件系统包含引导程序和应用程 序两个部分:
(1)引导程序是嵌入式软件系统中必不可少的部分,完成硬件 初始化、存储器空间映射和设置系统工作状态等工作。
在此模式下,引导程序和其扩展的部分在一个工程中, 编译为.bin文件,最后烧写到Flash存储器的地址0x0处, 应用程序既可以随引导程序一起编译,也可以单独编译并 下载到指定地址。
如P122 图4.4所示,引导程序完成后跳转到扩展程序中, 可以进行串口初始化、人-机交互、按键判断、硬件电路 自检、操作系统升级等功能,也可以根据输入命令跳转到 相应程序或引导操作系统运行。
用JTAG仿真器连接实验板和PC,将实验板上电,打开 调试代理软件检测到ARM核处理器
在AXD中使用setmem或obey命令设置CPU特殊功能 寄存器配置存储空间;
加载.axf文件到SDRAM存储器就可以调试运行了;
利用AXD提供的单步、断点等调试手段,可以方便地查
2020看/12/C10PU寄存器、存储器内容。
6
无操作系统的嵌入式软件运行模式:
1、应用程序和引导程序在一个工程中一起编译为一个.bin文 件,烧写到Flash存储器地址0x0,引导程序运行结束后直接跳 转到应用程序的入口处:
(1)BootLoader启动后,Flash中的所有程序被复制到 SDRAM存储器中,如图4.2 P121
(2) 引导程序结束后就进入应用程序,这种跳转方式通过在引 导程序中导入应用程序主函数名称来实现。
(2)应用程序则根据不同应用目的而编写。
• 无操作系统下的各种软件运行模式的主要区别在于:
引导程序和应用程序的各种组成方式。
NOTE:
下面介绍的四种模式中采用的编址空间是经过二次存储器映射后的空间, 在没有了解存储器的二次映射之前,只需要了解此图中各个部分的逻辑 关系即可,不用去考虑物理地址。
2020/12/10
4
NOTE: * 程序是在SDRAM里运行的,因此掉电后不能保存; * 应用程序调试完毕后,将其加入BootLoader,编译生
成不带调试信息的.bin文件,bin格式的映象文件只能全 速运行;
* 烧写.bin文件需要一个专门的Flash烧写程序(扩展名 为.axf)。
* 先采用上述调试软件的方法将烧写程序.axf文件加载 到SDRAM,然后选择AXD的File菜单里面的Load Image命令,将应用程序.bin文件加载到SDRAM的合适 地址上,运行烧写程序,就能将.bin文件烧写到Flash存 储器了。
• 本章的内容:
* 介绍BootLoader的功能
* 分析s3c4510b的编址空间映射
* 分析BootLoader的启动过程
* 提出工程中BootLoader的解决方案。
* 用实例介绍不使用嵌入式操作系统的软件开发流程和代码 固化方法。
• 本章的目标:
让读者能使用ADS开发一个完整的不使用操作系统的嵌入
2式020系/12/统10 。
3
4.1 软件开发数据流向图
• 在不使用嵌入式操作系统的情况下,在ADS上能完成从 BootLoader到应用程序的整个开发流程,使用JTAG仿 真器进行调试,RS-232串口作为标准输入/输出,数据流 向如P120 图4.1所示。
• 在调试阶段:
使用ADS开发应用程序,编译生成带调试信息的.axf文 件;
2020/12/10
2
• 嵌入式系统不管是否使用操作系统,都需要一段引导程序 BootLoader来初始化硬件,为操作系统或应用程序的运行 做准备。
• BootLoader是硬件与软件的桥梁,其作用就是初始化硬件 设备、编址空间映射,建立系统软、硬件的正常工作状态。
• BootLoader的开发已经成为嵌入式系统教学和工程中的技 术瓶颈。
LDR R1,=0X10000 MOV PC,R1 NOTE:
这种模式下,应用程序和引导程序被单独编译为两个.bin 文件,因此应用程序可以灵活地烧写到任意地址处。
本例中应用程序被烧写到0x10000为例。
2020/12/10
9
3、扩展引导程序,使其初始化功能结束后即可跳转到一 个函数入口,也可以跳转到指定地址Βιβλιοθήκη Baidu
这种模式集合了前两种模式的特点,启动过程较为灵活, 并可以提供丰富的扩展功能,在实际工程中得到了广泛应 用。
常用的通用引导程序,如U-Boot等都是采用这种模式。
2020/12/10
10
4、应用程序编译为.axf 文件,下载到SDRAM存储器中运 行
在此模式下,工程文件仅由应用程序组成,不需要包 含引导程序,程序编译完毕后由AXD调试软件通过JTAG 口下载到SDRAM中,下载地址由ADS在程序编译前指定, 其地址信息附加在编译后生成的.axf文件中。
并不固定,在编译时,应用程序的起始地址随着引导程序 的大小而变化。
2020/12/10
8
2、应用程序和引导程序分别编译为两个.bin文件,引导 程序烧写到Flash存储器地址0x0,应用程序则烧写到存储器 中的某个地址,引导程序运行结束后跳转到该地址运行应用 程序
(1)BootLoader启动后,Flash中的所有程序被复制到 SDRAM存储器中,如图4.3 P121 (2) 引导程序结束后就进入应用程序,即将PC指针跳转到应 用程序的起始地址,跳转的代码如下:
2020/12/10
1
• 嵌入式软件系统分为无操作系统和有操作系统。
• 前者包括引导程序和应用程序,后者则在引导程序结束后 运行操作系统,并将应用程序作为任务添加到操作系统中。
NOTE:
运行操作系统会占用大量宝贵的硬件资源,因此很多硬 件资源有限、任务简单的嵌入式应用并不使用操作系统。
(3)从汇编程序跳转到应用程序时,编译器会自动计算跳转的 目的地址。
。
2020/12/10
7
(4) 跳转的代码如下: IMPORT C_Entry ;导入应用程序的C_Entry函数 BL C_Entry ;跳转到该函数,跳转地址由编译器
在编译时计算
NOTE: 应用程序存放到SDRAM的引导程序后,但其起始地址
* 在调试或烧写过程中,可以将必要信息通过RS-232 串口输出到PC超级终端进行显示。
2020/12/10
5
4.2无操作系统的软件运行模式
• 不使用操作系统时,嵌入式软件系统包含引导程序和应用程 序两个部分:
(1)引导程序是嵌入式软件系统中必不可少的部分,完成硬件 初始化、存储器空间映射和设置系统工作状态等工作。
在此模式下,引导程序和其扩展的部分在一个工程中, 编译为.bin文件,最后烧写到Flash存储器的地址0x0处, 应用程序既可以随引导程序一起编译,也可以单独编译并 下载到指定地址。
如P122 图4.4所示,引导程序完成后跳转到扩展程序中, 可以进行串口初始化、人-机交互、按键判断、硬件电路 自检、操作系统升级等功能,也可以根据输入命令跳转到 相应程序或引导操作系统运行。
用JTAG仿真器连接实验板和PC,将实验板上电,打开 调试代理软件检测到ARM核处理器
在AXD中使用setmem或obey命令设置CPU特殊功能 寄存器配置存储空间;
加载.axf文件到SDRAM存储器就可以调试运行了;
利用AXD提供的单步、断点等调试手段,可以方便地查
2020看/12/C10PU寄存器、存储器内容。
6
无操作系统的嵌入式软件运行模式:
1、应用程序和引导程序在一个工程中一起编译为一个.bin文 件,烧写到Flash存储器地址0x0,引导程序运行结束后直接跳 转到应用程序的入口处:
(1)BootLoader启动后,Flash中的所有程序被复制到 SDRAM存储器中,如图4.2 P121
(2) 引导程序结束后就进入应用程序,这种跳转方式通过在引 导程序中导入应用程序主函数名称来实现。
(2)应用程序则根据不同应用目的而编写。
• 无操作系统下的各种软件运行模式的主要区别在于:
引导程序和应用程序的各种组成方式。
NOTE:
下面介绍的四种模式中采用的编址空间是经过二次存储器映射后的空间, 在没有了解存储器的二次映射之前,只需要了解此图中各个部分的逻辑 关系即可,不用去考虑物理地址。
2020/12/10
4
NOTE: * 程序是在SDRAM里运行的,因此掉电后不能保存; * 应用程序调试完毕后,将其加入BootLoader,编译生
成不带调试信息的.bin文件,bin格式的映象文件只能全 速运行;
* 烧写.bin文件需要一个专门的Flash烧写程序(扩展名 为.axf)。
* 先采用上述调试软件的方法将烧写程序.axf文件加载 到SDRAM,然后选择AXD的File菜单里面的Load Image命令,将应用程序.bin文件加载到SDRAM的合适 地址上,运行烧写程序,就能将.bin文件烧写到Flash存 储器了。
• 本章的内容:
* 介绍BootLoader的功能
* 分析s3c4510b的编址空间映射
* 分析BootLoader的启动过程
* 提出工程中BootLoader的解决方案。
* 用实例介绍不使用嵌入式操作系统的软件开发流程和代码 固化方法。
• 本章的目标:
让读者能使用ADS开发一个完整的不使用操作系统的嵌入
2式020系/12/统10 。
3
4.1 软件开发数据流向图
• 在不使用嵌入式操作系统的情况下,在ADS上能完成从 BootLoader到应用程序的整个开发流程,使用JTAG仿 真器进行调试,RS-232串口作为标准输入/输出,数据流 向如P120 图4.1所示。
• 在调试阶段:
使用ADS开发应用程序,编译生成带调试信息的.axf文 件;
2020/12/10
2
• 嵌入式系统不管是否使用操作系统,都需要一段引导程序 BootLoader来初始化硬件,为操作系统或应用程序的运行 做准备。
• BootLoader是硬件与软件的桥梁,其作用就是初始化硬件 设备、编址空间映射,建立系统软、硬件的正常工作状态。
• BootLoader的开发已经成为嵌入式系统教学和工程中的技 术瓶颈。
LDR R1,=0X10000 MOV PC,R1 NOTE:
这种模式下,应用程序和引导程序被单独编译为两个.bin 文件,因此应用程序可以灵活地烧写到任意地址处。
本例中应用程序被烧写到0x10000为例。
2020/12/10
9
3、扩展引导程序,使其初始化功能结束后即可跳转到一 个函数入口,也可以跳转到指定地址Βιβλιοθήκη Baidu
这种模式集合了前两种模式的特点,启动过程较为灵活, 并可以提供丰富的扩展功能,在实际工程中得到了广泛应 用。
常用的通用引导程序,如U-Boot等都是采用这种模式。
2020/12/10
10
4、应用程序编译为.axf 文件,下载到SDRAM存储器中运 行
在此模式下,工程文件仅由应用程序组成,不需要包 含引导程序,程序编译完毕后由AXD调试软件通过JTAG 口下载到SDRAM中,下载地址由ADS在程序编译前指定, 其地址信息附加在编译后生成的.axf文件中。
并不固定,在编译时,应用程序的起始地址随着引导程序 的大小而变化。
2020/12/10
8
2、应用程序和引导程序分别编译为两个.bin文件,引导 程序烧写到Flash存储器地址0x0,应用程序则烧写到存储器 中的某个地址,引导程序运行结束后跳转到该地址运行应用 程序
(1)BootLoader启动后,Flash中的所有程序被复制到 SDRAM存储器中,如图4.3 P121 (2) 引导程序结束后就进入应用程序,即将PC指针跳转到应 用程序的起始地址,跳转的代码如下: