当前位置:文档之家› 嵌入式实验

嵌入式实验

嵌入式实验
嵌入式实验

嵌入式课程设计报告

姓名:

学号:

组号:

项目名称:

1 设计背景

随着计算机技术、通信技术的快速发展和Internet的广泛应用,嵌入式系统已被广泛应用到工业控制、过程控制、通讯、航空航天、军事装备以及消费类产品等众多领域。任何有微控制器的集成电路都可以做嵌入式开发,而ARM处理器作为微控制器芯片的一类,在嵌入式开发上具有独到的作用。

ARM处理器采用RISC架构,具有体积小,功耗低,成本低,性能高等特点。如今,ARM处理器已经发展出很多系列,其中ARM7、ARM9、ARM9E、ARM10、和ARM11为5类通用处理器系列。新研发出的处理器层出不穷,嵌入式操作系统如Linux、Windows CE,Palm OS等也在不断地完善中,这些也都促进着嵌入式产品的不断发展。ARM处理器已经越来越多的受到人们的青睐。

本实验采用的硬件平台是UP-NETARM2410-S试验箱,其核心芯片为ARM920T 结构芯片,工作频率202MHz,由SAMSUNG公司生产的S3c2410X。外围设备丰富:串口、USB、SD卡、网卡、LCD、音频设备等。其系统资源如图1.1所示:

图1.1 博创2410-S嵌入式开发板

本次实验在上图所示嵌入式开发板上,完成了整个系统的开发,主要目标是通过QTOPIA平台,设计一款基于linux操作系统的串口调试工具,能完成如在windows操作系统平台下串口工具,完成串口选择、参数配置,并完成数据的发送和接收任务。

2系统设计方案

本次设计,主要是在redhat9下完成串口助手的界面设计,及软件功能设计,最后结合博创2410s的开发设备,完成相关硬件调试,及最终在开发板上QTOPIA 平台下的界面发布及调试。具体的设计过程可分为以下几步:

①配置交叉编译环境:在虚拟机下加载redhat9,配置各种服务器,配置宿主机和目标机调试所用到的编译调试工具。

②串口功能调试:编写串口功能c程序,完成不带QT下串口操作读写的c 文件,并产生可执行文件在目标板上调试。

③设计界面:通过QT Designer设计界面,产生cpp文件和h文件。

④软件设计:加入相应串口助手功能,完成编译,产生可执行文件。

⑤宿主机调试:在电脑上linux下,调试串口助手。

⑥目标机发布:准备相应文件,在2410s开发板上通过Qtopia平台,发布

串口助手的应用程序。具体的操作过程可以用图2.1所示的流程图表示出来:

图2.1 系统设计流程

3 串口调试与界面设计

3.1 串口功能调试

由于串口参数设置以及收发数据是本次系统设计中的核心,因此在进行QT 界面设计之前,我们首先对串口的参数设置以及收发数据,编写了响应的c文件,通过arm-linux-gcc编译器产生可执行,完成了串口功能不带qt显示的调试。

最基本的设置串口包括波特率设置,效验位和停止位设置。串口的设置主要是设置 struct termios 结构体的各成员值,关于该结构体的定义可以查看。设置这个结构体很复杂,可以参考 man 手册或者由赵克佳、沈志宇编写的《UNIX 程序编写教程》,我这里就只考虑常见的一些设置:波特率设置,校验位和停止位的设置,设置停止位。

3.2串口助手界面设计

在串口助手应用的界面中,用到了pushbutton模块(Turn on COM,Send Data,Recieve Data),comobox模块(COM,Buad rate ,Data bit,Even-odd,Stop bit),QTextBrowser模块(Input buffer,Output buffer)。

如图3.2为我们最终设计完成的ui界面:

图3.2 串口助手设计界面

界面的设计既可以直接通过自行编写程序来实现功能,也可以通过Qt Designer直接将所需要的模块拖拽出来,由于所设计的界面比较简单,整个界面的设计以及所用的模块选择都可以通过Qt Designer 来完成,就可以产生相应的ui文件。然后我们通过执行uic指令,即可生成响应的h文件和uic文件,这样我们就可以通过cpp文件修改代码,实现最终功能。具体操作指令如下所示:产生h文件:uic -o serial.h serial.ui

产生cpp文件:uic -o serial.cpp -impl serial.h serial.ui

3.3 QT界面串口助手功能实现

经过3.2步产生的cpp文件和h文件只是做了简单的界面显示,而没有实现具体的串口参数设置及功能,我们需要修改cpp和h文件,加入相应的串口函数,设置槽函数完成QT串口助手的功能设计。利用Qt设计界面的好处是当将所需要的部件拖拽到界面上的同时,ui文件会自动生成相对应的代码,通过产生的cpp文件和h文件直接就能修改代码,这样对于初学者就无需自己编写结构体的主体代码,但是当设计复杂界面时就显的不利,因为ui生成的代码比较凌乱,逻辑性不好。

Qt 的信号与插槽机制则不同,Qt 部件(Widgets)事件发生时发出信号,如一个按钮被点击时会发出一个“clicked”信号。程序员可以选择建立一个函数(称为插槽)并调用connect()函数来将这个信号与插槽连接起来。用户在编程时可以将两个对象捆绑在一起而不需要知道每个对象的各自的信息,而且可以自己创建信号与插槽,发射自己的信号等等。

其基本结构如下:

connect( Object1, Singnal,Object2,Slot )

其中connect()函数是信号—槽的连接函数,该connect语句含义是:当Object1发出信号Singnal时,Object2就执行Slot函数,从而完成一定的功能。本实验connect程序代码如下:

connect( pushButton1, SIGNAL( clicked() ), radioButton6, SLOT( toggle() ) );

connect( pushButton1, SIGNAL( clicked() ), this, SLOT( OPENserial() ) );

connect( pushButton3, SIGNAL( clicked() ), this, SLOT( SENDserial() ) );

connect( pushButton2, SIGNAL( clicked() ), this, SLOT( RECIEVEserial() ) );

当按下pushbutton1时就会实现点亮指示灯,打开串口设置相应参数的功能,按下pushbutton2时会接收串口数据并完成显示功能,按下pushbutton3会发送串口数据,完成显示功能。

4 编译调试

整个编译调试的过程也可分为两个过程,我们先在宿主机上调试显示,当达到最终效果时,再通过目标机下的编译器产生可执行文件,并准备相应图标,桌面启动文件,完成在目标板上的发布。

4.1 宿主机调试

在电脑redhat9系统下完成程序的显示调试,需要配置基于x86的编译器,编译产生可执行文件,再在此可以通过source指令运行一个脚本文件,这样能很快配置好环境,这个Qt_Command_host.sh的脚本内容如图4.1所示:

图4.1Qt_Command_host.sh脚本文件

整个主机上系统的调试,我们最后通过总结可以归纳为如下几步:

①配置开发工具

cd /root

source Qt_Commad_host.sh

②编辑main.cpp文件,并将它和之前编辑好的serial.cpp和serial.h文件放在一起。

③生成可执行文件

$TMAKEDIR/bin/progen –t app.t –o serial.pro 或qmake –project –o serial.pro

$TMAKEDIR/bin/tmake –o makefile serial.pro

Make

④可执行文件运行

先调出宿主机的虚拟缓冲帧framebuffer。输入qvfb –width 640 –height 480 & 即可调出640×480像素的虚拟缓冲帧framebuffer。这时在命令界面输入./serial –qws.

通过执行以上操作就可以在电脑端的redhat9操作系统下,得到如图4.2所示的显示界面:

图4.2 redhat9下显示串口助手界面

通过点击Turn on COM按钮,我们可以看到旁边指示灯点亮,但是当我们按以下两个按钮时,程序却发生的卡顿,总结原因,我觉得是在程序设计中,我们调用到的串口设备文件是为开发板的linux系统写的,因为发送和接收找不到响应的串口设备文件,所以这两个操作便无法完成。

4.2 目标板发布

串口助手程序在目标机的发布,因为运行环境的变化,我们需要重新配置适用2410s开发板的编译环境,这样产生的可执行文件才能在目标板上运行,这个步骤上我们同样参照了往届师兄编写留下来的脚本文件,从而简化了整个设计过程的流程。具体产生可执行文件的步骤如下:

①配置目标机开发工具环境

在/root下source:source Qt_Command_target1.sh

②编译生成可执行文件

$TMAKEDIR/bin/progen –t app.t –o win.pro 或qmake –project –o win.pro(progen 运行不同过尝试此语句)

$TMAKEDIR/bin/tmake –o makefile win.pro

Make

在目标板的发布,除了准备可执行文件serial外,我们还需要一个启动图标,

一个后缀为.desktop的桌面启动文件,其中桌面启动文件的代码如下:[Desktop Entry]

comment=A serial Program

Exec=serial

Icon=serial

Type=Application

Name=serial

在设置好共享目录后,我们通过telnet服务器连接开发板,并通过nfs服务器完成共享,就可以将三个文件复制到相应的位置。具体的发布过程,我将它们总结如下:

①在目标板linux下建立/host目录mkdir /host(如果/根目录下有可省去此步)

②在目标板linux设置nfs共享目录mount -t nfs 192.168.0.68:/root /host

(/root目录为自己设置,设置在此处就要把电脑linux下将三个准备文件复制在此处)

③在目标板linux下打开/host文件,夹拷贝相应文件到指定位置。

cp –fr /host/win /mnt/yaffs/Qtopia/bin

cp –fr /host/*.png /mnt/yaffs/Qtopia/bin (程序用到图片)

cp –fr /host/win.png /mnt/yaffs/Qtopia/pics (应用程序启动图片)

cp –fr /host/win.desktop /mnt/yaffs/Qtopia/apps/Applications

④在目标板linux下打开目录/mnt/yaffs/Qtopia启动linux系统

./qtopia.sh

如果配置成功且启动程序无问题,就可以在目标板启动的qt环境里找到可执行文件。

经过以上步骤,我们就可以在2410S开发板的QTOPIA环境下看到我们小组设计的串口助手调试,最后通过串口线,我们连接了pc的和2410s的串口1,在pc终端我们打开了一个串口助手软件,可以很清楚看到双端通信的全过程,也验证了我们设计系统最终的通信正常。如图4.3为pc机上串口软件的显示值,而图4.4为2410开发板上我们设计的串口助手显示情况。

图4.3 pc串口软件显示结果

图4.4 2410串口助手显示结果

5 个人承担的工作

本次实验在我所负责的是QT界面设计部分。由于之前没有过嵌入式的相关学习经历,首次学习嵌入式令我感觉陌生,与小组成员商议后我们最终确定做串口通信这一课题,相对于界面设计会相对简单一些。界面主要分为三大模块:combox模块,pushbutton模块,QTextBrowser模块。

其中combox模块用来对串口号、波特率、奇偶校验、数据长度进行选择设置,pushbutton模块为串口的打开、发送、接收。QTextBrowser模块为数据的发送和读取显示缓冲区。由于先生成了ui文件,各模块的大小位置便确定下来,

头文件也自动生成无需更改,只需要将各个模块在h文件里重新声明定义名字,并且声明自己定义的函数名称。核心部分是设置槽函数完成相对应的动作。自定义的OPENserial(),SENDserial(),RECIEVEserial()3个函数,分别为串口初始化函数,发送数据函数,接收数据函数,这需要与串口调试同学相结合来完成通信功能。

6 遇到的问题与总结

1. 一开始对QT生成的ui文件与已有的cpp文件和h文件比较混淆,认为必须要先生成ui文件后才能转换成cpp文件和h文件,实际上ui文件可以生成h文件和cpp文件,也可以直接利用自己编写的cpp文件和h文件直接进行下一步操作。

2. UI设计后使用uic指令产生cpp、h文件无代码,通过咨询组员丁福文最后知道在输入uic指令的命令窗口,已经source了两个脚本文件Qt_Command_host.sh 和Qt_Command_target1.sh中的一个,重新开一个命令窗口编译即可。

3. Make过程报错,其中一个解决的办法就是把pro文件里的interface=后面的内容删除掉。

也可以将指令$TMAKEDIR/bin/progen –t app.t –o win.pro 换为qmake –project –o win.pro一般可解决问题。

4.可执行文件运行是执行的pro可执行文件名,而不是cpp文件名,由于没能认真熟悉界面主机调试流程,这种小错误在初期很费时间。

5. 配置主机开发工具环境用source Qt_Commad_host.sh,而配置目标机开发工具环境用source Qt_Command_target1.sh。在目标版发布时没能区分导致低级错误。

通过这次试验让我对嵌入式系统有了初步的了解,首次进行界面设计存在许多大大小小的问题,有些问题非常低级,解决这种低级错误非常费时间费精力,非常感谢组员丁福文同学,他对嵌入式很了解,帮组我解决了许多的问题。这一次实验让我明白了做事情一定要认真,因为犯小问题是很不值得的,那就能相当于浪费时间,因此,要认认真真做事,尽量避免没必要的错误,把时间和经历花在有意义的事情上。

嵌入式系统及应用 实验大纲

《嵌入式系统及应用》课程实验 一、实验课程的性质、目的和任务 性质:《嵌入式系统及应用》课程是自动化专业的专业基础课程,本实验课是该课程教学大纲中规定必修的实验教学内容。 目的和任务:通过实验环节来巩固和加深学生对嵌入式系统的理解,使学生掌握MCS51单片机和ARM的基本原理和应用技术。通过熟悉MCS51开发环境和ARM集成开发环境,使学生掌握嵌入式系统开发的一般规律和方法。在集成开发环境下,进行系统功能程序的编写和调试的训练,掌握嵌入式系统软硬件调试的一般方法和系统设计的能力。 二、实验内容、学时分配及基本要求

三、考核及实验报告 (一)考核 本课程实验为非独立设课,实验成绩占课程总成绩的15%,综合评定实验成绩。(二)实验报告 实验报告应包括: 实验名称 实验目的 实验内容与要求 设计思路(如:分析、程序流程图等) 实验步骤 实验代码(含必要注释) 实验结果分析 实验小结(本题调试过程中遇到的问题和解决方法、注意事项、心得体会等)注:综合型实验需写出系统功能、设计过程 实验报告的要求: 实验报告以文本形式递交,实验报告要书写规范、文字简练、语句通顺、图表清晰。 四、主要仪器设备 硬件:微型计算机;嵌入式系统开发平台。 软件:Keil C51;ADT 五、教材及参考书 教材

[1] 高锋.单片微型计算机原理与接口技术(第二版).北京:科学出版社,2007 [2] 自编.嵌入式系统及应用 参考书 [1] 王田苗.嵌入式系统设计与实例开发.北京:清华大学出版社,2003 [2] 陈赜.ARM9 嵌入式技术及Linux高级实践教程.北京:北京航空航天大学出版社,2005 [3] 李忠民等.ARM嵌入式VxWorks实践教程.北京:北京航空航天大学出版社,2006

嵌入式系统实验报告

实验报告 课程名称:嵌入式系统 学院:信息工程 专业:电子信息工程 班级: 学生姓名: 学号: 指导教师: 开课时间:学年第一学期

实验名称:IO接口(跑马灯) 实验时间:11.16 实验成绩: 一、实验目的 1.掌握 STM32F4 基本IO口的使用。 2.使用STM32F4 IO口的推挽输出功能,利用GPIO_Set函数来设置完成对 IO 口的配置。 3.控制STM32F4的IO口输出,实现控制ALIENTEK 探索者STM32F4开发板上的两个LED实现一个类似跑马灯的效果。 二、实验原理 本次实验的关键在于如何控制STM32F4的IO口输出。IO主要由:MODER、OTYPER、OSPEEDR、PUPDR、ODR、IDR、AFRH和AFRL等8个寄存器的控制,并且本次实验主要用到IO口的推挽输出功能,利用GPIO_Set函数来设置,即可完成对IO口的配置。所以可以通过了开发板上的两个LED灯来实现一个类似跑马灯的效果。 三、实验资源 实验器材: 探索者STM32F4开发板 硬件资源: 1.DS0(连接在PF9) 2.DS1(连接在PF10) 四、实验内容及步骤 1.硬件设计 2.软件设计 (1)新建TEST工程,在该工程文件夹下面新建一个 HARDWARE文件夹,用来存储以后与硬件相关的代码。然后在 HARDWARE 文件夹下新建一个LED文件夹,用来存放与LED相关的代码。 (2)打开USER文件夹下的test.uvproj工程,新建一个文件,然后保存在 LED 文件夹下面,保存为 led.c,在led.c中输入相应的代码。

(3)采用 GPIO_Set 函数实现IO配置。LED_Init 调用 GPIO_Set 函数完成对 PF9 和 PF10 ALIENTEK 探索者 STM32F407 开发板教程 119 STM32F4 开发指南(寄存器版) 的模式配置,控制 LED0 和 LED1 输出 1(LED 灭),使两个 LED 的初始化。 (4)新建一个led.h文件,保存在 LED 文件夹下,在led.h中输入相应的代码。 3.下载验证 使用 flymcu 下载(也可以通过JLINK等仿真器下载),如图 1.2所示: 图1.2 运行结果如图1.3所示:

嵌入式学习心得体会5篇

嵌入式学习心得体会5篇 嵌入式学习心得体会(一) 首先我声明,我是基于嵌入式系统平台级设计的,硬件这个方向我相对来讲比较有发言权,如果是其它方面所要具备的基本技能还要和我们培训中心其它专业级讲师沟通。他们的方面上我只能说是知道些,但不是太多,初级的问题也可以问我。 对于硬件来讲有几个方向,就单纯信号来分为数字和模拟,模拟比较难搞,一般需要很长的经验积累,单单一个阻值或容值的精度不够就可能使信号偏差很大。因此年轻人搞的较少,随着技术的发展,出现了模拟电路数字化,比如手机的modem 射频模块,都采用成熟的套片,而当年国际上只有两家公司有此技术,自我感觉模拟功能不太强的人,不太适合搞这个,如果真能搞定到手机的射频模块,只要达到一般程度可能月薪都在15k以上。 另一类就是数字部分了,在大方向上又可分为51/arm的单片机类,dsp类,fpga 类,国内fpga的工程师大多是在ic设计公司从事ip核的前端验证,这部分不搞到门级,前途不太明朗,即使做个ic前端验证工程师,也要搞上几年才能胜任。dsp 硬件接口比较定型,如果不向驱动或是算法上靠拢,前途也不会太大。 而arm单片机类的内容就较多,业界产品占用量大,应用人群广,因此就业空间极大,而硬件设计最体现水平和水准的就是接口设计这块,这是各个高级硬件工程师相互pk,判定水平高低的依据。而接口设计这块最关键的是看时序,而不是简单的连接,比如pxa255处理器i2c要求速度在100kbps,如果把一个i2c外围器件,最高还达不到100kbps的与它相接,必然要导致设计的失败。这样的情况有很多,比如51单片机可以在总线接lcd,但为什么这种lcd就不能挂在arm的总线上,还有arm7总线上可以外接个winband的sd卡控制器,但为什么这种控制器接不到arm9或是xscale处理器上,这些都是问题。 因此接口并不是一种简单的连接,要看时序,要看参数。一个优秀的硬件工程师应该能够在没有参考方案的前提下设计出一个在成本和性能上更加优秀的产品,靠现有的方案,也要进行适当的可行性裁剪,但不是胡乱的来,我遇到一个工程师

嵌入式linux基本操作实验一的实验报告

实验一linux基本操作实验的实验报告 一实验目的 1、熟悉嵌入式开发平台部件,了解宿主机/目标机开发模式; 2、熟悉和掌握常用Linux的命令和工具。 二实验步骤 1、连接主机和目标板;(三根线,网线直接连接实验箱和PC机,实验箱UART2连接主机的UART口)。 2、Linux命令的熟悉与操作 PC端:在PC机的桌面上打开虚拟机,并启动Linux系统,打开命令终端,操作Linux基本命令,如:查看:ls,进入目录:cd,创建文件:mkdir,删除文件:rmdir,配置网络:ifconfig,挂载:mount,设置权限:chmod,编辑器:vi,拷贝:cp等命令,要求能熟练操作。 使用方法: 1.查看:ls Ls列出文件和目录 Ls–a 显示隐藏文件 Ls–l 显示长列格式ls–al 其中:蓝:目录;绿:可执行文件;红:压缩文件;浅蓝:链接文件;灰:其他文件;红底白字:错误的链接文件 2.进入目录:cd 改变当前目录:cd 目录名(进入用户home目录:cd ~;进入上一级目录:cd -) 3.创建文件:mkdir 建立文件/目录:touch 文件名/mkdir目录名 4.删除文件:rmdir 删除空目录:rmdir目录名 5.配置网络:ifconfig 网络- (以太网和WIFI无线) ifconfig eth0 显示一个以太网卡的配置 6.挂载:mount mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘- 确定目录'/ mnt/hda2' 已经存在 umount /dev/hda2 卸载一个叫做hda2的盘- 先从挂载点'/ mnt/hda2' 退出fuser -km /mnt/hda2 当设备繁忙时强制卸载 umount -n /mnt/hda2 运行卸载操作而不写入/etc/mtab文件- 当文件为只读或当磁盘写满时非常有用 mount /dev/fd0 /mnt/floppy 挂载一个软盘 mount /dev/cdrom /mnt/cdrom挂载一个cdrom或dvdrom mount /dev/hdc /mnt/cdrecorder挂载一个cdrw或dvdrom mount /dev/hdb /mnt/cdrecorder挂载一个cdrw或dvdrom mount -o loop file.iso /mnt/cdrom挂载一个文件或ISO镜像文件

嵌入式Linux实验三

实验三:文件、目录及其操作命令 1实验目的 通过实验掌握如Linux操作系统的基本操作 2实验设备 硬件:PC机一台 软件:Windows98/XP/2000系统,VMware Workstation6.0,Red Hat Linux 3实验内容 (1)文件的复制、删除和移动命令:cp, rm, mv (2)Linux文件与目录 (3)目录命令:mkdir, rmdir, cd, pwd, ls (4)链接文件与ln (5)文件与目录的权限 4实验预习要求 仔细阅读参考书: 【1】鸟哥的Linux私房菜基础学习篇第三版,人民邮电出版社,鸟哥 【2】嵌入式Linux系统开发标准教程,人民邮电出版社,华清远见嵌入式培训中心 【3】嵌入式Linux应用程序开发标准教程,人民邮电出版社,华清远见嵌入式培训中心关于Linux文件与目录的部分。 5实验步骤 (1)熟悉Red Hat Enterprise Linux系统。 (2)根据实验重点内容测试。 6实验重点: (1)文件的复制、删除与移动:cp, rm, mv 要复制文件,请使用cp (copy) 这个命令即可。不过,cp 这个命令的用途不仅仅于此。除了单纯的复制之外,还可以建立连结文件(就是快捷方式),比对两文件的新旧而予以更新,以及复制整个目录等等的功能。至于移动目录与文件,则使用mv (move),这个命令也可以直接拿来作重命名(rename) 的操作!至于(移除)删除文件,使用rm (remove) 这个命令。

cp (复制文件或目录) [root@localhost ~]# cp [-adfilprsu] 源文件(source) 目标文件(destination) [root@localhost ~]# cp [options] source1 source2 source3 .... directory 选项与参数: -a:相当于-pdr 的意思,至于pdr 请参考下列说明;(常用) -d:若源文件为链接文件的属性(link file),则复制链接文件属性而非文件本身; -f :为强制(force)的意思,若目标文件已经存在则无法开启,则移除后再尝试一次; -i :若目标文件(destination)已经存在时,在覆盖时会先询问操作的进行(常用) -l :进行硬式连结(hard link)的连结文件建立,而非复制文件本身; -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用); -r :递归持续复制,用于目录的复制行为;(常用) -s :复制成为符号链接文件(symbolic link),亦即快捷方式文件; -u :若destination 比source 旧,才更新destination ! 最后需要注意的,如果源文件有两个以上,则最后一个目标文件一定要是目录才行! 范例一:用root身份,将主目录下的.bashrc 复制到/temp 下,并更名为bashrc (~代表目前用户身份所在的主文件夹) [root@localhost ~]# cp ~/.bashrc /temp/bashrc [root@localhost ~]# cp -i ~/.bashrc /temp/bashrc cp: overwrite `/temp/bashrc'? n <==n不覆盖,y为覆盖 说明:重复作两次操作,由于/temp 下已经存在bashrc 了,加上-i 选项后,则在覆盖前会询问使用者是否确定!可以按下n 或者y 来二次确认。 范例二:将主目录下的.bashrc和.bash_history 复制到/temp下。 [root@localhost ~]cp ~/.bashrc ~/.bash_history /temp 可以将多个数据一次复制到同一目录中去,最后面一定是目录。 范例三:复制/etc/ 这个目录下的所有内容到/tmp 下 [root@www tmp]# cp /etc/ /tmp cp: omitting directory `/etc' <== 如果是目录则不能直接复制,要加上-r 的选项 [root@www tmp]# cp -r /etc/ /tmp -r 是可以复制目录,但是,文件与目录的权限可能会被改变。所以,也可以利用cp –a /etc /tmp 来下执行!尤其是在备份的情况下! rm (移除文件或目录) [root@localhost ~]# rm [-fir] 文件或目录 选项与参数:

嵌入式 实验5 RTC实验

实验5-1 实时时钟设计实验 1、实验目的 了解S3C2410A 的实时时钟硬件控制原理及设计方法。 掌握S3C2410A 的实时时钟的使用方法 2、实验内容 编程实现实时时钟功能,每秒显示实时时钟 实现实时时钟Alarm,控制蜂鸣器 3、实验设备 GEC2410 开发板 ADS1.2 集成开发环境,ARM 仿真器、串口连接线 4、实验原理 实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作 各种计算机系统的时钟信号和参数设置存储电路。RTC 具有计时准确、耗电低和体积小的特点,特别是在各种嵌入式系统中用于记录事件发生的时间和相关信息,如通信工程、电力自动化、工业控制等自动化程度高的领域无人职守环境。随着集成电路技术的不断发展,RTC 器件的新品也不断推出,这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D 数据采集通道等。 4.1 S3C2410A 实时时钟模块介绍 S3C2410A 实时时钟单元模块在系统电源掉电的时候可以通过备份电源来完成供电。 RTC 提供8bit 时间数据。其中包括秒、分、时、日、星期、月、年等时间信息。RTC 要有外部晶振提供32.768kHZ 的外部时钟。RTC 也可以提供闹钟定时的功能。 1.特点: BCD 数字,:秒、分、时、日、星期、月、年. 定时功能。 解除了千年虫的问题。 独立的电源引脚 支持毫秒时钟 2.读/写寄存器 访问RTC 模块的寄存器,首先要设RTCCON 的bit0 为1,CPU 通过读取RTC 模块中 寄存器BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDMON 和BCDYEAR 的值,得到当前的相应时间值,然而,由于多个寄存器依次读出,所以有可能产生错误。 例如:用户依次读取年(18)、月(12)、日(31)、时(23)、分(59)、秒(59)。当秒数为1 到59时没有任何问题,但是当秒数为0 时,但前时间和日期就变成了19 年1 月1 日0 时0 分。这种情况下(秒数为0),用户应该重新读取年份到分钟的值。 3.闹钟功能 RTC 在制定的时间产生报警信号,包括CPU 工作在正常模式和休眠模式(power off)下,在正常工作模式下,报警中断信号(ALMINT)被激活。在休眠模式,报警中断信号和

嵌入式实验心得体会

嵌入式实验心得体会 嵌入式实验心得体会是计算机专业应该具备的常用知识,以下这篇范文整理个人对嵌入式系统的认识,和进行操作之后的个人体会,对操作的疑难的反思。下面是这篇嵌入式实验心得体会 嵌入式实验心得体会 学期开始,我们开始学习《嵌入式系统及应用》,由于初次接触嵌入式系统,感觉蛮难的,所以收获不是很大,很多的概念都比较模糊,等到学期结束开始做嵌入式课程设计时,真是茫然无从下手,自,从拿到设计主题后,我就从像热锅像上的蚂蚁,一个字“急”。最后实在没有办“法,逼着自己去学法 习,查资料,总算对嵌入式有了资浅层理解。浅 嵌入式系统本本身是一个相对模糊的定义义,一个手持的mp3和一个一pc104的微型工业业控制计算机都可以认为是嵌入是式系统。总体来说,嵌入式系统是“用于控,制,监视或者辅制 助操作机器器和设备的装备”。一个典典型的桌面linux系统统包括3个主要的软件层---linux-内核、cc库和应用程序代码。内核核是唯一可以完全控制硬件的层,内核驱动程序代件表应用程表序与硬件之间进行行会话。内核之上是c 库,,负责把posixapii转换为内核可以识别的形形式,然后调用内核,从应应用程序向内核传递参数。应用程序依靠驱动内核。来完成特定的任务。来在了解了基础知识之后,我了开始进行上机操作,当然开,,其中遇到很多的难题,很多东西都是第一次接触很,又没有别,人在旁边指导操作,完全凭借自己去摸操索索练习。其中的困难可想而知。然而坚持就是胜利而,,牙一咬眼一闭坚持做下去去,而通过本次实验,我感觉收获还是蛮多的。可感能我对于嵌入能式的知识学习的还是不太多,但是这习之外的东西收获颇丰。之

嵌入式实验报告

目录 实验一跑马灯实验 (1) 实验二按键输入实验 (3) 实验三串口实验 (5) 实验四外部中断实验 (8) 实验五独立看门狗实验 (11) 实验七定时器中断实验 (13) 实验十三ADC实验 (15) 实验十五DMA实验 (17) 实验十六I2C实验 (21) 实验十七SPI实验 (24) 实验二十一红外遥控实验 (27) 实验二十二DS18B20实验 (30)

实验一跑马灯实验 一.实验简介 我的第一个实验,跑马灯实验。 二.实验目的 掌握STM32开发环境,掌握从无到有的构建工程。 三.实验内容 熟悉MDK KEIL开发环境,构建基于固件库的工程,编写代码实现跑马灯工程。通过ISP 下载代码到实验板,查看运行结果。使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。 四.实验设备 硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。 软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。 五.实验步骤 1.熟悉MDK KEIL开发环境 2.熟悉串口编程软件ISP 3.查看固件库结构和文件 4.建立工程目录,复制库文件 5.建立和配置工程

6.编写代码 7.编译代码 8.使用ISP下载到实验板 9.测试运行结果 10.使用JLINK下载到实验板 11.单步调试 12.记录实验过程,撰写实验报告 六.实验结果及测试 源代码: 两个灯LED0与LED1实现交替闪烁的类跑马灯效果,每300ms闪烁一次。七.实验总结 通过本次次实验我了解了STM32开发板的基本使用,初次接触这个开发板和MDK KEILC 软件,对软件操作不太了解,通过这次实验了解并熟练地使用MDK KEIL软件,用这个软件来编程和完成一些功能的实现。作为STM32 的入门第一个例子,详细介绍了STM32 的IO口操作,同时巩固了前面的学习,并进一步介绍了MDK的软件仿真功能。

嵌入式系统综合实验一

实验名称: 姓名: 学号: 装 订 线 P.1 实验报告 课程名称: 嵌入式系统设计 指导老师:马永昌 成绩:________________ 实验名称:综合实验一dht11和人体感应传感器 实验类型:验证型 同组学生姓名:孙凡原 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1.掌握字符设备驱动程序的基本结构和开发方法 2.掌握用户空间调用设备驱动的方法 3.掌握用户和内核的交互 二、实验内容和原理 1.编写温湿度传感器DHT11驱动,传输打印温湿度信息 2.编写人体感应传感器驱动,控制LED 灯亮灭 原理: 温湿度传感器DHT11: 1.引脚图 实际使用传感器没有NC 引脚 2.数据采集 a.数据总时序 用户主机发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11 发 专业:测控技术与仪器 姓名:颜睿 学号:3130103850 日期:2018.4.28 地点:创客空间

装订线送响应信号,送出40bit 的数据,幵触发一次信采集。 b.主机发送起始信号 连接DHT11的DATA引脚的I/O口输出低电平,且低电平保持时间不能小于18ms,然后等待DHT11 作出应答信号。 c.检测从机应答信号 DHT11 的DATA 引脚检测到外部信号有低电平时,等待外部信号低电平结束,延迟后DHT11 的DATA引脚处于输出状态,输出80 微秒的低电平作为应答信号,紧接着输出80 微秒的高电平通知外设准备接收数据。 d.接收数据 (1)数据判定规则 位数据“0”的格式为:50 微秒的低电平和26-28 微秒的高电平,位数据“1”的格式为:50 微秒的低电平加70微秒的高电平。 接收数据时可以先等待低电平过去,即等待数据线拉高,再延时60us,因为60us大于28us且小于70us,再检测此时数据线是否为高,如果为高,则数据判定为1,否则为0。

嵌入式实验报告心得

嵌入式实验报告心得 篇一:嵌入式系统原理实验总结报告 嵌入式系统原理实验总结报告 车辆座椅控制系统实验 XX/5/23 嵌入式系统原理实验总结报告 一、技术性总结报告 (一)题目:车辆座椅控制系统实验(二)项目概述: 1.为了实现车辆座椅控制的自动化与智能化。 2.方便用户通过智能手机与车载传感器之间的联动。 3.使车辆作为当今物联网中重要的一个节点发挥作用。 4.通过车辆座椅控制系统实验实现对嵌入式系统原理课程的熟练掌握与对嵌入式系统原理知识的深化记忆。 5. 加强本组学生对嵌入式系统原理的更深层次的理解与运用。 (三)技术方案及原理 本次试验分为软件、硬件两个部分。 1.软件部分。 A.智能手机部分,包括通过智能手机对座椅的控制部分、手机所携带的身份信息部分。 本部分软件使用Java编写,其程序部分为:主程序:package ;

import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ;import ; import ; import ; public class MainActivity extends ActionBarActivity { private Button Up = null; private Button Left = null; private Button Dowm = null; private Button Right = null; private Socket socket = null; private static final String HOST = "";private static final int PORT = 10007; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(; initControl();} private void initControl() {

嵌入式基本实验

1.实验六(流水灯) (1) #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ void delay(void) { int i,j; for(i=0;i<=1000;i++) for(j=0;j<=1000;j++); } void main(void) { DDRA=0xff;//定义A口输出 PORTA=0x00;//灯全灭 for(;;) { delay(); PORTA=0x55;//高电平灯亮 delay(); PORTA=~PORTA; } } (2)高位到低位逐个点亮 #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ void delay() { unsigned int i,j; for(i=0;i<=100;i++) for(j=0;j<=100;j++); } void main(void) { DDRA=0xFF; PORTA=0x80; for(;;) { delay(); PORTA>>=1;//右移一位 if(PORTA==0x00)//反复循环 PORTA=0x80; }

} 低位到高位逐个点亮 #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ void delay() { unsigned int i,j; for(i=0;i<=100;i++) for(j=0;j<=100;j++); } void main(void) { DDRA=0xFF; PORTA=0x01; for(;;) { delay(); PORTA<<=1;//左移一位 if(PORTA==0x00)//反复循环 PORTA=0x01; } } (3)与按键结合 #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ void main(void) { DDRA=0xff; DDRH=0x00; for(;;) { PORTA=PTH^0x0f;//按下时灯灭,取反后按键灯亮 } } 2.实验七(定时器延迟流水灯) (1) #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */

嵌入式实验3按键实验(中断方式)

河南机电高等专科学校《嵌入式系统开发》课程实验报告 系部:电子通信工程系 班级:电信1## 姓名: ###### 学号: 120######

实验三按键实验(中断方式) 一.实验简介 在实验一的基础上,使用按键控制流水灯。 二.实验目的 熟练使用库函数操作GPIO,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在中断服务程序和主程序间通信的方法。 三.实验内容 实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯速度及方向。 下载代码到目标板,查看运行结果。 四.实验设备 硬件部分:PC计算机(宿主机)、STM32实验板。 软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。 五.实验步骤 1在实验一代码的基础上,编写中断初始化代码 2在主程序中声明全局变量,用于和中断服务程序通信,编写完成主程序 3编写中断服务程序 4编译代码,下载到实验板 5.单步调试 6记录实验过程,撰写实验报告 六.实验结果及测试 中断方式的按键式实验,是通过配置外部中断寄存器和中断嵌套(NVIC)控制器来实现按键按下控制LED灯亮灭。通过按键中断打断主函数,执行LED1取反一次。 主函数初始化中断配置和LED配置,点亮LED1后一直等待中断,每中断一次,LED1取反一次。

int main(void) { LED_GPIO_Config(); LED1_ON; CLI(); SEI(); EXTI_PA0_Config(); while(1) { } } 中断嵌套控制寄存器的配置为中断嵌套分组1;抢占优先级0;响应优先级0 代码如下: void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } 外部中断按键的配置源码如下:配置PA0位中断线,并使能AFIO时钟void EXTI_PA0_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,ENABLE); NVIC_Configuration(); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); EXTI_InitStructure.EXTI_Line = EXTI_Line0; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); }

嵌入式心得体会

对于电焊,虽然一点都不陌生,但亲手操作的机会却只有几次,因此我很庆幸能够有这样的焊接机会,进行这样的实践。 焊接看似容易,实则需要长时间练习才能掌握。刚开始的时候,手一直在抖,尤其这次焊的还是贴片电容、电阻,原器件比以前焊的小好多,用镊子的手一抖就夹不住了,拿着烙铁的手抖得都不容易将器件焊上,焊出来的焊点也特别难看,在不断尝试,不断挑战自我的过程中,我的手不抖了,也基本能掌握锡的用量了,当焊点终于不再“丑不忍睹”的时候,对焊接也没有当初的恐惧了。对自己的动手能力也有了信心。 在焊接的过程中我学到了许多以前我不知道的东西,比如,以前我只知道有电烙铁,但不知道它还有好多种类,有单用式、两用式、调温式、恒温式、直热式、感应式、内热式和外热式。松香可以将多余的锡弄下来,用酒精可以把板擦的干净些。通过视频和查找资料,知道了在焊不同的器件时用的电烙铁的头不同,比如在焊引脚时要用尖头,焊CPU时要用刀口,为防止锡将焊引脚的小孔堵住,用松香把纸条粘在小孔上,把小孔盖住,把CPU的引脚对齐,用锡先涂满两边,固定好芯片,在焊另外两边,然后用尖头的电烙铁沾着松香将多余的锡弄下来。 本次课程设计的是信号发生器,信号发生器在EDA课程,数字信号处理课程中都曾涉及,所以还是较为熟悉的,在设计之前查阅了一些相关书籍,也从网上查找了一些相关资料,程序代码中运用到了C语言,将程序加入到嵌入式结构框架中,进行定义变量,端口,设定所用的GPIO参数等等。 在焊接的过程中我不仅学到了知识,而且让我深深地体会到一个团队中各成员合作的重要性,要善于团队合作,在进行团队合作的时候,还要耐心听取每个成员的意见,每个人都有长处和短处,只有在包容别人的同时我们才可以取长补短,不断完善和不断进步,交到更多的朋友,学到更多的知识。同时还让我明白:做任何事都要一心一意,严谨认真,反复琢磨,不能畏惧,要有信心和勇气,一定要做好充分的准备。不能盲目去做,要坚持,还要学会反思跟总结,我们不是为了完成任务而完成,这还是一个学习跟提高的过程。 在大学里学的不是知识,而是一种叫做自学的能力。在这个知识爆炸的时代,知识更新太快,靠原有的一点知识肯定不行。以后的工作中肯定会用到一些新的

嵌入式系统实验报告

嵌入式系统实验报告文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

大连理工大学 本科实验报告 课程名称:嵌入式系统实验 学院(系):电子信息与电气工程学部 专业:自动化 班级: 0804 学号: 学生姓名:何韬 2011年 11月 18日 大连理工大学实验报告 学院(系):电信专业:自动化班级: 0804 姓名:何韬学号:组: ___ 实验时间: 2011-11-12 实验室: d108 实验台: 指导教师签字:成绩: 实验二ARM的串行口实验 一、实验目的和要求 见预习报告 二、实验原理和内容 见预习报告 三、主要仪器设备

硬件:ARM嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC机Pentium100 以上、串口线。 软件:PC 机操作系统win98、Win2000 或WinXP 、ARM SDT 或集成开发环境、仿真器驱动程序、超级终端通讯程序。 四、实验步骤 见预习报告 五、核心代码 在主函数中实现将从串口0接收到的数据发送到串口0() int main(void) { char c1[1]; char err; ARMTargetInit(); 通过调用OSTaskCreate()或OSTaskCreateExt()创建至少一个任务; . OSStart(); /ucos-ii/" /* uC/OS interface */ #include "../ucos-ii/add/" #include "../inc/" #include "../inc/sys/" #include "../src/gui/" #include <> #include <>

嵌入式实验报告心得

竭诚为您提供优质文档/双击可除 嵌入式实验报告心得 篇一:嵌入式系统各实验实验报告 嵌入式系统设计实验报告 班级:学号:姓名:成绩:指导教师: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 1.实验一 1.1实验名称 博创up-net3000实验台基本结构及使用方法 1.2实验目的 熟悉up-net3000实验平台的核心硬件电路和外设 通过操作系统自带的通讯软件超级终端,检验各个外设的工作状态 1.3实验环境 硬件:ARm嵌入式开发平台、用于ARm7TDmI的JTAg仿真器、pc机 pentium100以上。 软件:pc机操作系统windows、ADs1.2集成开发环境、

仿真器驱动程序、 超级终端通讯程序。 1.4实验内容及要求 一、内容 ①嵌入式系统开发流程概述 ②熟悉up-net3000实验平台的核心硬件电路和外设 ③ARmJTAg的安装与使用 ④通过操作系统自带的通讯软件超级终端,检验各个外设的工作状态 二、要求 通过本次课程对各个外设的了解,为今后各个接口实验打下基础。 1.5实验设计与实验步骤 一、JTAg的驱动程序的安装: 执行armJtag目录下armJtagsetup.exe程序,选择安装目录,安装JTAg软件。 二、通过通讯软件超级终端来检验外设的工作状态: ①运行windows系统下的超级终端(hyperTerminal)应用程序,新建一个通信终端。为所建超级终端取名为arm,可以为其选择第一个图标。单击“确定”按钮。 ②在接下来的对话框中选择ARm开发平台实际连接的pc 机串口(如com1),按确定按钮后出现属性对话框,设置通

嵌入式系统实验报告

郑州航空工业管理学院 嵌入式系统实验报告 (修订版) 20 – 20第学期 赵成,张克新 院系: 姓名: 专业: 学号: 电子通信工程系 2014年3月制

实验一ARM体系结构与编程方法 一、实验目的 了解ARM9 S3C2410A嵌入式微处理器芯片的体系结构,熟悉ARM微处理器的工作模式、指令状态、寄存器组及异常中断的概念,掌握ARM指令系统,能在ADS1.2 IDE中进行ARM汇编语言程序设计。 二、实验内容 1.ADS1.2 IDE的安装、环境配置及工程项目的建立; 2.ARM汇编语言程序设计(参考附录A): (1)两个寄存器值相加; (2)LDR、STR指令操作; (3)使用多寄存器传送指令进行数据复制; (4)使用查表法实现程序跳转; (5)使用BX指令切换处理器状态; (6)微处理器工作模式切换; 三、预备知识 了解ARM嵌入式微处理器芯片的体系结构及指令体系;熟悉汇编语言及可编程微处理器的程序设计方法。 四、实验设备 1. 硬件环境配置 计算机:Intel(R) Pentium(R) 及以上; 内存:1GB及以上; 实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器; 2. 软件环境配置 操作系统:Microsoft Windows XP Professional Service Pack 2; 集成开发环境:ARM Developer Suite (ADS) 1.2。 五、实验分析 1.安装的ADS1.2 IDE中包括和两个软件组件。在ADS1.2中建立类型的工程,工程目标配置为;接着,还需要对工程进行、及链接器设置;最后,配置仿真环境为仿真方式。 2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。 ; 文件名:

嵌入式实验

Part1------安装arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz 1、通过Vmware的共享文件加载压缩文件 arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz ①首先配置Vmware加载文件所在位置。 ②点击下方的Add按钮,添加文件所在文件夹,一路点击,直至完成,如图所示 2.

①进入linux系统,进入到挂载目录下 ●cd /mnt ②查看挂载目录mnt文件夹下所有目录,看是否有hgfs目录 ●ls ③进入到hgfs下查看,看是否有共享的的D盘 ●cd hgfs ④查看hgfs下文件夹的下的目录 ●Ls /*******************************************************************/ 进入到hgfs下查看,若能查看到对应目录则表示成功,如查看不到请运行下面命令 输入命令 ●cd /usr/bin ●./vmware-config-tools.pl 先后输入Y和N安装虚拟机工具即可 /****************************************************************************/ ⑤进入到挂载目录下的目标文件位置 (即一直进入到arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz所在的目录) ●cd D/omap3530Linux/tools ⑥查看:ls ⑦然后输入命令:安装 /*********************************************************

嵌入式实验结果

源程序a ; NAME: asm1_a.s ; Author: TYW /WUHAN R&D Center,Embest ; Desc: ARM instruction examples ; History: 2007.5.1 x EQU 45 ; x=45 y EQU 64 ; y=64/ stack_top EQU 0x30200000 ; define the top address for stacks export Reset_Handler AREA text,CODE,READONL Y export Reset_Handler ; code start */ ldr sp, =stack_top mov r0, #x ; put x value into R0 str r0, [sp] ; save the value of R0 into stacks mov r0, #y ; put y value into R0 ldr r1, [sp] ; read the data from stack,and put it into R1 add r0, r0, r1 ;R0=R0+R1 str r0, [sp] stop b stop ; end the code ,cycling end 调试脚本 //*** <<< Use Configuration !disalbe! Wizard in Context Menu >>> *** //Name: DebugINRam.ini FUNC void Setup (void) { // Program Entry Point, .AXF File download Address PC = 0x030000000; } //map 0x00000000,0x0200200 READ WRITE exec map 0x30000000,0x30200000 read WRITE exec Setup(); // Setup for Running //g,main 源程序b ;# NAME: ARMcode.s * ;# Author: EWUHAN R & D Center, st * ;# Desc: ARMcode examples * ;# copy words from src to dst ;# History: shw.He 2005.02.22 GLOBAL Reset_Handler area start,code,readwrite entry code32

嵌入式系统学习心得总结

嵌入式系统学习心得总结 嵌入式系统学习心得总结 嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。以下为你带来嵌入式系统学习心得总结,希望对你有所帮助! 嵌入式系统学习心得总结篇1 嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。 看到了嵌入式系统的范围,你也应该知道嵌入式系统工程师是做什么的,就是开发上面的那些电子产品的工程师。 关于如何学习嵌入式? 学习嵌入式,该学习什么基本的知识呢? 首先C语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言,你说不掌握它可以吗?至于如何学习C语言,我想这些基础的知识每个人都有自己的方法,关键要去学习,看书也好,网上找些视频看也好。很多人会问,

C语言要学到怎么样,我觉得这没有标准的答案。我想至少你在明白了一些基础的概念后,就该写代码了,动手才是最重要的,当你动手了,遇到问题了,再反过来学习,反过来查查课本,那时的收获就不是你死看书能得到的。 其次,应该对操作系统有所了解,这对你对硬件和软件的理解,绝对有很大的帮助。应该把系统的管理理解一下,比如进程、线程,系统如何来分配资源的,系统如何来管理硬件的,当然,不是看书就能把这些理解透,如果不是一时能理解,没关系,多看看,结合以后的项目经验,会有更好的理解的。 还有应该学习嵌入式系统,如linux或者wince下的编程,这些对以后做应用的编程很有帮助,当然,如果做手机的话,那可以学习MTK、塞班、Android等操作系统,Android是以后发展的趋势,现在很热门,Android也是基于linux系统封装的,所以建议先学习下linux。 还有,应该学习下单片机或者ARM或者MIPS,很多人说我没有单片机的经验,直接学ARM可以吗?我觉得那完全没有问题的,当然如果你学习过单片机,那最好不过了,以后学习ARM就更简单了。 最后如果你把以上的知识都有所了解后,就该去阅读阅读一些优秀的代码,比如结合arm芯片手册学习去学习下UBOOT的源代码,了解下最小的系统开发,那对你整个嵌入式开发的非常有帮助的,可以的话,还可以学习下linux的源代码,当然如果你直接阅读2.6的代码,我想你会很痛苦的,可以先看看linux 代码早期的版本,比如0.12 的代码等等,麻雀虽小,五脏俱全,如果你全看完了,那我想

相关主题
文本预览
相关文档 最新文档