嵌入式系统设计报告
嵌入式操作系统报告
学院
专业
题目LED 、按键、LCD 、MPU6050任务切换
姓名学号
指导教师
日期
摘要
随着电子技术的发展, 嵌入式技术成为当今计算机应的主流技术, 嵌入式操作系统是嵌入式系统发展到一定阶段的产物,是为了满足日益复杂的嵌入式系统设计的要求而产生的。随着微处理器功能的不断提升,嵌入式操作系统的应用范围也变得越来越强大。对基于特定嵌入式操作系统上的软件设计研究己成为了近年来的热点,井且对于嵌入式操作系统在实际工程中的推广应用有着重要的意义。
本文使用蒲公英STM32F103开发板,利用Keil 软件创建工程。移植UCOS 系统内核,应用C 语言编写程序。完成了四个任务的创建和相互调度:LED 灯、按键、LCD 屏幕显示、MPU6050加速度传感器数据采集,通过按键更改LED 灯的显示效果、通过实时采集MUP6050传感器的数据,显示在LCD 上,并用信号量和消息邮箱进行任务之间的信息传递。
关键词:UCOS-ii 、嵌入式系统、STM32F103、keil
ABSTRACT
With the development of electronic technology, embedded technology has become the mainstream technology in the computer, the embedded operating system is the product of a certain stage of development of embedded system, is produced in order to meet the design requirements of the embedded system is becoming more complicated. With the continuous improvement of the function of the microprocessor, the application of embedded operating system becomes more and more powerful. The research of software design based on specific embedded operating system has become a hot spot in recent years, and it has important significance for the application of embedded operating system in practical engineering.
In this paper, the use of dandelion STM32F103 development board, the use of Keil software to create the project. Transplant UCOS system kernel, the application of C language program. Complete the construction of four tasks and scheduling: LED lights, buttons, LCD display screen, MPU6050 acceleration sensor data acquisition, change the LED lamp through the button display, through real-time acquisition of MUP6050 sensor data, display on the LCD, and the task of transmission of information between signal and message mailbox. Key words: UCOS-ii, embedded system, STM32F103, Keil
Key words:
目录
1 绪论 . ................................................................... 1
1.1 研究的目的与意义 .................................................. 1
1.2 嵌入式系统概述 .................................................... 1
1.3 嵌入式操作系统特征及发展现状 ...................................... 2
2 u C/OS-II简介 .......................................................... 3
2.1 u C/OS-II特点 . .................................................... 3
2.2 u C/OS-II内核分析 . ................................................ 3
2.2.1 临界段 . ................................................................................................................................ 3
2.2.2 任务定义及状态 ................................................................................................................. 4
2.2.3 任务控制块(OS TCB) ......................................................................................................... 5
2.2.4 任务调度 . ............................................................................................................................ 5
3 开发环境 . ............................................................... 7
3.1 开发环境 .......................................................... 7
3.1.1 Keil简介 ............................................................................................................................ 7
3.1.2 keil特点 ............................................................................................................................ 7
3.2 硬件环境 .......................................................... 8
3.2.1 蒲公英32F 平台简介 ......................................................................................................... 8
3.2.2 32F103引脚图 .................................................................................................................... 8
3.2.3 蒲公英32F103开发板特点 ............................................................................................... 9
4 程序分析 . .............................................................. 10
4.1 程序流程图 ....................................................... 10
4.2 代码分析 ......................................................... 11
4.2.1 lcd显示功能 .................................................................................................................... 11
4.2.2 按键功能 . .......................................................................................................................... 11
4.2.3 LED灯控制功能 ................................................................................................................ 12
4.2.4 加速度传感功能 ............................................................................................................... 13
4.2.5 在屏幕上显示传感数字 ................................................................................................... 13
5 5运行结果 ............................................................. 14
5.1 程序代码截图 ..................................................... 14
5.2 实物图 ........................................................... 15
6 心得体会 . .............................................................. 15
参考文献 . ................................................................ 16
致谢 . .................................................................... 16
1 绪论
1.1 研究的目的与意义
随着单片机技术的普及和日益成熟,嵌入式系统已经无处不在、无时不刻地影响着人们的生活了。各种嵌入式产品的功能不断增强、精确程度不断提高、响应时间逐渐缩短,可靠性不断提高且成本不断降低。嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。简言之,嵌入式系统是根据应用的要求,将操作系统和功能软件集成于计算机硬件系统之中,从而实现了软件和硬件一体化的计算机系统。嵌入式系统一般不提供与终端用户交互的手段,具有小巧、高度自动化和响应速度快等特点。从7年代第一台微处理器的出现到现在,嵌入式系统的发展己经有二十几年的历史了,随着以计算机技术,通讯技术为主的信息技术的迅速发展和互联网技术的广泛应用,嵌入式系统的发展己显示出微型化和专业化的趋势。正是由于嵌入式系统的种种优越性,嵌入式系统自产生那天起便开始迅速的发展,如今嵌入式系统己成为计算机领域的一个重要的组成部分。
1.2 嵌入式系统概述 嵌入式系统(Embedded system ),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会( U.K. Institution of Electrical Engineer )的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。
嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。通常,嵌入式系统是一个控制程序存储在ROM 中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。
嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的;所以经常称为“固件”。
1.3 嵌入式操作系统特征及发展现状
嵌入式操作系统井不是简单嵌入的操作系统,它与通常意义上的操作系统有一定的区别。嵌入式操作系统负责嵌入式系统的全部软、硬资源的分配、调度工作,控制井协调井发活动,它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。与通用的操作系统相比,
嵌入式操作系统具有如下一些特征:
(1)良好的移植性。由于嵌入式设备硬件平台的多样性,CPU 芯片的快速更新,嵌入式操作系统要求具有更好的硬件适应性。嵌入式操作系统一般都支持广泛的运行平台,同时对每种微处理器都提供相应的编译器、连接器、调试器和加载工具以及性能测试工具等一系列工具链,从而形成从开发、调试到运行的一体化支持;
(2)小巧,要求占用更小的硬件资源。嵌入式系统所能提供的资源有限,所以嵌入式操作系统必须做的小巧以满足嵌入式系统硬件的限制。况且由于嵌入式系统自身的特点,它所需要的模块和功能更小巧,一些在桌面操作系统中的功能在嵌入式操作系统也就不适用了;
(3)实时性。大多数嵌入式系统工作在实时性要求很高的环境中,这就要求嵌入式操作系统必须将实时性作为一个很重要的方面来考虑。在信息时代,人们必须在有效的时间内对到来的信息进行处理,从而为进一步的决策分析争取时间。所以嵌入式操作系统必须体现一定的实时性;
(4)可装载和卸载。由于嵌入式系统需要根据应用的要求进行装卸,所以嵌入式操作系统也必须能够适应应用的需要进行装卸,对嵌入式操作系统的各个部分进行优化和删除。
(5)固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM 中。辅助存储器在嵌入式系统中使用的很少,因此嵌入式操作系统的文件管理功能应该被拆卸,取而代之的是各种内存文件系统;
(6)弱交互性。大多数嵌入式系统的工作过程不需要人的干预。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统调用命令向用户程序提供服务。
(7)强稳定性。嵌入式系统一旦开始运行就不需要人的过多干预。井且很多的嵌入式系统工作在很恶劣的工业生产的环境下。在这种条件下,要求嵌入式操作系统具有较高的稳定性;
(8)统一的接口。随着各种各样的嵌入式操作系统的出现人们有必要为嵌入式系统提供的接口进行约定,从而为嵌入式应用软件的设计者提供统一的服务接口,为嵌入式软件的运行提供平台的无关性。正是由于嵌入式操作系统所具有的这些鲜明的特点才使得其在嵌入式系统的开发中得到了广泛的应用,近年来全球嵌入式操作系统的发展空间更是正随着互联网、通讯和计算机市场的飞速增长而不断的扩大。但另一个方面,尽管国外许多公司也有对此类系统几十年的开发经验,可到目前为止在嵌入式系统上井无一个统一的国际标准,这就使得市场上出现了各种不同种类的嵌入式操作系统,这些操作系统各有特色,其采用的体系结构和技术手段也各有优点,应用范围也不尽相同。
2 u C/OS-II简介
2.1 u C/OS-II特点
u C/OS- II是由美国人Jean J. Labrosse编写的一个公开源代码的,微内核嵌入式实时操作系统,其实时性能和内核的健壮性早已经在大量的实际应用中得到了证实。它是由u C/OS升级而来的,并且做了很大的改进。下面简单介绍一下它的特点:
(1)公开源代码,且源代码中有详细的注释,源代码清晰易读且结构协调、组织有序,对实时操作系统的基本原理做了非常详细的解释,简单易懂。
(2)移植性好,u C/OS- II 的源代码绝大部分是用ANSI C 编写的,与微处理器相关的部分是用汇编语言写的,使得u C/OS- II便于移植到其它处理器上。
(3)可裁剪,用户可以根据自己的寄存器空间的大小和实际需要,只保留u C/OS- II 中应用程序需要的那些系统服务。
(4)稳定性和可靠性高,抗干扰能力强。
(5) u C/OS- II完全是占先式的实时内核。这意味着u C/OS- II总是运行就绪状态下优先级最高的任务。
(6) u C/OS- II每个任务的优先级必须是不同的,这意味着} C/OS- II不支持时间片轮转调度法(Round-robin Scheduling ) }Z} o
(7) u C/OS- II的函数调用与服务的执行时间具有其可确定性。
(8)u C/OS- II提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。
2.2 u C/OS-II内核分析
u C/OS- II内核负责管理各个任务,或者说为每一个任务分配CPU 时间及其相关的资源,并且负责任务之间的通信。内核提供的基本服务是任务切换。使用实时内核可以大大简化应用系统的设计,因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。接下来从几方面对u C/OS-II的内核作出介绍:
2.2.1 临界段
代码的临界段也称为临界区,指处理时不可分割的一段代码。一旦这部分代码开始执行,则不允许任何中断。为确保临界段代码的执行,在进入临界段之前要关中断,而临界段代码执行完以后要立即开中断。
和其它内核一样,u C/OS- II为了处理临界段代码需要关中断,处理完毕后再开中断。这使得u C/OS- II能够避免同时有其它任务或中断服务进入临界段代码。关中断的时间是实时内核开发商应提供的最重要的指标之一,因为这个指标影响用户系统对实时事件的响应性。 u C/OS- II 努力使关中断时间降至最短,但就使用u C/OS- II 而言,关中断的时间很大程度上取决于微处理器的架构以及编译器所生成的代码质量。微处理
器一般都有关中断/开中断指令,用户使用的C 语言编译器必须有某种机制能够在C 中直接实现关中断/开中断地操作。u C/OS- II定义两个宏来关中断和开中断,以便避开不同C 编译器厂商选择不同的方法来处理关中断和开中断。 u C/OS- II中的这两个宏调用分别是:OS ENTER CRITICAL()和OS_ EXITes CRITICAL() 。
2.2.2 任务定义及状态
u C/OS- II 的任务是一个无限的循环,也称作一个线程,是一个简单的程序,该程序可以认为CPU 完全只属该程序自己。一个任务可以有返回类型,有形式参数变量,但是任务是绝不会返回的。当任务完成以后,任务可以自我“删除”,即u C/OS- II不理会这个任务了,这个任务的代码也不会再运行。实时应用程序的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有它自己的一套CPU 寄存器和自己的栈空间。u C/OS- II可以管理多达64个任务,其中空任务(IDLE)和统计任务(STATISTICS)被系统占用。任务在建立时必须被赋予不同的优先级,优先级的数值越小,则表示任务的优先级越高。u C/OS- II 总是运行进入就绪状态的优先级最高的任务。
多任务运行的实现是靠CPU 在许多任务之间转换、调度,CPU 只有一个,轮番服务于一系列任务中的某一个。多任务运行使CPU 的利用率得到最大的发挥,并使应用程序模块化。在实时应用中,多任务化的最大特点是,开发人员可以将很复杂的应用程序层次化。使用多任务,应用程序将更容易设计与维护。u C/OS- II 中任务的状态包括运行态、就绪态、等待状态、睡眠态和中断服务态。图2-1是u C/OS- II控制下的任务状态转换过程。在任一给定的时刻,任务的状态一定是这五种状态之一。
2.2.3 任务控制块(OS TCB)
任务控制块(OS TCB)是一个数据结构,是用来描述任务的一些属性,包括任务标识号、任务优先级、任务状态信息、任务控制信息以及堆栈信息等。u C/OS- II 中是采用任务控制块的方式对任务进行管理的。任务控制块在任务被建立时被初始化,当任务的CPU 使用权被剥夺时,u C/OS- II用任务控制块来保存该任务的状态。而当任务重新得到CPU 使用权时,任务控制块能恢复任务到被中断前的状态,确保任务从中断的那一点继续执行下去。任务控制块全部驻留在RAM 中。应用程序中可以有的最多任务数(OS一AXes TASKS )是在文件OS 一FCzH 中定义的。这个最多任务数也是u C/OS- II分配给用户程序的最多任务控制块的数目。将OS MAX TASKS的数目设置为用户应用程序实际需要的任务数可以减小RAM 的需求量。所有的任务控制块都是放在任务控制块列表数组 OSTCBTbI 中的。在} u C/OS- II初始化的时候,所有任务控制块OS 一CBs 被链接成单向空任
务链表。当任务一旦建立,空任务控制块指针OSTCBFreeList 指向的任务控制块便赋给了该任务,然后OSTCBFreeList 的值调整为指向下链表中下一个空的任务控制块。一旦任务被删除,任务控制块就还给空任务链表。
2.2.4 任务调度
在u C/OS- II中,最多支持63个任务,每个任务只能有独立的优先级,即不能有2个相同优先级的任务,系统也不支持时间片轮番调度。因此,Rhealstone 方法的定义,uC/OS- II的实时性主要体现在抢占(Preemption)按照时间和中断等待时间(Latency ) u C/OS- II 是一种基于优先级调度的占先式内核。在系统运行的过程中,可能发生任务调度的时机有:
(1)对任务操作的时候,包括:创建或者删除任务,挂起或者恢复任务,改变任务优先级。
(2)任务主动使用OSTimeDly 函数延时的时候。
(3)发送(或者等待) 信号量、邮箱、消息的时候。
(4)中断函数返回的时候。中断往往会使一个更高优先级任务处于就绪状态,包括使用信号量等或者直接恢复某个任务。所以,在系统退出中断的时候,就需要判断是否有更高优先级的任务处于就绪状态,如果有,则需要进行任务调度。
(5)给系统的任务调度器解锁的时候。在大多数情况下,u C/OS- II中断级的任务调度是按照如图2-2所示的流程进行的。其中Tr 为系统的中断等待时间。Tp 为系统的抢占时间。Ts 为系统的中断响应与查找的时间,主要包括中断入口程序的执行,注册在系统中的中断向量的查找等。Td 为执行中断处理所用的时间。Tw 为系统判断并查找处于就绪状态下优先级最高的任务和中断级任务切换的时间。而Tc 则可以认为满足:0≦Tc ≦成系统的最长关中断时间。
当有多个中断产生的时候,如果因为中断的优先级低或者系统不允许中断嵌套,则u c/os- II的中断级任务调度将按照如图2-3所示的流程进行。
u C/OS- II 是一个实时性比较强的多任务操作系统,很容易评估出系统调度的最长响应时间。每一个任务都是一个死循环。u C/OS-II V2.86 可以扩展至支持256个任务,除去系统自带的优先级被设置为最低的空闲任务
OSTask Idle()和一个u C/OS-II提供的统计任务,用户可以自己制定的任务多达254个。u C/OS-II内核通过一个被称为任务控制块(OS_TCB)的数据结构来完成任务的建立、调度、执行和删除操作。
u C/OS-II中每个任务都具备五种状态,当内核进行一次调度或者发生相关的事件时,任务就会在这五种状态之间转换,如图2-4所示。
图2.4uC/OS-II的任务就绪表
3 开发环境
3.1 开发环境
3.1.1 K eil 简介
Keil C51是美国Keil Software公司出品的51系列兼容单片机C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil 提供了包括C 编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision )将这些部分组合在一起。运行Keil 软件需要WIN98、NT 、WIN2000、WINXP 等操作系统。
3.1.2 k eil 特点 ⒈Keil C51
生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
⒉与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C 来开发,更为便捷。
3.2 硬件环境
3.2.1 蒲公英32F 平台简介 STM32F1系列属于中低端的32位ARM 微控制器,该系列芯片是意法半导体(ST )公司出品,其内核是Cortex-M3。
该系列芯片按片内Flash 的大小可分为三大类:小容量(16K 和32K )、中容量(64K 和128K )、大容量(256K 、384K 和512K )。
芯片集成定时器,CAN ,
ADC
,
SPI
,
I2C ,
USB ,UART ,等多种功能。
其结构和硬件框图如图3-1,3-2所示:
图3-1蒲公英32F103开发板 图3-2 32F103硬件框图
3.2.2 32F103引脚图
(1)LED 灯电路
图3.3 LED输出端口 图3.4 LED电路
(2)按键电路
图3.5按键输出端口 图3.6按键电路
(3)LCD 电路
图3.7 LCD输出电路
图3.8LCD 外围电路
(4)MPU6050电路
图3.9 MPU6050外围电路
3.2.3 蒲公英32F103开发板特点
1、ARM 最新的Cortex-M3内核。优先级抢占的中断控制器,支持中断自动嵌套,硬件完成现场保护与恢复,中断嵌套时,只需保护和恢复一次现场,即使在恢复现场的时候再次中断也不需要再次保护现场,只需6个clk 的调整时间。
2、外设的引脚居然可以重影射
3、RAM 可以通过位绑定技术按位来访问
4 程序分析
4.1 程序流程图
4-1程序整体流程图
4.2 代码分析
4.2.1 l cd 显示功能
void TaskMessageLCD(void *pParam)
{
err=OS_ERR_NONE; 定义异常,为传参数做准备 PUTword8x16(0,0,23,1);//x PUTchar16x16(0,1,2); //轴 PUTword8x16(1,0,24,1);//y PUTchar16x16(1,1,2); //轴 PUTword8x16(2,0,25,1);//z PUTchar16x16(2,1,2); //轴 PUTword8x16(3,0,6,0);//g PUTword8x16(3,1,18,0);//s PUTword8x16(3,2,25,0);//z PUTword8x16(3,3,25,0);//z PUTchar16x16(3,3,0); //高 PUTchar16x16(3,4,1);//尚
代码解析:通过PUTchar16x16(a,b,c)定义字符,通过改变a,b 的数值来改变数据在LCD 显示屏上的位置(a 为X 轴坐标,b 为Y 轴坐标)。改变C 的排位。
PUTword8x16(a,b,c,d)为定义字母,通过改变A,B 的数据来改变在LCD 显示屏上的位置, 通过改变C 的数值来获取A-Z 的26个英文字母字模并显示,改变D 在决定数据的大小写,0为小写字母,1为大写字母。
4.2.2 按键功能
void UserTaskKEY(void *pParam)
{
key_i=0;//把按键置0 MyEventSem=OSSemCreate(0);//创建信号量,为了信号之间的通信做准备 while(1) { OSTimeDly(wait1); //延时为1个时钟滴答 if(!GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_15))//按下按键来控制pin=15
口
}
代码解析:设置一个按键,用while 语句设置一个时钟延时,if 语句控制pin=15口。 } { } OSSemPost(MyEventSem);
4.2.3 L ED 灯控制功能
void UserTaskLED(void *pParam)
{
}
代码解析:设置key mark 变量,key mark 为布尔量,通过电平的反转改变,用if 语句判断key mark的值控制LED 灯的亮灭。 key_mark=0;//设置key_mark变量 err=0;//异常为0 while(1)//循环 { } OSSemPend(MyEventSem,0,&err); /*电平翻转*/ if(key_mark==0)//如果变量为0 { } else { } GPIO_ResetBits(GPIOE, GPIO_Pin_4); //pin4,5口LED 灯亮 GPIO_ResetBits(GPIOE, GPIO_Pin_5); key_mark=0; //标志位 GPIO_SetBits(GPIOE, GPIO_Pin_4);//pin4,5口LED 灯不亮 GPIO_SetBits(GPIOE, GPIO_Pin_5); key_mark=1;//标志位 OSTimeDly(wait1); //延时为1个时钟滴答
4.2.4 加速度传感功能
void TaskMessageMPU(void *pParam)
{
err=OS_ERR_NONE;
scount=1;
myMBox=OSMboxCreate(&scount);//创建邮箱
OSMboxPend(myMBox,0,&err); //请求消息,若不存在则堵塞 while(1) { OSTimeDly(wait2);// 延时1个时钟滴答
scount=GetData(ACCEL_XOUT_H)/16384;//将X 传感器的值存储到
scount 中
} OSMboxPost(myMBox,&scount);//将消息发送接收邮箱里 scount=GetData(ACCEL_YOUT_H)/16384; scount=GetData(ACCEL_ZOUT_H)/16384; OSMboxPost(myMBox,&scount); OSMboxPost(myMBox,&scount); }
代码解析:创建一个消息邮箱Mbox ,将采集到的加速度数据存入邮箱之中并发送给接收者,使数据在LCD 显示屏显示出来。
4.2.5 在屏幕上显示传感数字
while(1)
{ prcount=(INT32U * )OSMboxPend(myMBox,0,&err); putnum(0,10,*prcount);//将接收到X 的数值显示在LCD 屏幕上 putnum(1,10,*prcount);//将接收到Y 的数值显示在LCD 屏幕上 putnum(2,10,*prcount); prcount=(INT32U * )OSMboxPend(myMBox,0,&err); prcount=(INT32U * )OSMboxPend(myMBox,0,&err);
}
putnum(0,10,*prcount);为在第一行,第10列上显示陀螺仪的x 值
代码解析:将消息邮箱里的加速度数值通过消息邮箱分别发送并存入到prcount 中,然后将X ,Y ,Z 的轴的加速度显示到LCD 屏上。
}
5 5运行结果
5.1 程序代码截图
图5-1 字模表
图5-2运行代码
5.2 实物图
图5-3
图5-4功能按键 陀螺仪
6 心得体会
陈丰:
本次嵌入式程序设计课让我学到了很多有用的知识,但是这门课更注重的是实践,无论是在编程的基础、还是程序整体的设计,还是f103的应用都对我是一个不小的考验。在编写代码的过程中,我虽然有过多次失败,但是最终都通过细心认真的排查,发现并解决了问题。在字模制作的时,伪代码的生成也是给我带来了不小的考验,最终我及时调整策略,选择了图片生成的方法。并且通过这次嵌入式设计课程我也了解到,只有掌握扎实的编程基础,充分理解开发板的工作原理,并具备软件开发的思路,且认真仔细,持之以恒,根据不同的出错情况作出不同的排错方案,只有这样坚持下去,才能最终成功。通过嵌入式系统设计课程,我认为最重要的不是学到知识,而是是学到了一
种严谨的学习方法以及学习态度。从思路构想,代码设计,编译,运行,到最后检查问
题,哪一个环节都磨练着我的耐心。还有团队协作也是非常重要的,队友之间彼此交流,探讨,互相查漏补缺,才能克服了这一环环的问题,最终取得成功。
参考文献
[1]范亚伟基于嵌入式操作系统μC/OS-Ⅱ的嵌入式软件设计研究 燕山大学 2005.3
[2]尹江会 嵌入式实时操作系统μC/OS-II在ARM 中的应用研究 山东大学 2005.4
[3]张军 基于μC/OS-Ⅱ的嵌入式实时系统的研究与应用 中南大学 2009.6
[4]陈宝基 嵌入式实时操作系统uC/OS-Ⅱ应用开发研究 2005.4
致谢