- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
为什么要学习嵌入式技术?;为什么要学习嵌入式技术?;从事PC机应用与嵌入式系统应用工作比较;嵌入式系统学习的特点:;本课程考核要求;;智能玩具;1. 嵌入到设备中的计算机;;1.1.3 嵌入式系统的基本组成;1. 嵌入式系统的硬件组成;处理器;; ;;;1.微控制器(俗称单片机):
它是将计算机的CPU、内存、I/O接口集成到一
块芯片上。
主要特点:
单片化、可靠性高、体积小、功耗低、价格便
宜,非常适合产品和设备的控制和低端智能化。
;2.嵌入式微处理器;3.DSP处理器;;;;2.嵌入式操作系统的特点:;3.常见的嵌入式操作系统;;μC/OS-II 嵌入式操作系统内核 ;μC/OS-II 嵌入式操作系统内核;VxWorks嵌入式实时操作系统;WinCE操作系统 ;WinCE操作系统;;Linux嵌入式操作系统;linux特点:;linux作为嵌入式操作系统的优点:;;嵌入式linux的版本 ;在开发一个具体的嵌入式系统应用项目时,应该根据应
用项目的要求和规模确定是否使用嵌入式操作系统。如
果使用嵌入式操作系统,则需要选择一个合适的操作系
统。一般在选择嵌入式操作系统时,要考虑下列因素: ; 嵌入式系统的应用软件是针对特定的应用和相应的硬件平台,为实现具体的应用目标而设计的计算机软件。
与通用计算机应用软件相比,嵌入式应用软件开发具有如下特点: ;1.采用宿主机与目标板的模式进行开发;;2.软硬件协同设计3.技术要求高,开发难度大4.应用软件需要固化5.尽可能减少资源占用和提高程序的执行速度;;main( )
{
Initialize( ) ; // 系统初始化
while(1) // 无限循环
{
if (condition_1 ) action_1( ); // 如果满足条件1,处理事件1
if (condition_2 ) action_2( ); // 如果满足条件2,处理事件2
……
if (condition_n) acition_n ( ); // 如果满足条件n,处理事件n
task_1();// 无条件完成任务1
task_2();// 无条件完成任务2
……
task_m();// 无条件完成任务m
}
};前后台程序结构也称为中断驱动结构。应用程序由主程序、子程序和中断服务程序组成。
在执行主程序时,首先进行系统的初始化,然后进入一个无限循环体,在无限循环体内,像循环轮转程序结构一样按照安排好的顺序有条件或无条件地完成各个任务,这部分工作称为后台。
该程序结构使用中断来处理事件,每种事件具有不同的优先级,当事件发生时,主程序暂停现行的工作转到对应的中断服务程序去处理中断事件,这部分工作称为前台。 ;(2)前后台程序结构;main( )
{
Initialize( ) ; // 系统初始化
while(1) // 无限循环
{
task_1();// 无条件完成任务1
task_2();// 无条件完成任务2
……
task_m();// 无条件完成任务m
}
}
ISR1( ) // 中断服务程序1
ISR2( ) // 中断服务程序2
……
ISRn( ) // 中断服务程序n;2.有操作系统的情形;;声明任务1 ;
声明任务2 ;
……
声明任务N ;
void main ( ) // 主函数
{
OSInit ( ) ; // uCOS-II 初始化
OSTaskCreate (MyTask1, MyTask1Agu,……) ;// 创建任务1
OStaskCreate (MyTask2, MyTask1Agu,……) ;// 创建任务2
……
OStaskCreate (MyTaskN, MyTask1Agu,……) ;// 创建任务N
OSAddTask_Init(0); //系统任务初始化
OSStart ( ) ; //启动任务
return 0 ;
}
;Void Mytask1 (void*pdata) // 定义任务1
{
for(; ;) {
//可以中断的应用程序代码段 ;
OS_ENTER_CRITICAL(); // 关中断
不可以中断的用应用程序代码段 ;
OS_EXIT_CRITICAL();// 开中断
}
}
Void Mytask2 (void*pdata) //定义任务2
{
文档评论(0)