嵌入式Linux应用开发(中断实验指导)[★]

时间:2019-05-12 02:48:03下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《嵌入式Linux应用开发(中断实验指导)》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《嵌入式Linux应用开发(中断实验指导)》。

第一篇:嵌入式Linux应用开发(中断实验指导)

嵌入式Linux应用开发

——中断按键点亮LED实验

一、中断控制设计流程

<1>由中断控制器汇集各类外设发出的中断信号,然后向CPU发出处理请求。

<2>CPU保存当前程序的运行环境,调用中断服务程序(ISR,Interrupt Service Rout)处理这些中断。

<3>在ISR中通过读取中断控制器、外设相关寄存器来识别当前中断是哪个中断,并进行相应处理。

<4>清除中断:通过读写中断控制器和外设的相关寄存器来实现。

<5>最后恢复被中断程序的运行环境(即前面保存的各个寄存器等),继续执行。

二、程序设计组成框架

程序由head.s、init.c、interrupt.c、makefile四个程序模块组成head.s:初始化,设置中断模式、系统模式的栈,设置中断处理函数,设置

各类异常的向量地址。

init.c: 关看门狗(WATCHDOG),否则CPU会不断重启。初始化LED、初始化外部中断、使能外部中断、设置外设中断的触发方式。interrupt.c:设计代码根据识别出来的中断(即按键)点亮LED,然后清除

中断。写上主函数,主函数只是个不做任何工作的无限循环。Makefile: Linux中使用make命令编译程序以提高编译效率,makefile既是

make所要执行的命令。

三、程序设计结果

将所编写程序通过H-JTAG烧写到实验箱中观察结果,按下按键,LED亮;再次按下按键,LED灭,循环往复。

第二篇:嵌入式linu学习心得

嵌入式Linux学习心得

1、Linux命令

ls:查看目录-l以列表方式查看;ls –l 与ll的功能一样 pwd: 查看当前的目录

cd:改变当前操作目录cd /直接跳到根目录 cd..回到上一级目录 cat: 打印显示当前文件的内容信息

mkdir:创建目录

fdisk: 查看硬盘分区信息,-l以列表方式查看

->代表是链接文件,类似window下的快捷方式。

cp: 复制命令,例子cp 文件名 /home/dir/

mv: 移动或改名,如mv sonf.confsonf.txt(改名)移动:mv sonf.conf / rm:删除命令,如rm –f test.c;如删除目录rm –fr d

man:查看某个命令的帮助,man 命令

2、各系统目录的功能

drw—r—w--:d代表是目录,drw代表当前用户的权限,r代表组用户的权限,w代表其它用户的权限。x代表有执行权限。

/boot/gruff.conf: 启动引导程序

/dev:brw—rw--:b代表是块设备。Linux设备有三种,块设备(b开头)、字符设备(c开头)、网络设备。had代表第一个硬盘,hdb代表第二个硬盘。Hdb2代表第二块硬盘的第二个分区。3,67代表主设备为3,从设备为67./etc:存放的是系统的配置文件。Inittab文件存放不同启动方式下必须启动的进程。Inittab文件中有6个启动level,wait中对应着6个level的目录,respawn代表当一个进程被意外终止了,但会自动启动的进程,如守护进程。rc.d目录中存放了一个rc.sysinit文件,里面存放系统初始化配置信息。/etc还有一个vsftpd里面存放tcp、ftp的配置。

/home : 用户目录,存放用户的文件,/lib:存放库文件,后缀为so的文件代表动态链接库。

/lost+found:系统意外终止,存放一些可以找回的文件。

/mnt:挂载外部设备,如挂载光驱:mount –t /dev/cdrom/mnt/cdrom,如

果在双系统中,要查看windows中D盘的文件,首先应该将D盘的文件映射过来,mount –t /dev/hda2/mnt/windows/d

/opt:用户安装的应用程序

/proc:是系统运行的映射,比较重要。里面的文件数字代表进程号。每个进程号目录下包含进程的基本信息。还有其他信息,如cpuinfo等,内核支持的文件系统filesystem等。系统支持的中断interrupts,iomen代表内存分配情况。ioport存放IO端口号。还有分区信息,modole信息,状态信息,版本信息

对于Linux的设备驱动程序,有两种加载模式,一种是直接加载进linux内核,一种是以模块的方式加载到内核。

/sbin: 系统管理的一些工具。如poweroff关机工具。

/usr: 安装系统时很多文件放在此目录下面,包含一些更新等,include包含的头文件,lib 是Linux的库文件,src包含Linux2.4的内核源码

/var:存放是临时变量

3、

第三篇:嵌入式开发工程师

任职要求:

1、大学本科及以上学历,2年以上工作经验,计算机电子通讯类专业毕业;

2、能够熟练使用POWER PCB或PROTEL或ORCAD等电路设计软件进行PCB设计;

3、熟悉电子元器件,能独立设计数字及模拟电路,拥有单片机开发工作经验,懂得RF433无线及红外遥控等相关知识;

4、熟练使用C语言,有嵌入式开发工作开发及智能家居防盗报警产品经验者优先。

岗位职责:

1、新产品项目设计开发工作;

2、为相关部门及项目提供技术支持;

3、产品售后返修分析,品质不断提升性能改进;

4、组织对新研发产品的制样、验证、试产、量产等工作的确认与审核。

第四篇:嵌入式实验总结

如今,嵌入式系统已经在众多电气电子产品上应用,有人预测今后5年发展形势看好。嵌入式是典型的交叉学科,电信、电子、电气、计算机、通信等等都有涉及。

嵌入式理论、实践要求多、门槛高,只有理论、实践同步才能在积累中更好的渐次掌握,这学期我们针对嵌入式入门做了一些实验,通过自己动手和实验箱、实验软件打交道,对嵌入式编程形成初步了解,为今后进一步发展打基础。

实验环境:

武汉创维特公司JXARM9-2410开发板、PC;

Linux、windows操作平台;

DNW、VMwareWorkstation应用软件;

《ARM9嵌入式技术及Linux高级实践教程》、实验参考资料等;

实验内容及目标:

阅读样例程序,进行:

1.熟悉JXARM9-2410开发板、相关应用软件的使用,能成功运行示例实验程序(demo-led);

2.使用VMware,修改demo-led源程序,使开发板上数码管按照demo-led显示方式显示;

3.使用VMware、DNW,修改相关源程序,实现开发板键盘输入的字符在DNW中显示;

4.使用VMware、DNW,修改相关源程序,实现对直流电机转动状态的控制;

观看教学视频,进行交叉编译:

1.加载linux内核;

2.配置、编译linux内核;

3.Windows、linux跨平台文件共享;

4.编译、运行linux程序(helloworld)

5.Linux下编译数码管显示驱动程序;

6.Linux下编译摄像头、GPRS驱动程序;

学习嵌入式是一个漫长的过程,学好它还是需要一番的功夫。通过嵌入式实验由浅入深的动手实践,我渐渐对嵌入式有了具体概念,也逐渐对其产生了兴致和好奇心。

对于初学者,还有一点小建议,不要好高骛远,要脚踏实地.

第五篇:嵌入式实验二

1.实验二:利用中断实现 OLED 动态显示实验

1.1 实验名称

1.2 实验目的

(1)深入学习、理解、掌握 OLED 字符显示方法

(2)深入学习、理解、掌握 OLED 图形显示方法(3)学习、理解、掌握中断使用方法

1.3 实验过程与分析

1.3.1 回答实验报告中的实验问题

(1)ISR是什么?简述一下中断的作用和使用方法

答:ISR是中断服务程序。作用是通过处理器执行事先编好的某个特定的程序。使用方法就是在main中写一个中断程序,然后在startup.s中进行注册。

(2)嵌入式系统中有哪些应用有定时性循环处理的要求?举几个例子

答:在各种网络的应用中,设计的一些部件,如计数器,时钟等。

(3)定时时间间隔如何修改?

(4)选作内容5-8的编程思路是什么?若做的话应该怎样实现? 答:编程思路:先画直线和竖线,组成一个正方形,将各个参数填写到函数答:通过改变SysTickPeriodSet(SysCtlClockGet()/100)后面的100这个参数。

RIT128x96x4ImageDraw(buf,,);

第6个选作:判断画的原点x,原点y,和画原点x+的长,画原点y+画宽的值要在0-128和0-96。

第7个选作:把RIT128x96x4StringDraw(“hello”,,);就是把画的灰度定义为一个变量x。最后就会出现由不同的亮度而形成的波浪。

第8个就是利用随机函数产生画的原点,随机的在屏幕上进行显示。

(5)拖影现象如何解决?计数值显示为什么没有拖影? 答:在程序结束后执行清屏语句:计数显示是每次重新赋值,所以不会出现拖影。

1.3.2 实验中遇到的问题及解决方法

(1)字符和下方横线,从左至右移动,无法同时到达

通过最大宽度128除以阀值,调整了字符和横线的速度,解决(2)附加字符循环移动,移动到一半,不见了

查看函数排错,得以解决

(3)基本问题做完时,字符显示完整,添加附加任务后,字符显示不全

未解决...1.4实验结果总结 实验结果(附照片)

总结(自己的收获)1.5心得体会

#include #include #include “rit128x96x4.h” int Event = 0;unsigned char buf1[] = {

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff };unsigned char buf2[] = {

0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00 };unsigned char buf3[] = {

0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff };unsigned char buf4[] = {

0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff };unsigned char buf5[] = {

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff };unsigned char buf6[] = {

0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff };unsigned char buf7[] = {

0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff };unsigned char buf8[] = {

0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff };

unsigned char r1[] = {

0xff,0xff };unsigned char r2[] = {

0xf0,0x0f };unsigned char r3[] = {

0xf0,0x0f };unsigned char r4[] = {

0xff,0xff };

unsigned char c1[] = {

0x0f,0xf0 };unsigned char c2[] = {

0xf0,0x0f };unsigned char c3[] = {

0xf0,0x0f };unsigned char c4[] = {

0x0f,0xf0 };void SysTick_Handler(void){ Event = 1;} void printX(){ }

int main(){

int count = 0,i,Light=0,x=0,z=0,y=0,zz=0,yy=0,c=0,cc=0,a=0,aa=0;unsigned char buf[5];

//存(数字)字符串

unsigned char name[20] = “";unsigned char number[20] = ”“;SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN SYSCTL_XTAL_8MHZ);RIT128x96x4Init(1000000);RIT128x96x4Clear();

SysTickPeriodSet(SysCtlClockGet()/ 10);

//调频率

SysTickEnable();SysTickIntEnable();while(1){

if(Event){

RIT128x96x4Clear();

Event = 0;

sprintf(buf,”%3i“,count);

//通过sprintf将数字转换为字符

| if(Light >= 15)

{

Light=0;

} else {

Light++;} RIT128x96x4StringDraw(name, 50, 55, 15-Light);RIT128x96x4StringDraw(number, 50, 65, Light);sprintf(buf,”%d",count);;RIT128x96x4StringDraw(buf, 50, 75, 12);

count++;if(count>=200){

count=0;} RIT128x96x4ImageDraw(buf2,(int)(x*0.50), 5, 20, 1);RIT128x96x4ImageDraw(buf3,(int)(x*0.50), 7, 20, 1);RIT128x96x4ImageDraw(buf4,(int)(x*0.50), 9, 20, 1);RIT128x96x4ImageDraw(buf5,(int)(x*0.50), 11,20, 1);RIT128x96x4ImageDraw(buf6,(int)(x*0.50), 13, 20, 1);RIT128x96x4ImageDraw(buf7,(int)(x*0.50), 15, 20, 1);RIT128x96x4ImageDraw(buf8,(int)(x*0.50), 17, 20, 1);RIT128x96x4ImageDraw(buf1, 0, 20,(int)(x*0.60), 1);RIT128x96x4ImageDraw(c1,(int)(60+c*1.20),(int)(5+a*0.85), 4, 1);RIT128x96x4ImageDraw(c2,(int)(60+c*1.20),(int)(7+a*0.85), 4, 1);RIT128x96x4ImageDraw(c3,(int)(60+c*1.20),(int)(9+a*0.85), 4, 1);RIT128x96x4ImageDraw(c4,(int)(60+c*1.20),(int)(11+a*0.85), 4, 1);RIT128x96x4ImageDraw(r1,(int)(z*0.30),(int)(50+y*0.20), 4, 1);RIT128x96x4ImageDraw(r2,(int)(z*0.30),(int)(52+y*0.20), 4, 1);RIT128x96x4ImageDraw(r3,(int)(z*0.30),(int)(54+y*0.20), 4, 1);RIT128x96x4ImageDraw(r4,(int)(z*0.30),(int)(56+y*0.20), 4, 1);if(x<=200&&x>=0)

//直线 {

x++;} if(x>=200){

x=0;} if(c<=50&&c>=-50)

//圆形循环 {

if(cc==0)c++;

if(cc==1)c--;} if(c>=50){

cc=1;} if(c<=-50){

cc=0;} if(a<=100&&a>=0){

if(aa==0)a++;

if(aa==1)a--;} if(a>=100){

aa=1;} if(x<=0){

aa=0;} if(y<=200&&y>=0){

if(yy==0)y++;

if(yy==1)y--;} if(y>=200){

yy=1;} if(y<=-200){

yy=0;} if(z<=400&&z>=0){

if(zz==0)z++;

if(zz==1)z--;} if(z>=400){

zz=1;} if(z<=0){

//矩形反弹

}

zz=0;

} } } return 0;

下载嵌入式Linux应用开发(中断实验指导)[★]word格式文档
下载嵌入式Linux应用开发(中断实验指导)[★].doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    嵌入式系统实验

    南京信息工程大学 实验(实习)报告 实验(实习)名称电机转动控制及中断实验 实验(实习)日期2016.5 得分 指导教师 谢胜东学院 计算机与软件 专业 计算机科学与技术 年级2013......

    嵌入式实验2

    南昌航空大学实验报告 二0一一 年 10月 16日 课程名称: 嵌入式系统 实验名称: 串行端口程序设计 班 级: 080611 学生姓名: 曹启斌 学号: 08061107 指导教师评定: 签名: 一、实验目......

    2016嵌入式实验心得体会(合集)

    2016嵌入式实验心得体会 嵌入式实验心得体会是计算机专业应该具备的常用知识,以下这篇范文整理个人对嵌入式系统的认识,和进行操作之后的个人体会,对操作的疑难的反思。下面是......

    嵌入式Linux开发流程

    嵌入式Linux开发流程 嵌入式 linux开发,根据应用需求的不同有不同的配置开发方法,但是一般都经过以下过程: 建立开发环境。操作系统一般 REDHAT-LINUX,版本 7 到9 都可以,选择定制......

    嵌入式开发工程师-简历

    【个人信息】姓名: 身高: 性别: 学历: 籍贯: 专业:电子信息工程 联系电话: E-mail: 【求职意向】 嵌入式开发工程师或相关工作,对LINUX驱动开发极感兴趣 【工作经验】 2009.3----201......

    关于嵌入式开发的一点建议

    CSDN:很多人都讲嵌入式开发很难,能不能就你学习和工作经验与大家分享下嵌入式开发如何开始和深入?作为嵌入式研发工程师,你认为其应具备哪些知识结构和实战能力? 卜茂霞:说到嵌入......

    Android 嵌入式开发心得体会

    Android 嵌入式开发心得体会 刚开始接触Android感觉到它很有意思,在界面开发上和web也可以形成了相通的架构,更加方便,视觉上也是非常的酷,在前期我通过的大量的Android SDK开发......

    嵌入式开发学习心得(精选5篇)

    个人学习嵌入式心得体会 就我个人而言,从最开始对嵌入式一窍不通到现在越学越感兴趣,当然相应在嵌入式方面的提高也是很明显的。学习潜入式越来越成为我学习生活的一部分,现在......