当前位置:文档之家› 嵌入式实践训练项目

嵌入式实践训练项目

嵌入式实践训练项目
嵌入式实践训练项目

信息与电气工程学院

电子应用系统CDIO二级项目(2014/2015学年第一学期)

题目:嵌入式实践训练项目

专业班级:电子信息

组员姓名:

学号:

指导教师:贾东立老师马永强老师李丽宏老师设计周数:1周

设计成绩:

2015年1月10 日

目录

1 项目设计目的 (2)

2 项目设计正文 (2)

2.1 主要设计使用工具的介绍 (2)

2.2 音乐播放器设计 (2)

2.2.1 项目原始数据 (2)

2.2.2 技术要求 (2)

2.2.3 项目开发设计 (3)

2.3 WEB点灯设计 (11)

2.3.1 技术要求 (11)

2.3.2 项目开发步骤 (11)

3 项目总结 (13)

4 参考文献 (14)

1、项目设计目的

(1)通过PC机与嵌入式开发板,开发一个Mplayer播放器,在开发板上完成歌曲的播放、快进、快退、暂停、选歌曲等功能,同时显示歌词等歌曲信息;

(2)制作HTML网页,通过加载开发板服务器boa,实现web点灯功能。

(3)编写设计报告。

2、项目设计正文

2.1 主要使用工具的介绍

(1)Linux 开发环境ubuntu

虚拟机可以说是一种软件,也可以说是一种技术,它允许你在一台主机上虚拟出多台计算机,每台虚拟的计算机都可以有自己的硬件及软件配置。虚拟机技术的作用:可以帮助网络架构工程师在一台电脑上模拟、检测整个网络运行情况。可以极大的降低企业的运营成本与风险。可以帮助操作系统设计者测试、解决问题。可以帮助开发者在多个平台上进行自由切换。

(2)硬件开发系统介绍 (s5pv210)

S5PV210 CPU 处理器,S5PV210 又名“蜂鸟”( Hummingbird ),是三星推出的一款适用于智能手机和平板电脑等多媒体设备的应用处理器。采用了 ARM CortexTM-A8内核,ARM V7指令集,主频可达1GHZ,64/32位内部总线结构,32/32KB的数据/指令一级缓存,512KB 的二级缓存,可以实现 2000DMIPS。包含很多强大的硬件编解码功能,内建MFC(Multi FormatCodec),支持MPEG-1/2/4,H.263,H.264等格式视频的编解码,支持模拟/ 数字 TV 输出苹果的iPad和IPhone4上有的A4处理器(三星制造的),就用的和S5PV210一样的架构(只是3D引擎和视频解码部分不同),三星的Galaxy Tab平板电脑上用的也是S5PV210。

2.2 音乐播放器设计

2.2.1 项目原始数据

MP3歌曲、歌词文件(.lrc)、图片(.bmp)、A8开发板、部分参考代码

2.2.2技术要求

(1)能够播放歌曲文件;

(2)通过触摸屏按钮和物理按键控制mplayer播放、暂停、快进、快退等功能;

(3)显示歌曲列表,当前播放歌曲须要反显,点击对应歌曲能切换;

(4)显示歌曲信息、歌曲时间、歌曲进度条、歌曲对应的歌词(并且能够和歌曲同步);

(5)能够自动换歌(播放完一首歌后,自动播放下一首歌)。

(6)通过网页,控制开发板上灯的亮灭功能;

(7)编写设计报告。

2.2.3 项目开发设计

(1)项目开发流程

图1 开发流程图

1)嵌入式系统开发流程(无操作系统)

1.硬件开发(PCB、原理图)——硬件工程师

2.启动代码(硬件初始化)——芯片厂商(汇编)

3.设备驱动(裸机下驱动)——驱动工程师

4.应用程序(单任务)——应用工程师

2)嵌入式系统开发流程(有操作系统)

1.硬件开发(PCB、原理图)

2.启动加载程(bootloader)

3.操作系统内核(kernel)

4.根文件系统 (root)

5.设备驱动 (driver)

6.应用程序 (进程、线程、GUI、网络、数据库等)

3)常基于linux系统的嵌入式开发过程:

1. 开发目标硬件系统:

根据需求,选择微处理器、Flash及其它外设等绘制原理图、PCB图、焊接测试

2.建立交叉开发环境:

安装linux开发环境\安装交叉编译工具链配置串口、网络、USB通信工具等

3. 开发bootloader:移植bootloader,如u-boot

4. 移植linux内核:如linux2.6.38内核移植

5. 开发根文件系统:如yaffs文件系统的制作

6. 开发相关硬件的驱动程序:如LCD、网卡、GPIO等

7. 开发上层的应用程序:如网络、QT GUI开发

(2) 项目开发步骤

1)初始化显示屏

在使用开发板的液晶屏前必需先初始化液晶屏,初始化液晶屏后我们才可以使用液晶屏的相关的函数,并且液晶屏的初始化函数应只调用一次,不可重复初始化。初始化液晶屏时可用函数TFT_Init("/dev/fb0");

2)创建背景窗口,显示背景

创建背景窗口可用函数TFT_CreateWindowEx()。窗口贴图可用函数

TFT_File_Picture()。

3)读歌曲目录,存歌曲名

写一函数使用opendir、readdir、closedir函数读歌曲目录的文件,保存歌曲文件的文件名。在保存歌曲文件名时应malloc一个空间用来存储歌曲的名字,因为struct dirent 类型的指针指向的区域会在closedir后释放掉,并且malloc的空间的大小应是歌曲名长度再加1。

4)打印歌曲列表

写一函数将存储起来的歌曲名打印到屏幕上,打印时注意将正在播放的歌曲高亮、突出显示。在调用打印函数前应设置打印位置,打印的颜色(即前景色,并且前景色与背景色应设置为不同的颜色)。清除窗口内容可用函数TFT_ClearWindow()。设置窗口内光标位置可用函数TFT_SetTextPos()。设置窗口前景色可用函数TFT_SetColor()。

5)创建命名管道,用来向mplayer发送命令。

6)创建进程,子进程启动mplayer。

7)创建线程读键盘键值,根据键值发命令给mplayer

控制mplayer播放、暂停、快进、快退、上一首、下一首,当使用key4+5键盘驱动时应先执行命令insmod key4+5.ko安装键盘驱动,然后再在线程中一直去读键盘的键值。读出键值后再根据键值发命令给mplayer(向命名管道中写命令),最好专门写个函数用来给mplayer发命令。

8)创建线程读触摸屏的触摸点,根据触摸点发命令给mplayer控制mplayer播放、暂停、快进、快退、上一首、下一首同键盘

9)创建线程发命令给mplayer获取歌曲的信息发命令获取的歌曲的信息:艺术家、专辑、流派、标题、歌曲当前的播放进度(百分比)、当前的播放时间(单位秒,可用于歌词的同步)。注意:发命令给mplayer获取的歌曲的信息时,发的命令不能太快,否则mplayer 来不及处理,会卡死。

10)创建线程读mplayer的输出信息,解析信息,打印信息

发命令给mplayer后,mplayer会返回相应的信息。默认返回的信息会打印到终端上,要想在程序中获取相应的信息我们需要在子进程用exec开启mplayer前重定向标准输出至管道。

重定向mplayer的输出后我们即可从管道中读取mplayer的输出信息。得到mplayer 的输出信息后,写出相应的字符串解析程序,得到想要的信息并打印到屏幕上。

11)创建线程解析歌词并在显示屏上和歌曲同步。根据mplayer输出的时间同步歌词。(3)项目设计内容

//打开MAIN.C文件最后一个函数 main函数

int main(int argc,char *argv[]){

mplayer_init();//创建一些通信需要的管道

return 0;

}

//TFT初始化

TFT_Init("/dev/fb0");

//窗口初始化

win_init();

//打开tft_display.c最后一个函数win_init函数

win_tft_putpicture(win_play,"../pic/play.bmp");

win_tft_putpicture(win_backward,"../pic/backward.bmp");

win_tft_putpicture(win_forward,"../pic/forward.bmp");

in_tft_putpicture(win_back,"../pic/back.bmp");

win_tft_putpicture(win_front,"../pic/front.bmp");

win_tft_putpicture(win_mute,"../pic/mute_1.bmp");

win_tft_putpicture(win_volume,"../pic/volume_20.bmp");

win_tft_putpicture(win_song_list,"../pic/song_list.bmp");

win_tft_putpicture(win_lrc_list,"../pic/lrc_list.bmp");

win_tft_putpicture(win_song_detail,"../pic/song_detail.bmp");

//获取歌曲列表(在win_init后面添加)

song_list = get_song_list("../song/");

//打印歌曲列表,添加如下代码,编译并运行

for(i=0;i

printf("song_list[%d] = [%s]\n", i, song_list[i]);

}

//在开发板上显示歌曲列表

show_song_list(song_list,offset,focusrect_song_num,song_num);

//启动mplayer

int flag = starting_mplayer();//开进程启动Mplayer

if(flag==0){

printf("mplayer is down\n");

return 0;

}

//创建线程

pthread_t TOUCH;

pthread_create(&TOUCH,NULL,touch_pthread,NULL);

pthread_join(TOUCH,NULL);

//打开touch.c文件找到最后一个函数

//取消函数find_touch_focus前面的注释符

//找到函数find_touch_focus(){}

//取消printf前面的注释符

printf("touch_focus = %d\n",i);

//编译运行程序,记录触摸区域的标记

//在printf后面添加相应的处理函数,每个区域对应一个函数,如下:switch(i){

case 0:

play_or_pause();//播放0

break;

case 1:

backward_song();//快退1

break;

case 2:

forward_song();//快进2

break;

case 3:

back_song();//上一曲3

break;

case 4:

next_song();//下一曲4

break;

case 5:

mute_song();//静音5

break;

case 6:

volume_down();//减音量6

break;

case 7:

volume_up();//加音量7

break;

case 8:

find_song_focus(x,y);//歌曲列表8

break;

default:break;

}

//在main函数中添加歌曲信息显示线程

//添加写命令线程(因为要需要发送命令才能获取到歌曲的信息)

pthread_create(&WRITE_CMD,NULL,write_cmd_pthread,NULL);

//添加读歌曲信息线程

pthread_create(&READ_SONG_IMAGE,NULL,read_song_image_pthread,NULL); //打开song.c文件,找到最后一个函数

//取消printf函数前面的注释符,编译运行程序,看终端打印的歌曲信息

//处理相应的信息,并且将信息显示到开发板上,在printf后面添加如下代码for(i=0;i<7;i++){

if(strstr(buff,song_image[i].comdition))

song_image[i].fun(strstr(buff,song_image[i].comdition));

}

show_song_image(image);

//歌词显示以及同步,在main函数中创建歌词显示线程

pthread_t LRC_P;

pthread_create(&LRC_P,NULL,displaye_lrc,NULL);

pthread_join(LRC_P,NULL);

//........

default:break;

}

(4)项目主要代码

#include

#include

#include

#include

#include

#include

#include

#include

#include "TFT_API.h"

#include "touch.h"

#include "tft_display.h"

#include "song.h"

/******************************************************* *功能:初始化Mplayer

*参数:无

*返回值: 1 成功 0 失败

********************************************************/ void mplayer_init(){

unlink(m_fifo);

mkfifo(m_fifo,0744);

int ret;

ret = pipe(m_pipe);

if(ret < 0){

perror("pipe");

}

pthread_mutex_init(&write_mutex,NULL);//防止写命令错误

fifo_fd = open(m_fifo,O_RDWR);

if(fifo_fd<0){

perror("open fifo");

}

}

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

*功能:创建进程启动Mplayer

*参数:无

*返回值: 1 成功 0 失败

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

int starting_mplayer(){

int flag=0;

pid_t pid;

pid = fork();

if(pid <0){

perror("fork");

}else if(pid==0){

char song[100];

close(1);

dup(m_pipe[1]);

sprintf(song,"../song/%s",song_list[0]+4);

execlp("mplayer", "mplayer", "-ac", "mad", "-slave", "-quiet", "-input", "file=../fifo/m_fifo", song, NULL);

}else{

flag=1;

write_volume_cmd(0);//设置成默认音量

}

return flag;

}

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

*功能:主函数

*参数:无

*返回值:无

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

int main(int argc,char *argv[]){

mplayer_init();//创建一些通信需要的管道

return 0;

}

2.3 web点灯设计

2.3.1技术要求

制作HTML网页,通过加载开发板服务器boa,实现web点灯功能。

2.3.2 项目开发步骤

(1)制作网页

主要代码如下:

sunplusedu Smart Home




LED Control

bedroom

bathroom

kitchen

(2)实现步骤

1)设置开发板ip :ifconfig eth0 172.20.223.123

2)ping 主机:ping 172.20.223.18

3)通过ftp访问开发板,打开任意文件夹,输入ftp://172.20.223.123//ls

4)将boa_arm文件夹拷贝到开发板/home路径下

5)将boa_arm文件夹拷贝到开发板/usr路径下

6)删除原有boa文件夹

7)将boa_arm文件夹给名为boa

8)将boa整个文件夹权限设置为可读、可写、可执行

9)运行boa可执行程序

10)打开浏览器将代理关掉

11)在浏览器中输入http://172.20.223.123:8000/index.html

将代理关闭方法:

IE设置:工具->Internet 选项->连接->局域网设置,不勾选为LAN 使用代理服务器谷歌设置:工具->选项->高级选项->网络->更改代理服务器设置

搜狗设置:工具->网络连接->网络连接设置->不使用任何代理

火狐设置:工具->选项->高级->网络->设置->手动设置代理

3、项目总结

这次的报告总结,钟小星和陈星颖写的是音乐播放器的报告,王敏写的是web点灯报告。

我们通过这次嵌入式的课程设计,使我们得到了一次用专业知识、专业技能分析和解决现实问题的能力。使我们在嵌入式学习过程中,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为一名合格的应用型人才打下良好的基础。综合课程设计让我们把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更深层次的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我们通过查阅相关书籍、资料以及和周围同学交流得到解决。嵌入式是我们生活中非常常见的一种东西,对于我们学以致用的这种能力得到了很好锻炼,能够为我们以后的工作于学习打下基础。

不抛弃,不放弃。我们这个团队是一个在岁月的洗礼中不断成长和强大的团队,我也很有幸在这个团队里付出我的一份力量,尽管很微小但是也为团队出了一份力。

这次李老师讲的课我们都很喜欢,也很容易接受,不仅讲课精彩,还具有丰富的知识,为我们以后要从事多个方面做了很重要的铺垫,同时也给我们提供了大量的资料,这些资料平时在书上或者网上都是很难得的,感谢李老师。

最后,很感谢这次三位老师为我们争取来的机会,机会来之不易,这一周所学到的知识使我们受益终生,也体会到当老师的辛苦,处处为我们学生着想,我们上课的同时,老师们

每天也来陪伴着我们,通过这次短暂的学习,我们以后要更加努力提高自己的各方面能力,才能报答老师们的栽培之情!

4、参考文献

[1] 弓雷. ARM嵌入式Linux系统开发详解.清华大学出版社.2014年

[2] 韦东山.嵌入式Linux应用开发完全手册.人民邮电出版社.2008年

项目设计

评语

项目设计成绩指导教师

(签字)年月日

注:此表必须在同一页面。

软件实训报告范文精选5篇

软件实训报告范文精选5篇 实训报告是展示自身实训收获成长的重要报告,那么实训报告该如何写呢?小编精选了一些关于实训报告的优秀范例,一起来看看吧。 软件开发项目实训总结 时间过的好快啊,为期三个礼拜的实训生活即将结束了,短短的三个礼拜让我们收获很大,专业知识、编程水平都有很大的提高。刚开始三天的高强度的课程安排让我们受益匪浅;接下来的上机实训又让我们可以巩固了课程。这让我觉得实习生活充实而有意义。辅导老师配好了环境之后,我们开始了项目的制作,这次项目实训算是自己小学期间主要完成的项目。最后,自己的努力还是有收获的,看着电脑上记录得满满的代码,看着自己的项目最终能够运行成功,就觉得很有成就感。 在本次的实训中,除了让我明白工作中需要能力,素质,知识之外,更重要的是学会了如何去完成一个任务,懂得了享受工作。当遇到问题,冷静,想办法一点一点的排除障碍,到最后获取成功,一种自信心由然而生,这就是工作的乐趣。有时候也需要虚心请教,从别人的身上真得能学习到不自己没有的东西,每一次的挫折只能使我更接近成功。除此以外,我还学会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。这次所学知识与实际的应用,理论与实际的相结合,让我大开眼界。也是对以前所

学知识的一个初审吧!这次实习对于我以后学习、找工作也真是受益菲浅,在短短的一个星期中让我初步从理性回到感性的重新认识,也让我初步的认识这个社会,对于以后做人所应把握的方向也有所启发!相信这些宝贵的经验会成为我今后成功的重要的基石。 在此,我非常感谢学院领导和指导老师对这次实训的大力支持。 软件开发项目实训总结 一、实训目的: 通过对java语言、sql数据库的应用以及sql语言的复习和锻炼,并且通过使用MyEclipse开发平台设计管理项目,以达到充分熟悉开发平台及应用设计。同时掌握并实践软件项目设计规范及其开发流程:需求分析、概要设计、详细设计、代码编写等,以便提前适应软件公司开发流程、环境和工作要求。 二、实训内容: 1. 项目:(“xx网”) 2. 完成(用户注册、登录、列表、购物车、删除、修改)等功能 3. 数据库设计、SQL应用 4.项目实战 三、实训总结: 转眼间实训已过去一段时间,之前的兴奋、喜悦如今已经让我熟悉,在实训的每一天都会让我有成为一名真正的财富者拥有的冲动。也许,在这期间不一定会让一个人有着翻天覆地的变化,但变化就是这样一点一点产生的。通过这一期的实训,虽然倍感折磨,但是收获

实习报告_嵌入式(DOC)

学 生 实 习 报 告 实 习 名 称 院 部 名 称 专 业 班 级 学 生 姓 名 学 号 实 习 地 点 指 导 教 师 实习起止时间:2011年 7月 4日至2011年 7月29日

实习报告 前言 中软国际有限公司(中软国际)是根植中国、服务全球的IT服务提供商,致力于为遍及全球的客户提供全面的服务,打造中国智造综合平台。中软国际总部位于北京,在美国、日本、香港以及中国大陆25个主要城市设有35家分子公司或办事处,员工突破10000人。年营业额逾10亿元人民币(2007财年)。2007年和2008年中软国际对欧美软件外包业务位列全国第一(IDC统计数据)。 集团业务涵盖以咨询为驱动的解决方案、以专业化为准则的ITO和BPO外包服务和以人才供链为导向的培训服务,包括咨询服务、软件开发、系统集成、软件测试、软件本地化、企业应用平台建设与维护、IT服务外包以及业务流程外包。 凭借集团的全球分布,中软国际能够充分运用全球资源和自身领先的技术实力帮助客户应对不断快速变化的商业挑战。凭借中软国际在中国市场所拥有的独特领导地位和全球提交能力,除能为客户提供“传统”外包服务及信息解决方案外,还能以其国内、海外市场的互动能力帮助客户在中国或海外开拓新的业务机会。 一、实习目的 1、掌握嵌入式微处理器的结构与原理 2、熟悉并掌握嵌入式Linux操作系统的操作 3、熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。 二、实习时间

三、实习地点 江苏省无锡市无锡新区新安镇震泽路5号江苏软件外包产业园处子座B座四、实习单位和部门 实习单位:无锡中软国际信息技术培训有限公司 实习部门:无锡中软国际信息技术培训有限公司 五、实习内容 来到中软国际,主要实习方向为嵌入式开发,细化为LCD驱动开发。 所谓嵌入式系统是一台特殊用途的计算机,该计算机由它控制的设备完全封装。驱动这些系统的软件称为嵌入式软件。通用个人计算机可以执行多个任务,接受新的任务,并可由用户编程;而嵌入式系统有特定的需求,只能执行有限数量的预定义任务,嵌入式系统的优势在于,它们可以进行优化来进一步改善性能,并可以减小规模和成本。由于存在这些优势,嵌入式系统的使用越来越普及,因而使日常生活的各个方面(包括通讯、娱乐和工业控制系统)得到充分的改善。 为了成功的进行嵌入式开发,我们做了如下准备:C语言的强化,linux系统下的操作。 linux常用命令: cd【目录】: 切换到指定的目录,可以是相对路径或者是绝对路径。绝对路径是以“ / ”开头,从目录的最顶层开始列出目录路径。相对路径不用“ / ”开头,只列出当前工作目录以下的目录路径。 ls【选项】【文件目录列表】:显示指定工作目录中所包含的内容的指令是ls,要说明的是ls命令列出文件的名字,而不是文件的内容。 mkdir【选项】路径: “路径”可以是一系列,此时若路径中的目录不存在,则系统自动创建那些不存在的目录。

《嵌入式技术基础与实践》习题参考答案

第1章概述习题参考答案 1.嵌入式系统的基本含义是什么?为什么说单片机是典型的嵌入式系统? 答:即MCU的含义是:在一块芯片上集成了中央处理单元(CPU)、存储器(RAM/ROM 等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。大部分嵌入式系统以MCU为核心进行设计。MCU从体系结构到指令系统都是按照嵌入式系统的应用特点专门设计的,它能很好地满足应用系统的嵌入、面向测控对象、现场可靠运行等方面的要求。因此以MCU为核心的系统是应用最广的嵌入式系统。 2.简述嵌入式系统的特点以及应用领域。 答:嵌入式系统属于计算机系统,但不单独以通用计算机的面目出现;嵌入式系统开发需要专用工具和特殊方法;使用MCU设计嵌入式系统,数据与程序空间采用不同存储介质;开发嵌入式系统涉及软件、硬件及应用领域的知识;嵌入式系统的其他特点,比如紧张的资源,较高稳定性要求,低功耗,低成本等。一般用于工业控制,智能家电,日常电子等领域。 4.比较MCU与CPU的区别与联系。 答:CPU是一个单独的PC处理器。而MCU,则有微处理器,存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。所以可以这么说,MCU 是一个包含微处理器的嵌入式系统,而CPU紧紧是一个处理器而已。 第2章FreescaleS08微控制器习题参考答案 1.给出AW60 存储器映像的简要说明。 答:所谓存储器映像,是指地址$0000 ~ $FFFF这个64KB空间,哪些地址被何种存储器所占用,或者说AW60的RAM、Flash、I/O映像寄存器各使用$0000 ~ $FFFF这个64KB空间中的哪些地址。简单地说,就是$0000 ~ $FFFF这个64KB空间是如何分配的。 2.AW60的引脚主要分为哪几类?简要说明主要引脚的功能。 答:(1)电源类信号引脚(2)复位信号引脚(3)主要功能模块引脚。比如定时器,IRQ中断等。(4)其他,比如背景调试BKGD引脚 主要引脚:AW60最小系统连接的I/O口,以及各具体功能I/O口。 3.嵌入式系统中RAM和Flash作用分别是什么?答:一般来说RAM这个区域安排用户数据(主要是全局变量)和堆栈空间;Flash 要用于存储程序、常数、中断向量等。 4.给出AW60的硬件最小系统。答:AW60芯片的硬件最小系统包括电源及其滤波电路、复位电路、晶振电路及PLL滤 波电路、写入器接口电路。 5.指出下列指令中的源操作数和目的操作数的寻址方式。 (1) MOV #$80 , $80 (2) MOV $80,$A0 (3) MOV $80 , X+ (4) MOV X+ , $80 (5) LDA $80 , X 答:(1)立即寻址,直接寻址 (2)直接寻址,直接寻址

嵌入式实习生实习日志(精品)

实习名称:嵌入式开发 实习时间:2014年7月7日至8月 1 实习生实习日志 实习生: 学校实习指导教师签字: 日期: 年 月曰

实习生实习报告 实习内容:

培训机构。我满怀着一腔热血,就是为了自己能够在专业水平得到提高,以及为自己以后工作做铺垫。在为期四周实习中,我学到了许多知识,从中也认识到了自已的不足。 在未实习之前,我就对牛尔教育机构有所了解,因为我在网络上搜索过,从网络上我了解到了牛尔教育机构是非常不错的机构,是我一直想进入的机构。 为期四周的实习生活,每天上午上课下午自习,每天的作息时间都很规律,朝九晚五。正是因为这是使我们能够更好的适应以后的工作和生活节奏。这次实习主要是了解关于嵌入式的开发、C言语的学习,C语言高级编程的学习,shell编程的学习,以及关于面试的技巧的学习。 第一天的实习中,我们就学习了C语言知识,主要是将讲数组和指针,以及它们之间的差别。其中比较重要的知识点有:①指针变量 是用来存放地址的变量,而指针只是一个地址量,数组名是一个地址常量,不能修改它的内容,而指针在声明时,还能赋初值。②指针数组指的是数组中的元素是指针变量,它是一个数组,元素是指针,元素相当于二位数组的行名。③在C语言中,数组不能作为一个整体参与任何运算,数组的处理是通过逐个处理其元素来实现的。④注意for 循环的控制语句,由于人工计算容易出错,因此可以让计算机来计算数组的大小,预算符sizeof给出其后的对象或者类型的大小(以字节为单位)。整个数组的大小除以单个元素的大小就是数组中元素的数目⑤数据在内存中存储的方式具体有四种:自动、静态的、寄存器的和外部的。其中用静

嵌入式系统实验报告

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

实验名称: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所示:

软件开发项目实习心得体会

软件开发项目实习心得体会 一直以来期望从事自己喜欢的事业的我,对软件开发有者及大的兴趣,可由说种种原因使我从事工作以来走了好几年弯路,心中的梦想迟迟不能得以实现,可程序员的梦想从来没有从我的心中抹去,但这扇大门好像并没有向我敞开,今天,贵公司给了我敲开这扇大门的机会,让我真实体验了程序员的诞生过程。早就听说,程序员的前几个月是最苦的,可从来没有感受到,海马实习基地让我提前感受到了刚刚进入软件行业的压力和困惑,再也没有在自己家里随便写段小程序后的那种“自豪”感了。要面对每天必须面对的问题,再也不可能以“逃避”而了之了。也让我感觉到做为一个程序员所应该具备的基本素质在这不到一个月的实习过程中也让我深深体会到了作为一个合格的程序员应该具备的基本素质。 团队精神和协作能力是程序员应该具备的基本素质,最近的工作中让我深深休会到了这一点,由于小组成员配合不好,使本来很方便的cvs给自己的工作带来的及大的麻烦,一不小心自己写的的东西就会被小组别的成员在上传文件的时候给覆盖掉,一整天的工作可能就这样被反工,我们小组这次就是因为协作不好,导致各模块之间不法连接,给工作带来了及大的麻烦,消耗了大量的劳动力还没有提高工作效率。这使我深深的体会到:一个成功商业性软件的开发必须有一个有强大凝聚力的团队,个人的力量是有限的,团队精神和良好的协作会使我们做出优秀的软件。 良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。这次的这个小小的项目,就因为文档上的一点点理解错误让我们花了很大的工夫去改代码,改页面。很庆幸的是,这是一个小项目,要是大项目,这种问题可能就会导致大量的代码修改,可见文档在一个项目中起者巨大的做用。

嵌入式实验报告

嵌入式技术 实验报告 系别:计算机与科学技术系 班级:计12-1班 姓名:刘杰 学号:12101020128 总成绩: 评语: 日期:

2.在弹出的对话框中依次选择“cedevice emulator emulator kdstub”。 3.选择“Build OS”菜单的“sysgen”开始构建平台。 1.1.4连接,下载和运行平台 1.选择“Target”菜单下的“Connection option”菜单项。 2.在新的对话框中,配置连接关系 3.选择“Target”菜单下的“attach”菜单项,开始下载。 ?实验结果 操作系统定制成功,能正常运行。 ?结果截图 ?问题总结 由于对实验平台了解不够,致使操作过程中添加和删除组件时不知道该如何下手,影响整个实验进度。 实验1.2: 1.打开Platform Builder,并且打开实验1的工程,在实验1的工程基础上做本实验。

进程显示 IE信息查看

报文监测 实验1.3使用Platform Builder开发应用程序 简单实验步骤 1.打开Platform Builder。 2.选择“File”菜单下的“Open Workspace…”,然后打开实验1中创建的平台,本实验要基于 上面的实验的基础上做。 3.选择“File”菜单下的“New Project or File…”,打开“New Project or File”对话框。 4.在“Projects”选项页中选择“WCE Application”;在“Project Name”中输入项目的名字,例 如“MyApp”。 5.在“New Project Wizard – step 1 of 1”中选择“A typical Hello World Application”,点击“Finish” 按钮。 6.选择“Build”菜单中的“Build MyApp.exe”来编译应用程序。

嵌入式技术基础与实践_习题参考答案

单片机习题参考答案 第1章概述习题参考答案 1.嵌入式系统的基本含义是什么?为什么说单片机是典型的嵌入式系统? 答:即MCU的含义是:在一块芯片上集成了中央处理单元(CPU)、存储器(RAM/ROM 等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。大部分嵌入式系统以MCU为核心进行设计。MCU从体系结构到指令系统都是按照嵌入式系统的应用特点专门设计的,它能很好地满足应用系统的嵌入、面向测控对象、现场可靠运行等方面的要求。因此以MCU为核心的系统是应用最广的嵌入式系统。 简述嵌入式系统的特点以及应用领域。 答:嵌入式系统属于计算机系统,但不单独以通用计算机的面目出现;嵌入式系统开发需要专用工具和特殊方法;使用MCU设计嵌入式系统,数据与程序空间采用不同存储介质;开发嵌入式系统涉及软件、硬件及应用领域的知识;嵌入式系统的其他特点,比如紧张的资源,较高稳定性要求,低功耗,低成本等。一般用于工业控制,智能家电,日常电子等领域。 3.比较MCU与CPU的区别与联系。 答:CPU是一个单独的PC处理器。而MCU,则有微处理器,存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。所以可以这么说,MCU 是一个包含微处理器的嵌入式系统,而CPU紧紧是一个处理器而已。 4.举例说明嵌入式系统在日常生活中的应用。 答:日常数码产品:手机,MP3,U盘,相机等。 日常工业类:冰箱,空调,微波炉,汽车等。 5.C语言的那些特性使得它成为嵌入式系统中使用频率最高的高级语言。 答:相比底端汇编,更简单易学;与高级语言如(C++,C#,java等)相比,执行效率高,编译后的编码体积小,而且支持好的编译器还支持嵌入汇编代码;对位的操纵能力很强。6.阅读光盘中【第01章(概述)阅读资料】中的“嵌入式C语言工程简明规范”,用一页纸给出嵌入式C语言工程简明规范的要点。 答:此规范主要针对单片机编程语言和08编译器而言,包括命名、注释、编码规范性等内容。建议在一个工程或者一个项目中尽量遵循相同的代码规范,而不是说你只能拥有一个代码规范。 (1)命名规则:命名清晰明了,有明确含义,使用完整单词或约定俗成的缩写。通常,较短的单词可通过去掉元音字母形成缩写;较长的单词可取单词的头几个字母形成缩写。即"见名知意";命名风格要自始至终保持一致;命名中若使用特殊约定或缩写,要有注释说明;为了代码复用,命名中应避免适用与具体项目相关的前缀;应使用英语命名。 (2)注释:注释基本原则就是有助于对程序的阅读理解,说明程序在"做什么",解释代码的目的、功能和采用的方法。一般情况源程序有效注释量在30%左右。注释语言必须准确、易懂、简洁。边写代码边注释,修改代码同时修改相应的注释,不再有用的注释要删除。汇编和C中都用"//",取消";" 不使用段注释" /* */ "(调试时可用)。 使用文件注释必须说明文件名、项目名称、函数功能、创建人、创建日期、版本信息等相关信息。修改文件代码时,应在文件注释中记录修改日期、修改人员,并简要说明此次修改的目的。所有修改记录必须保持完整。文件注释放在文件顶端,用"/*……*/"格式包含。

嵌入式系统设计实训报告

上海海洋大学 嵌入式系统设计项目实训报告 (2016- 2017第_1_学期) 专业:______计算机科学与技术_________________ 实训项目:____嵌入式应用——电子相册______ __ 实训时间:__2016_______年__12___月___26___日 实训成员:_________孙嘉晨1351127____________ _________周力1351137______________ __________________________________ __________________________________ 指导老师:________池涛_____________________ 计算机科学技术系 2015年11月制

一、实训目的 通过电子相册的制作,了解S3C2440芯片的构造,了解外围SDRAM及NANDFLASH 的存储结构。学会运用定时器中断及通过LCD显示图片,加强自身对嵌入式的理解,提升自身的实践能力。 二、实训内容 以S3C2440芯片为核心,通过外围SDRAM及NANDFLASH存储实现照片的存储,结合定时器中断,实现LCD显示图片,完成简易电子相册的设计。 三、实训设备 硬件:mini2440硬件平台 软件:bmp2h.exe软件进行图片转换 CodeWarrior for ARM Developer Suite软件 四、实训设计方案 (包括项目功能需求分析,方案设计,完成时间规划) 需求分析: 在上世纪末本世纪初,电子相册呈现迅速发展的势头,普及型数码相机的分辨率由200万象素增长到现在的800—1500万象素,价格也由300美元左右下降到现在的120美元左右。随着数码相机的日益普及,作为一种以数字照片的保存、回放和浏览为核心功能的产品——电子相册自然迎合了消费者的需求。 方案设计: 软件设计:代码包含2个模块,LCD模块包含两个文件,进行图片的显示与编辑;Timer 模块包含6个文件,其中timer.c和timer.h文件完成定时器的初始化,interrupt.h和interrupt.c 文件完成定时器中断函数的初始化,isrservice.h和isrservice.c文件完成定时器中断处理,pic.c 和pic.h等文件是由图片生产的C语言数组文件 硬件方面选择了S3C2440为核心的架构。基于ARM的微处理器具有低功耗、低成本、高性能等特点,ARM采用RISC(精简指令集计算机)架构和流水线结构,使用了大量的寄存器,具有极高的工作效率。其中,RISC架构具有如下特点:固定长度的指令格式,指令归整、简单,基本寻址方式只有2~3种,使用单周期指令,便于流水线操作。因此选择此硬件方案的优势有如下: (1)系统芯片功能强大,实现的功能多,对于新的多媒体格式支持性好,只需要安装更新的软件; (2)硬件电路简单,可采用标准电路,不需耗费过多的资源(人力,资金等); (3)可以在硬件上增加模块,留作二次开发使用,极为方便; (4)S3C2440是一个比较成熟的芯片,技术积累齐全; (5)S3C2440支持丰富的存储卡接口。 完成时间规划:第一天分析实训项目实现过程,完成软件方面内容,编写代码。 第二天实现硬件分析,完成硬件连接,对项目进行测试。 第三天完成实训内容,提交报告。 五、实训项目实现

(完整版)《嵌入式系统毕业课程设计与实践》

课程设计 课程名称嵌入式系统课程设计与实践题目名称嵌入式最小系统设计 学生学院自动化学院 专业班级电子(2) 学号 学生姓名何延 指导教师尹明

2013 年5月30日

广东工业大学课程设计任务书 题目名称嵌入式最小系统设计 学生学院自动化学院 专业班级电子(2) 姓名何延 学号 一、课程设计的内容 学习LPC2000系列ARM处理器的启动流程,学习嵌入式系统硬件设计(最小系统),学习嵌入式系统应用程序框架,学习在ARM7处理器上移植uCOS-II操作系统的流程及设计流水灯应用程序。 设计实现一个基于LPC2000系列ARM处理器的最小系统,完成操作系统移植,设计流水灯程序。鼓励在完成基本功能的基础上,自由发挥完成其它功能。 二、课程设计的要求与数据 熟悉LPC2000系列ARM处理器的启动流程,掌握嵌入式系统硬件设计(最小系统),掌握嵌入式系统应用程序设计,掌握在ARM7处理器上移植uCOS-II操作系统的流程及设计流水

灯应用程序。 1完成嵌入式系统最小系统硬件设计,并制作硬件平台。 2 在无操作系统情况下,设计流水灯应用程序,并在前述硬件平台上调试、运行。 3 移植UCOS-II操作系统,并设计流水灯应用程序,在前述硬件平台上调试、运行。 三、课程设计应完成的工作 1 嵌入式系统最小系统硬件设计,并调试验证。 2 设计流水灯应用程序,调试、运行。 3 移植uCOS-II操作系统,设计流水灯应用程序,调试、运行。 四、课程设计进程安排

五、应收集的资料及主要参考文献 《LPC2210使用指南》(LPC2210-user_cn.pdf) LPC2131板原理图(Z2418PSCH.pdf) 《ADS开发者指南》(ADS_DeveloperGuide_D.pdf) 发出任务书日期:年月日指导教师签名:

软件开发项目实训总结

软件开发项目实训总结 策划者:xxx

软件开发项目实训总结 一、实训目的: 通过对java语言、sql数据库的应用以及sql语言的复习和锻炼,并且通过使用MyEclipse开发平台设计管理项目,以达到充分熟悉开发平台及应用设计。同时掌握并实践软件项目设计规范及其开发流程:需求分析、概要设计、详细设计、代码编写等,以便提前适应软件公司开发流程、环境和工作要求。 二、实训内容: 1. 项目:(“xx网”) 2. 完成(用户注册、登录、列表、购物车、删除、修改)等功能 3. 数据库设计、SQL应用 4.项目实战 三、实训总结: 转眼间实训已过去一段时间,之前的兴奋、喜悦如今已经让我熟悉,在实训的每一天都会让我有成为一名真正的财富者拥有的冲动。也许,在这期间不一定会让一个人有着翻天覆地的变化,但变化就是这样一点一点产生的。通过这一期的实训,虽然倍感折磨,但是收获却是很大的,学习中我不但有了学习成果的喜悦,而且自己也日渐成熟,有种说不出的喜悦。 在实训的过程中,我深深的体会到了自己在专业知识方面的欠缺和不足,也意识到了自己作为计算机软件专业的学生,要想在以后的 职业中崭露头角,除了要有过硬的理论知识,健康的体魄之外,还必须具备良好的心理素质,是自己在以后的途中无论经历什么样的困难,都立于不败之地。通过实训老师的课堂讲解与企业文化标准的培训,使我加深了对自己专业的认识,从而确定自己以后的努力方向,要想在短暂的实训时间内尽多的学到东西,就需要我们跟老师或同学进行良好的沟通,加深

彼此的了解,只有我们跟老师多沟通,让老师更了解我们,才能更真切的对我们进行培训工作。由此,班级的文化“共享”就在生活中慢慢形成了。 “纸上得来终觉浅,绝知此事要躬行!”在这短短的时间里,让我深深的感觉到自己在实际应用中所学来专业知识的匮乏。让我真真领悟到“学无止境”这句话的涵义。而老师在专业认识周到中所讲的,都是课本上没有而对我们非常有实际意义的。这又给我们的实训增添了浓墨淡彩的光辉。我懂得了实际生活中,专业知识是怎样应用与实践的。在这些过程中,我不仅知道了职业生涯所需具备的专业知识,而且让我深深体会到一个团队中的各个成员合作的重要性,要善于团队合作,善于利用别人的智慧,这才是大智慧。靠单一的力量是很难完成一个大项目的,在进行团队合作的时候,还要耐心听取每一个成员的意见,是我们的组合达到更加完美。 这次实训除了让我明白工作中需要能力,素质,知识之外,更重要的是学会了如何去完成一个任务,懂得了享受工作。当遇到问题,冷静,想办法一点一点的排除障碍,到最后获取成功,一种自信心就由然而生,这应该就是工作的乐趣。有时候不懂的就需要问别人了,虚心请教,从别人的身上真的能学到自己没有的东西,每一次的挫折都会使我更接近成功。还有学会了在工作中与人的合作与交流,同乐同累,合作互助,这是团体的精神,也是必须学习的东西。 经过之前的学习,对程序设计有了一定的认识与理解。在校期间,一直都是学习理论知识,没有机会去参与项目的开发。所以说实话,这次实训,软件项目开发对我来说是比较抽象的,一个完整的项目要怎么分工以及完成该项目所要的步骤也不是很明确。而经过这次实训,让我明白了一个完整项目的开发,必须由团队来分工合作,并在每个阶段中进行必要的总结与论证。

嵌入式实训报告

嵌入式实训报告 班级:电子信息1301 :钟海明 学号:3138702144 同组人:胡晓海 指导老师:韦龙新 目录: 一、实训目的---------------------3

二、实训要求---------------------3 三、实训容---------------------3 1、嵌入式系统开发环境的搭建----------3 2、嵌入式程序的编译与下载------------3 3、uboot的移植----------------------4 4、linux核的移植------------------4 5、NFS网络文件挂载------------------5 6、FTP和TFTP的运用-----------------6 7、试验箱镜像的烧写-----------------7 8、串口实验和TCP实验同时传送AD值--7 四、实训心得体会及体会----------8 一、实训目的: 学习和掌握ARM嵌入式Linux系统的体系结构和基本指令,熟悉Linux下的设计流程和编程流程,能够实现一定功能的嵌入式的设计,为之前的理论课程实践验证和为今后的学习及将来从事的技术工作打下一定的基础。

二、实训要求: 1、嵌入式系统开发环境的搭建 2、嵌入式程序的编译与下载 3、uboot的移植 4、linux核的移植 5、NFS网络文件挂载 6、FTP和TFTP的运用 7、试验箱镜像的烧写 8、串口实验和TCP实验同时传送AD值 三、实训容: 1、嵌入式系统开发环境的搭建: 首先在笔记本电脑下安装虚拟机VMware,安装成功后拷贝安装好的Fedora到本机上在虚拟机上找到路径打开。打开虚拟机进入Fedora选择用户为root密码为123456。交叉环境的安装,下载好arm-linux-gcc的编译包,解压安装到/opt下。 2、嵌入式程序的编译与下载: 用vi编辑一个(.C)的文件,保存退出后使用(arm-linux-gcc -o 编译后的文件名编译文件名)的指令编译,编译成功后用FTP 或TFTP将可执行文件拷贝到实验开发板中,chmod +x 文件名修改权限(./文件名)执行编译文件。 3、uboot的移植 下载U-boot的安装包,解压到/opt路径下进入u-boot。修改

嵌入式实训总结

实训总结 班级:卓越1301姓名:刘* 短短三周的很快就过去了,在中软国际嵌入式方向班的第二次实习马上就要结束了。虽然只有短短的三周,但我学会了很多知识,学习了在Linux-Fedora14操作系统 的环境下完成基于Smart210SDK开发板和DS18B20的温度采集及显示系统还有按键控制LED灯并实现开机和关机的相关功能,这些知识让我们对嵌入式有了更进一步的了解与熟悉。 作为一名大学生,纵观现在的就业形势,国家高校的扩招,世界金融危机的 横扫,大学生应该有一种居安思危的紧迫感,特别是对已经度过几年大学的我来说,毕业并不是一个遥远的词汇。宝剑锋从磨砺出,梅花香自苦寒来,缺少了平时的锻炼,没有厚积当然不能有薄发。首先我得有思想上的紧迫感,在学校学习的都是理论知识,实践经验则是少之又少。综合能力强的人才才是这个社会需要的,成长成为社会需要的人才是我的个人奋斗目标。有了强大的精神动力,有了坚如磐石的毅力,相信成功并不遥远。 首先,通过这些天的实训我学到了很多知识。这一阶段在Linux-Fedora14操作系统的环境使用Smart210SDK开发板做一些程序设计并烧写到SD卡中通过 Smart210SDK开发板来实现程序的执行,通过对Smart210SDK开发板的一步一步的 熟悉和了解我们开展了嵌入式的基本的程序烧写、调试、执行这些相关的锻炼过程。 最后我们做了两个项目: 第一个是基于Smart210SDK开发板的按键控制LED灯并且实现开机和关机的 相关功能与实现---项目功能是:实现长按开发板上的K1键实现开机或关机,在开机状态下能够实现K1短按控制LED1的点亮与熄灭、K2短按控制LED2的点亮与熄灭、K3短按控制LED3的点亮与熄灭、K4短按控制LED4的点亮与熄灭。项目涉及 的相关技术是:相关寄存器的调用,延时子函数的调用,LED灯的初始化,实现按 键的长按与短按的控制的C语言程序的设计与实现。 第二个是基于Smart210SDK开发板和DS18B20的测量并在minicom上显示的 功能与实现---项目功能:首先实现DS18B20的初始化,然后在DS18B20中写数据、数据转换、读数据、进行数据间的格式转换,最后在minicom上显示出所读出的温度,并且实现当温度高于32°C的时候LED灯闪烁,当温度高于35°C的时候蜂鸣

嵌入式实习报告总结

嵌入式实习报告总结 随着信息化技术的发展和数字化产品的普及,以计算机技 术、芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用的热点,通信、计算机、消费电子技术(3C)合一的趋势正在逐步形成,无所不在的网络和无所不在的计算( , )正在将人类带入一个崭新的信息社会。 二、实习目的 学习和了解了嵌入式在生活中的重要作用和发展过程,熟练掌握硬件体系结构,熟悉下的嵌入式编程流程,积累自己的软件编写经验,能够参与并实现一个真实和完整的嵌入式项目,为今后的学习和将从事的技术工作打下坚实的基础 三、实习任务 第一阶段操作和编程基础 主要介绍的基本命令和基础编程知识,包括 的文件操作和目录操作命令,编辑器,编译器,调试器和项目管理工具等知识。 第二阶段嵌入式C语言编程基础 主要介绍在嵌入式开发编程中C语言的重要概念和编程技巧中的重点难点,以复习串讲和实例分析的形式,重点介绍包括函数与程序结构,指针、数组和链表,库函数的使用等知识。

第三阶段上C强化编程训练 主要包括整数算法训练,递归和栈编程训练,位操作训练,指针训练,字符串训练和常用C库函数编程接口实践,强化学员对下基本编程开发的理解和编码调试的能力。 第四阶段环境高级编程及项目开发编程实践 主要包括系统编程(信号/系统调用/管道消息队列/共享内存等),文件编程(文件描述符/文件读写接口/原子操作/阻塞与非阻塞等,多任务和多线程编程(进程标识/ 用户标识与多线程概念/线程同步等),网络编程(网络基本概念/套接口编程/网络字节次序结构编程);掌握下编程的开发流程,熟悉网络编程的调用接口函数和相关数据结构,使学员初步具备在上进行系统编程开发的能力。同时综合之前所学内容和编程技术,以小组为单位进行一个团队合作项目的开发,考核内容包括文件编程,多线程编程,网络编程和项目文档编写。 第五阶段嵌入式处理器体系结构及编程实践 主要介绍体系结构及其基本编程知识,包括指令分类,寻址方式、指令集、存储系统、异常中断处理、汇编语言以及C\和汇编语言的混合编程等知识。同时结合嵌入式开发板硬件设计原理和基本硬件设计流程,分析各种外设的工作原理和驱动机制,并自己动手实践完成一个开发板上的编程大作业。

软件开发实训报告范本

( 实习报告 ) 单位:_________________________姓名:_________________________日期:_________________________ 精品文档 / Word文档 / 文字可改 软件开发实训报告范本Software development training report template

软件开发实训报告范本 连续几天的实训,给我很深的体会。 首先是关于专业技能方面。不长不短的九天,生活全围绕一个项目转。在实际训练中才发现自己的知识很匮乏,粗糙地了解了软件开发的流程,经历了开发过程中大量专业知识的恶补阶段,见证了完成一个任务后的成就和喜悦。实际项目有专门的流程,这部分是预先可知的;另外一部分是不可预料的问题和困难,处理时就需要的决心和毅力,以寻求解决办法和方式。平常有空闲多学些知识且需整理好各类资料,整理好知识体系结构。 其次,关于团队精神。这方面也有颇深的感受。一个项目需要小组成员的努力和协作才有可能成功。从目标的分析和开发过程中各种文档的完成,以及出现大问题时解决办法的确定,都要集众人的智慧,期间可能会有分歧意见,于是也就有了个人暂时妥协的现

象,这正说明了团队存在的合理性和团队精神的重要性。 再次,关于职业道德,对待一个项目,不仅仅是表面任务的完成,而更应是一个承诺的履行。特别对于软件行业,后期的维护需要花费相当多的精力。软件交付后实施阶段带给用户的应该是方便而非软件运行不畅带来的烦恼。所以要重视职业道德。 最后,这次实训确实学到了一些东西,再次向指导老师表示感谢。 XXX创意设计 Your Name Design Co., Ltd.

嵌入式系统实训

《嵌入式系统实训》课程教学大纲 课程名称(英文):Practice of Embedded System 课程性质:选修课 学分:???? 总学时:30 理论学时:6 实验(或上机)学时:24 适用对象:电子信息工程本科专业 一、课程的性质、目的和任务 Android的推出是在移动互联网迅猛发展的大背景下由Google主导的重大发展战略。随着信息化程度的不断深入,人们对信息的获取变得越来越迫切,需要随时随地的访问各种信息,同时移动通信设备的性能也不断的提高,通信带宽也越来越丰富。移动通信与互联网二者的不断发展和融合,使得市场逐渐催生出一个新兴产业-移动互联网。在整个移动互联网产业链中,终端应用是制高点。而对于终端应用来说,终端的操作系统又是终端应用的基础。 本大纲的拟定主要针对电子信息专业,同时兼顾电子科学与技术、通信、计算机等相关专业选修的同学,因为本课程涉及的知识面广,所以在学习中对本科生的专业基础知识有较高要求。通过本课程的学习可以帮助学生更好的理解本专业其他相关知识。 先修课程:C语言、Java编程原理及应用、Android程序设计基础等。 二、课程基本要求 1. 掌握Android的基本概念和运行原理; 2. 掌握Android的开发环境; 3. 熟悉Android的各个组件的功能; 4. 了解Android系统应用软件的开发过程; 三、课程内容及学时分配 1. Android系统概况(2学时) 2. Android系统基本知识(2学时) (1) Android系统的硬件基础 (2) Android系统的软件基础 3.ARM的体系结构(2学时) (1) ARM构架的嵌入式微处理器 (2) ARM微处理器的指令系统 (3) 常见的ARM微处理器 (4) 采用ARM构架的S3C2410简介 4.嵌入式Linux操作系统的开发(4学时) (1) Linux与嵌入式Linux (2) 嵌入式Linux的开发工具 (3) 嵌入式Linux的配置与编译 (4) 嵌入式Linux的移植 5.嵌入式下应用开发(14学时) (1) Linux基础与GCC (2) Linux下SHELL编程 (3) Linux下文件I/O操作 (4) Linux下网络编程 (5) Linux下GUI的实现

软件开发实训方案模板

软件开发实训方案模板 实训项目简介 一、实训模式 1、以北美、日本市场对技术人员的职业要求为标准。 2、目标:综合职业能力 ●技术能力 ●项目流程 ●北美、日本企业文化 ●团队合作及沟通能力 ●对日本项目的理解能力 ●远程处理和维护服务的能力 ●职业环境中的日文交流能力 二、师资:外包专家团队 1、2-3年的外包工作经验。 2、熟悉外包大型项目运作流程和企业文化。 3、由在职专家团队培训外包人才,优势不言而喻。 4、专业领域广泛:Microsoft、IBM、SUN、Oracle、SAS、SAP...。 5、行业广泛:金融、保险、财务、物流...。 三、实训体系

1、日本案例。 ●描述工作场景、面临的问题和要求,引导学员关注实际问题和涉及到的技术。 ●学员扮演不同行业、不同类型公司中工作的软件工程师。 ●学员4-6人一组,完成设计、编码和测试,并向客户(培训教师,项目经理)解释技术方案。 2、晟峰项目实训。 ●学员综合应用所学到项目流程、设计及开发技能。 ●在项目经理的指导下分组独立完成任务,详细学习软件开发的整个生命周期。 ●准员工式的培训,项目制的教研体系,丰富的项目开发管理经验,使员工能够在进入企业之前,熟悉软件开发规范流程,掌握软件设计、编码、测试、配置等技能;培训结业的员工在进入社会后,能够胜任软件外包企业严格的项目管理模式。 四、实训核心竞争力 ●独家全部由在职专家团队提供的实训。 ●完善的实训体系。 ●日本实际案例。 ●日文式样书,中文授课。 ●学员第一时间与外包企业接轨。

附件1:JAVA实训任务书 时间:21天(6课时/天共126课时) 内容:新证券发行系统 学员要求:要求已系统学习过java语言(不低于32课时)或C语言课程(不低于32课时),有程序设计和数据结构实现基础,熟练掌握面向对象的设计概念,对数据库有一定了解,能够通过软件接口对数据库进行操作。对软件开发过程有初步了解。有良好的团队精神。 指导教师: 实训基本说明: 课程设计是对课堂教学的补充,是实践性教学环节,通过强化的项目制模块实践环节,提高对该课程所涉及的专项软件技术进行深入的理解和熟练应用。该环节不要求对软件开发过程和整体有深入了解,关键在于通过短时间实践提高对该项技术的熟练应用。 实训教学保障: 为保证教学和实践的顺利展开,实训基地应充分利用信息学习平台,从多方面提供教学配置管理: 1、为每位学生提供独立的教学电脑和网络平台,保证教学的信息畅通。 2、提供学习日志系统,加强学习过程管理,并最终记录到质量跟踪文档。 3、提供教学考评系统,加强教师的教学指导管理。 4、提供已完成开发的教学实践项目,和若干模块的详细划分。 5、提供信息考勤管理模块,加强学员考勤管理。 6、提供以教学质量跟踪文档为表现形式的质量保证体系,以质量跟踪文档提供对教学过程的真实记录。

嵌入式系统GPIO输入输出实验报告

实验四GPIO 输入实验 一、实验目的 1、能够使用GPIO的输入模式读取开关信号。 2、掌握GPIO相关寄存器的用法和设置。 3、掌握用C语言编写程序控制GPIO。 二、实验环境 PC机一台 ADS 1.2集成开发环境一套 EasyARM2131教学实验平台一套 三、实验内容 1.实验通过跳线JP8 连接KEY1与P0.16,程序检测按键KEY1 的状态,控制蜂鸣 器BEEP 的鸣叫。按下KEY1,蜂鸣器鸣叫,松开后停止蜂鸣。(调通实验后,改为KEY3键进行输入)。 2.当检测到KEY1有按键输入时点亮发光二极管LED4并控制蜂鸣器响,软件延时 后关掉发光管并停止蜂鸣,然后循环这一过程直到检测按键没有输入。(键输入改为键KEY4,发光管改为LED6)。 3.结合实验三,当按下按键Key1时,启动跑马灯程序并控制蜂鸣器响,软件延时 后关掉发光管并停止蜂鸣,然后循环这一过程直到检测按键再次按下。 四、实验原理 当P0 口用于GPIO输入时(如按键输入),内部无上拉电阻,需要加上拉电阻,电路图参见图 4.2。 进行GPIO 输入实验时,先要设置IODIR 使接口线成为输入方式,然后读取IOPIN 的值即可。

图4.2按键电路原理图 实验通过跳线JP8 连接KEY1_P0.16,程序检测按键KEY1 的状态,控制蜂鸣器BEEP 的鸣叫。按下KEY1,蜂鸣器鸣叫,松开后停止蜂鸣。 在这个实验中,需要将按键KEY1 输入口P0.16 设为输入口而蜂鸣器控制口P0.7 设置为输出口。蜂鸣器电路如图 4.3 所示,当跳线JP6 连接蜂鸣器时,P0.7 控制蜂鸣器,低电平时蜂鸣器鸣叫。LED灯电路如图4.4所示,低电平时灯亮。 图4.3 蜂鸣器控制电路

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