学帮网 > 计算机论文 > 教育资讯

基于μC/OS的嵌入式系统应用开发研究[1]

来源:学生作业学帮网 编辑:学帮网 时间:2024/05/06 17:01:58 计算机论文
基于μC/OS的嵌入式系统应用开发研究[1]计算机论文
【毕业论文网 - 计算机论文】
摘要:本文介绍了嵌入式系统的概念,分析了μC/OS的内核结构,并详细介绍了在具有ARM体系结构的S3C44B0微处理器上进行μC/OS操作系统的移植和应用程序及驱动程序的开发。
关键词:嵌入式系统 μc/os 微处理器 Abstract: The paper bring forward the conception of Embedded System ,Analyse the core kere of μc/os ,moreover detailedly introduce grafting the μC/OS's operating system on the ARM's architectural structure of S3C44B0's microprocessor and empolder on application and driver program 。 Key words: Embedded System μc/os MicroProcessor 一、嵌入式系统概述 嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,目前嵌入式系统已经渗透到日常生活的各个方面,其在工业、服务业、消费电子等领域的应用范围都不断扩大,嵌入式计算机系统的正式定义为:以应用为中心,以计算机技术为基础,软件硬件可裁减,符合应用系统对功能、可靠性、成本、体积、功耗的严格要求的专用计算机系统。嵌入式系统的主要特征有:系统内核小;专用性强;系统精简;嵌入式软件要求高实时性的操作系统软件;软件要求高质量和高可靠性;嵌入式系统开发需要专门的开发工具和环境。  嵌入式系统由硬件和软件两大部分组成,在本开发应用中,选择ARM7TDMI内核结构的samsung公司的s3c44b0作为微处理器芯片,该芯片具有主频高、运算速度快,超低功耗、价格低廉、结构简单等特点,在该内核基础上扩展了一系列完整的通用外围器件,主要有:片内8KB高速缓存、带有1个专用DMA通道的LCD控制器、2个通用DMA通道、1个多主机I2C总线控制器、5个PWM定时器及1个内部定时器、71个通用I/O口、8个外部中断源、8个10位ADC等资源,主频为66MHZ,系统支持大小端模式,共256MB的地址空间,支持8/16/32位数据总线编程。 开发平台外配与用户交互接口有RS-232串口电路、外扩flash、sdram,USB控制电路、以太网电路、键盘,JTAG接口电路部分。 实时嵌入式操作系统的种类繁多,大体上可以分为两种:商用型和免费型,前者系统功能稳定、可靠,并有完善的技术支持和售后服务,建立应用开发较为容易,但价格昂贵,代表性的有美国WindRiver公司的VxWorks操作系统、Microsoft公司的WinCE操作系统;免费型可以节约成本,且源码公开,便于开发,代表性的有嵌入式Linux系统、μC/OS系统。 二、嵌入式μC/OS的体系结构介绍 由于μC/OS结构简单,编程工具绝大部分是C语言编程,可以在大多数界面友好的编译器中编译生成目标代码,如Borland C、Keil等工具,且其内核最小可以到几十K,可以在多种体系结构的微处理器上移植,用户的工作较小,源代码开放,便于学习。μC/OS-II的几大组成部分有: 核心部分(OSCore.c) 是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。   任务处理部分(OSTask.c)完成任务的操作;包括任务的建立、删除、挂起、恢复等等。   时钟部分(OSTime.c)主要完成任务延时等操作。
  任务同步和通信部分 为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;  μC/OS-II的软件体系结构如图1所示。从图1中可以看到,如果要使用μC/OS-II, 必须为其编写OS_CPU.H、OS_CPU_C.C、OS_CPU_A.ASM三个文件。 三、μC/OS在ARM微处理器上的移植 μC/OS-II的全部源代码量大约是6000-7000行,一共有15个文件。将 μC/OS-II 移植到ARM处理器上,需要完成的工作也非常简单,只需要修改三个和ARM体系结构相关的文件,代码量大约是500行。以下分别介绍这三个文件的移植工作: OS_CPU.H 文件 数据类型定义,这部分的修改是与所用的编译器相关的,不同的编译器会使用不同的字节长度来表示同一数据类型,这里采用的编译器为集成可视化开发环境ARM SDT 2.5,相关的数据类型的定义如下: #define BYTE INT8S /* Define data types for backward co计算机论文