嵌入式系统实习报告

时间:2024.3.27

555.jpg


目  录

1 嵌入式系统简介... 3

1.1嵌入式系统的概念... 3

1.2嵌入式系统发展历史... 3

1.2.2简单操作系统阶段... 4

1.2.3 实时操作系统阶段... 4

1.2.4 面向Internet阶段... 4

1.3嵌入式系统的特点... 4

1.4嵌入式操作系统比较... 5

2 嵌入式系统实习的目的... 7

3 嵌入式系统实习的内容... 7

4嵌入式系统的实习程序... 7

4.1实习程序... 7

4.2部分程序截图... 14

5心得体会... 15

6 参考文献... 16

1 嵌入式系统简介

  1.1嵌入式系统的概念

    在现在日益信息化的社会中,计算机和网络已经全面渗透到日常生活的每一个角落。对于我们每个人,需要的已经不再仅仅是那种放在桌上处理文档,进行工作管理和生产控制的计算机;各种各样的新型嵌入式系统设备在应用数量上已经远远超过通用算机,任何一个普通人可能拥有从大到小的各种使用嵌入式技术的电子产品,小到mp3,PDA等微型数字化产品,大到网络家电,智能家电,车载电子设备。而在工业和服务领域中,使用嵌入式技术的数字机床,智能工具,工业机器人,服务机器人也将逐渐改变传统的工业和服务方式。

目前嵌入式系统技术已经成为了最热门的技术之一,吸引了大批的优秀人才投入其中。但是对于何为嵌入式系统,什么样的技术又可以称之为嵌入式技术,仍在讨论之中。
    广义上讲,可以认为凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。作为系统核心的微处理器又包括三类:微控制器(MCU)、数字信号处理器(DSP)、嵌入式微处理器(MPU)。所以有人简单的说:“嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。”还有人认为嵌入式系统就是“以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可*性、成本、体积、功耗严格要求的专用计算机系统”。应该说后者从功能应用特征上比较好的给出了嵌入式系统的定义,嵌入式的概念的分析根本上应该从应用上加以切入。
    狭义上讲,人们更加强调那些使用嵌入式微处理器构成独立系统,具有自己的操作系统并且具有某些特定功能的系统,这里的微处理器专指32位以上的微处理器。按照这种定义,典型的嵌入式系统有使用x86的小型嵌入式工控主板,在各种自动化设备,数字机械产品中有非常广阔的应用空间;另外一大类是使用Intel,Motorola等专用芯片构成的小系统,它不仅仅在新兴的消费电子和通讯仪表等方面获得了巨大的发展应用空间,而且甚至有趋势取代传统的工控机。现在大家更加清楚的看到:嵌入式技术的春天已经来了。所以也就难怪嵌入式系统成为当前最热门的技术之一。

1.2嵌入式系统发展历史
    虽然嵌入式系统是近几年才开始真正风靡起来的,但事实上嵌入式这个概念却很早就已经存在了,从上个世纪70年代单片机的出现到今天各种嵌入式微处理器、微控制器的广泛应用,嵌入式系统少说也有了近30年的历史。纵观嵌入式系统的发展历程,大致经历了以下四个阶段:
1.2.1 无操作系统阶段
    嵌入式系统最初的应用是基于单片机的,大多以可编程控制器的形式出现,具有监测、伺服、设备指示等功能,通常应用于各类工业控制和飞机、导弹等武器装备中,一般没有操作系统的支持,只能通过汇编语言对系统进行直接控制,运行结束后再清除内存。这些装置虽然已经初步具备了嵌入式的应用特点,但仅仅只是使用8位的CPU芯片来执行一些单线程的程序,因此严格地说还谈不上"系统"的概念。
    这一阶段嵌入式系统的主要特点是:系统结构和功能相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简便、价格低廉,因而曾经在工业控制领域中得到了非常广泛的应用,但却无法满足现今对执行效率、存储容量都有较高要求的信息家电等场合的需要。

1.2.2简单操作系统阶段
   20世纪80年代,随着微电子工艺水平的提高,IC制造商开始把嵌入式应用中所需要的微处理器、I/O接口、串行接口以及RAM、ROM等部件统统集成到一片VLSI中,制造出面向I/O设计的微控制器,并一举成为嵌入式系统领域中异军突起的新秀。与此同时,嵌入式系统的程序员也开始基于一些简单的"操作系统"开发嵌入式应用软件,大大缩短了开发周期、提高了开发效率。
这一阶段嵌入式系统的主要特点是:出现了大量高可*、低功耗的嵌入式CPU(如Power PC等),各种简单的嵌入式操作系统开始出现并得到迅速发展。此时的嵌入式操作系统虽然还比较简单,但已经初步具有了一定的兼容性和扩展性,内核精巧且效率高,主要用来控制系统负载以及监控应用程序的运行。

1.2.3 实时操作系统阶段
   20世纪90年代,在分布控制、柔性制造、数字化通信和信息家电等巨大需求的牵引下,嵌入式系统进一步飞速发展,而面向实时信号处理算法的DSP产品则向着高速度、高精度、低功耗的方向发展。随着硬件实时性要求的提高,嵌入式系统的软件规模也不断扩大,逐渐形成了实时多任务操作系统(RTOS),并开始成为嵌入式系统的主流。
    这一阶段嵌入式系统的主要特点是:操作系统的实时性得到了很大改善,已经能够运行在各种不同类型的微处理器上,具有高度的模块化和扩展性。此时的嵌入式操作系统已经具备了文件和目录管理、设备管理、多任务、网络、图形用户界面(GUI)等功能,并提供了大量的应用程序接口(API),从而使得应用软件的开发变得更加简单。

1.2.4 面向Internet阶段
     21世纪无疑将是一个网络的时代,将嵌入式系统应用到各种网络环境中去的呼声自然也越来越高。目前大多数嵌入式系统还孤立于Internet之外,随着Internet的进一步发展,以及Internet技术与信息家电、工业控制技术等的结合日益紧密,嵌入式设备与Internet的结合才是嵌入式技术的真正未来。

1.3嵌入式系统的特点
     用于嵌入式设备的计算机几乎和计算机本身的历史一样长久,并且随着计算机技术的发展,嵌入式系统已成为计算机领域的一个重要组成部分。嵌入式设备几乎包括了我们周围的所有电器设备:小至掌上PDA、电视机顶盒,大至汽车、电梯,安全系统等等。据统计,每年只有10%-20%的计算机芯片是为台式或便携式电脑而设计的,这也意味着每年有10至20亿个CPU是为嵌入式设备而设计制造的。

嵌入式计算机系统同通用型计算机系统相比具有以下特点:嵌入式系统通常是面向特定应用的。嵌入式CPU与通用型的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。
嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。

嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。
嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。
    为了提高执行速度和系统可*性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。
嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。


1.4嵌入式操作系统比较
    随着Internet技术的发展、信息家电的普及应用及嵌入式操作系统EOS(Embedded Operating System)的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化以及应用的专用性等方面具有较为突出的特点。EOS是相对于一般操作系统而方的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件处理等外,还有以下特点:
1.可装卸性。开放性、可伸缩性的体系结构。
2.强实时性。EOS实时性一般较强,可用于各种设备控制当中。
3.统一的接口。提供各种设备驱动接口。
4.操作方便、简单、提供友好的图形GUI,图形界面,追求易学易用。
5.提供强大的网络功能,支持TCP/IP协议及其它协议
6.更好的硬件适应性,也就是良好的移植性。
国际上用于信息电器的嵌入式操作系统有40种左右。现在,市场上非常流行的EOS产品,包括3Com公司下属子公司的Palm OS,Microsoft公司的Windows CE、开放源代码的Linux。

三种常用的嵌入式操作系统
1.Palm OS
Palm是3Com公司的产品,其操作系统为Palm OS。Palm OS是一种32位的嵌入式操作系统。Palm提供了串行通信接口和红外线传输接口,利用它可以方便地与其它外部设备通信、传输数据;拥有开放的OS应用程序接口,开发商可根据需要自行开发所需的应用程序。Palm OS是一套具有很强开放性的系统,现在有大约数千种专用为Palm OS编写的应用程序,从程序内容上看,小到个人管理、游戏,大到行业解决方案,Palm OS无所不包。在丰富的软件支持下,基于Palm OS的掌上电脑功能得以不断扩展。
Palm OS是一套专门为掌上电脑开发的OS。在编写程序时,Palm OS充分考虑了掌上电脑内存相对较小的情况,因此它只占有非常小的内存。由于基于Palm OS编写的应用程序占用的空间也非常小(通常只有几十KB),所以,基于Palm OS的掌上电脑(虽然只有几MB的RAM)可以运行众多应用程序。

2.Windows CE
Windows CE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作。它是精简的Windows 95。Windows CE的图形用户界面相当出色。其中CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E代表电子产品(Electronics)。与Windows 95/98、Windows NT不同的是,Windows CE是所有源代码全部由微软自行开发的嵌入式新型操作系统,其操作界面虽来源于Windows 95/98,但Windows CE是基于Win32 API重新开发的、新型的信息设备平台。Windows CE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点。Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C++等)、使用同样的函数、使用同样的界面网格,使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。
Windows CE的设计目标是:模块化及可伸缩性、实时性能好,通信能力强大,支持多种CPU。它的设计可以满足多种设备的需要,这些设备包括了工业控制器、通信集线器以及销售终端之类的企业设备,还有像照相机、电话和家用娱乐器材之类的消费产品。一个典型的基于Windows CE的嵌入系统通常为某个特定用途而设计,并在不联机的情况下工作。它要求所使用的操作系统体积较小,内建有对中断的响应功能。

3.Linux
Linux是一个类似于Unix的操作系统。它起源于芬兰一个名为Linus Torvalds的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。Linux从1991年问世到现在,短短10年的时间内已发展成为一个功能强大、设计完善的操作系统,伴随网络技术进步而发展起来的Linux OS已成为Microsoft公司的DOS和Windows 95/98的强劲对手。Linux系统不仅能够运行于PC平台,还在嵌入式系统方面大放光芒,在各种嵌入式Linux OS迅速发展的状况下,Linux OS逐渐形成了可与Windows CE等EOS进行抗衡的局面。目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统。Linux现已成为嵌入式操作的理想选择。

2 嵌入式系统实习的目的

1.  了解嵌入式操作系统

2.  学会用uc/os-Ⅱ级编写调试

3 嵌入式系统实习的内容

a.建立三个任务:其中任务一和任务二分别显示专业、班级、姓名和学号等信息

b.专业班级和姓名学号显示切换时间间隔0.5s

c.任务三统计其他两个任务的运行次数并显示

d.任务一和任务二不得同时显示

4嵌入式系统的实习程序

4.1实习程序  

/*

*********************************************************************************************************

*                                                uC/OS-II

*                                          The Real-Time Kernel

*

*                           (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL

*                                           All Rights Reserved

*

*                                               EXAMPLE #1

*********************************************************************************************************

*/

//#include "includes.h"

#include    <stdio.h>

#include    <string.h>

#include    <ctype.h>

#include    <stdlib.h>

#include    <conio.h>

#include    <dos.h>

#include    <setjmp.h>

#include   <\SOFTWARE\uCOS-II\ix86l\bc45\os_cpu.h>

#include    "\SOFTWARE\uCOS-II\EX1_x86L\BC45\SOURCE\OS_CFG.H"

#include    "\SOFTWARE\uCOS-II\source\ucos_ii.h"

#include    "\SOFTWARE\blocks\pc\bc45\pc.h"

/*

*********************************************************************************************************

*                                               CONSTANTS

*********************************************************************************************************

*/

#define  TASK_STK_SIZE                 512       /* Size of each task's stacks (# of WORDs)            */

#define  N_TASKS                        10       /* Number of identical tasks                          */

/*

*********************************************************************************************************

*                                               VARIABLES

*********************************************************************************************************

*/

OS_STK        TaskStk[N_TASKS][TASK_STK_SIZE];        /* Tasks stacks                                  */////OS_STK        TaskStartStk[TASK_STK_SIZE];

char          TaskData[N_TASKS];                      /* Parameters to pass to each task               */

OS_STK   TaskStartStk3[TASK_STK_SIZE];

OS_STK   TaskStartStk1[TASK_STK_SIZE];

OS_STK   TaskStartStk2[TASK_STK_SIZE];

void   TaskStart3(void *data);

void   TaskStart1(void *data);

void   TaskStart2(void *data);

long int    hold1=0,     //任务一次数

                            hold2=0;     //任务二次数

//OS_EVENT  *SEMpevent;

//*********************************************************************************************************

//                                               主函数

//*********************************************************************************************************

void  main (void)

{

        PC_DispClrScr(DISP_FGND_WHITE + DISP_BGND_BLACK);      /* Clear the screen                         */

    OS_ENTER_CRITICAL();

        PC_VectSet(0x08, OSTickISR);                           /* Install uC/OS-II's clock tick ISR        */

        PC_SetTickRate(OS_TICKS_PER_SEC);                      /* Reprogram tick rate                      */

        OS_EXIT_CRITICAL();

        OSInit();                                              /* Initialize uC/OS-II                      */

        PC_DOSSaveReturn();                                    /* Save environment to return to DOS        */

        PC_VectSet(uCOS, OSCtxSw);                             /* Install uC/OS-II's context switch vector */

        OSTaskCreate(TaskStart3, (void *)0, &TaskStartStk3[TASK_STK_SIZE - 1], 0);

        OSTaskCreate(TaskStart1, (void *)0, &TaskStartStk1[TASK_STK_SIZE - 1], 1);

        OSTaskCreate(TaskStart2, (void *)0, &TaskStartStk2[TASK_STK_SIZE - 1], 2);

        OSStart();                                             /* Start multitasking                       */

}

//*****************************************************************************

//                   TASK 1

//*****************************************************************************

void  TaskStart1 (void *pdata)

{

pdata  = pdata;               /* 无任何意义,防止编译器报警 */

for(;;)

{

        PC_DispStr( 0,  0, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  1, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  2, "    *****************************************************************           ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  3, "                              TASK ONE                                          ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  4, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  5, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  6, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  7, "    ****************************************************************            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  8, "    *                                                              *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  9, "    *                                                              *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 10, "    *                                                              *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 11, "    *      **  name:      zeng tao                            *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 12, "    *                                                              *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 13, "    *      **  age :        24                                     *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 14, "    *                                                              *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 15, "    *      **  location     JiLin Province.BeiHua university       *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 16, "    *                                                              *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 17, "    *                                                              *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 18, "    ****************************************************************            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 19, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 20, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 21, "    *****************************************************************           ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 22, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 23, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 24, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        hold1++;

        OSTimeDlyHMSM(0, 0, 1, 0);

        }

}

//*****************************************************************************

//                   TASK 2

//*****************************************************************************

void TaskStart2(void *pdata)

{

         pdata  = pdata;

        for(;;)

{

        PC_DispStr( 0,  0, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  1, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  2, "    *****************************************************************           ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  3, "                              TASK  TWO                                         ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  4, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  5, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  6, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  7, "    ****************************************************************            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  8, "    *                                                              *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0,  9, "    *                                                              *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 10, "    *                                                              *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 11, "    *      **  zhuan ye:        zi dong hua                        *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 12, "    *                                                              *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 13, "    *      **  class   :        08-1                               *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 14, "    *                                                              *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 15, "    *      **  xue hao :        200826020133                        *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 16, "    *                                                              *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 17, "    *                                                              *            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 18, "    ****************************************************************            ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 19, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 20, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 21, "    *****************************************************************           ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 22, "        TASK1:                         TASK2:                                   ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 23, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        PC_DispStr( 0, 24, "                                                                                ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

        hold2++;

        OSTimeDlyHMSM(0, 0, 2, 0);

//     OSSemPost (SEMpevent);

        }

}

//*****************************************************************************

//                   TASK 3

//*****************************************************************************

void  TaskStart3 (void *pdata)

{

        char   s[80];

        pdata = pdata;

        for(;;)

        {

                     sprintf(s, "%5d", hold1);

                     PC_DispStr(18, 22, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);

                     sprintf(s, "%5d", hold2);

                     PC_DispStr(50, 22, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);

                     OSTimeDlyHMSM(0, 0, 0, 3);

        }

}

4.2部分程序截图

5心得体会   

在为期一周的实习过程中,我学到了许多书本上学不到的知识,本以为十分枯燥的设计过程却让我得到了很多乐趣,同时也为我今后的进一步学习奠定了基础。

当老师布置完题目后,由于对需要掌握的知识还不是十分理解,于是我通过看教材和查资料等方式初步掌握了嵌入式系统的基本知识,并最终成功地完成了整个系统的设计。

在设计的过程中编程部分是个难点,编程的过程中我们遇到了很多的问题,比如说当我把之前设计出的基本模块整合在一起的时候,出现了很多错误,但是在经过细致的分析整个程序后,通过进一步的修正,程序才运行正常。这个问题也提醒我们在编程的时候需要细心和耐心,这样才不会出现一些马虎的错误。

     经过这次的实际动手操作,让我明白不仅要充分的掌握课本上的知识,而且要活学活用、学以致用,不能过分强调基本理论的掌握,而应该侧重于基本知识和实际的相结合,我觉得,具有一定的系统分析能力和设计能力才是本次实习的目的。

本次实习使我把学到的理论知识和实际的硬件相结合,对嵌入式系统这门课程有了新的理解和认识,这对于我今后的学习会有事半功倍的效果。非常感谢本次实习给了我这样一个锻炼我的机会,在此也感谢老师对我的指导!

6 参考文献

《嵌入式系统原理与接口技术》 贾智平 清华大学出版社

《Linux嵌入式系统教程》马忠梅 北京航空航天大学出版社

《嵌入式操作系统原理与应用》 吴旭光 化学工业出版社

更多相关推荐:
嵌入式实习报告

嵌入式实习报告20xx年1月13日一、嵌入式的概述:随着信息化技术的发展和数字化产品的普及,以计算机技术、芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用的热点,通信、计算机、消费电子技术(3C)合一…

嵌入式实训报告

嵌入式系统设计实训报告实训报告目录一任务名称内容1二题目分析1三系统平台搭建6四系统设计与实现7五心得体会14六参考文献及资料151实训任务的名称内容在这学期期末的实训中我们的任务是视频采集图像并实时显示在LC...

嵌入式系统实验报告

嵌入式系统实验报告姓名:##学号:##班级:计算机科学与技术非师范121班实验一LCD控制一、实验目的1、初步掌握液晶显示屏的使用及其电路设计方法。2、掌握S3C44B0X处理器的LCD控制器的使用。3、通过实…

嵌入式实习报告

嵌入式系统实习报告学院专业班级学号姓名指导老师计算机与信息学院电子信息工程20xx111120xx111123王金民严朝军彭文标嵌入式系统开发与应用概述在今日嵌入式ARM技术已经成为了一门比较热门的学科无论是在...

20xx嵌入式实习报告

成绩CSIP嵌入式实习报告院系计算机与工程学院专业计算机科学与技术学生姓名学号实习单位指导老师实习时间20xx520xx9本着对嵌入式系统的兴趣自己今后想从事嵌入式方面的工作因而本人进入了CSIP国家软件与集成...

嵌入式系统实习报告

嵌入式系统实习报告学院电气信息工程学院班级XX学号XX实习日期301362420xx75指导教师XX目录1嵌入式系统开发与应用概述32实习设备33实习目的44实习要求45实习步骤56实习体会97参考文献92一嵌...

嵌入式系统实训报告

重庆航天职业技术学院课程作业课程名称班级学号姓名成绩前言嵌入式系统是基于单片机的一种升级版它是以应用为中心以计算机技术为基础软件硬件可裁剪适应应用系统对功能可靠性成本体积功耗严格要求的专用计算机系统我们可从几方...

嵌入式实习生实习日志

实习生实习日志实习名称嵌入式开发实习生实习时间20xx年7月7日至8月1学校实习指导教师签字日期年月日实习生实习报告实习教学质量实习生评教表实习名称嵌入式开发实习基地实习时间20xx年7月7日至8月1日

实习报告_嵌入式

学生实习报告实习名称院部名称专业班级学生姓名学号实习地点指导教师实习起止时间:20##年7月4日至20##年7月29日实习报告前言中软国际有限公司(中软国际)是根植中国、服务全球的IT服务提供商,致力于为遍及全…

嵌入式实习报告

CivilAviationUniversityofChina姓名邵天宝班级111041A学号111041122一实习目的了解处理器的发展掌握WinCE嵌入式系统开发方法和开发流程掌握WinCE嵌入式C编程方法掌...

嵌入式培训实习报告

五邑大学学生实践学习总结表备注1位置不够可另附页填写2此表由实习学生填好并于实习结束后三天内交带队教师寒暑假实习可于下一学期开学初交回3带队教师审阅及成绩评定后交各院系保留

嵌入式实习报告

生产实习报告6月16号今天是实习的第一天老师学教了我们三个专题的知识它们是专题一Linux系统的安装与使用专题二是在Linux中编写编译运行C语言程序专题三是如何在windows中共享文件夹给Linux系统专题...

嵌入式实习报告(35篇)