嵌入式课程总结(精选8篇)
1.嵌入式课程总结 篇一
福建工程学院
《嵌入式系统》课程设计
报告书
题目:
基于S3C2440设备驱动及其界面设计
班级:
姓名:
学号:
指导老师:
陈靖,张平均,李光炀
目录
一、设计课题...............................................................................................................................4
二、设计目的...............................................................................................................................4
三、设计任务及要求...................................................................................................................4
四、设计内容...............................................................................................................................5
五、操作界面的生成...................................................................................................................7
六、操作界面调试.......................................................................................................................9
七、设计总结.............................................................................................................................10
八、设计参考书.........................................................................................................................12
九、附件(程序).....................................................................................................................13
一、设计课题
基于S3C2440的设备驱动及其界面设计
二、设计目的:
1.进一步巩固嵌入式系统的基本知识; 2.掌握嵌入式应用系统的基本结构; 3.掌握嵌入式系统开发环境建立和使用;
4.掌握嵌入式系统基本驱动、应用程序的设计调试和编译移植方法; 5.学会查阅有关专业资料及设计手册; 6.MiniGUI界面编程。
三、设计任务及要求:
1.掌握嵌入式系统开发环境建立和使用;
2.掌握嵌入式系统基本驱动、应用程序的设计调试和编译移植方法;
3、MiniGUI在PC上的安装、移植
4、Linux基本输入输出驱动程序设计编译与移植
5、基于MiniGUI的基本输入输出应用编程编译与移植
6、编写设计说明书(方案的确定、设计环节的考虑及必要说明等)及设备的使用说明;
7、绘制有关图纸.四、设计内容:
1、基础知识准备
1)讲解设计任务;2)熟悉ubuntu的使用;3)熟悉TQ2440试验系统的使用;4)掌握嵌入式系统开发环境建立和使用;
5)掌握嵌入式系统基本驱动、应用程序的设计调试和编译移植方法.2、界面设计环境构建:MiniGUI在PC上的安装、移植
2.1、MiniGUI在pc机上安装和运行
建立工作目录:mkdir /minigui-free
cd /minigui-free mkdir /src 复制源文件包到工作目录:cp /mnt/hgfs/D/src/* /minigui-free 解压文件到/minigui-free:
tar zxvf libminigui-1.6.10.tar.gz tar zxvf minigui-res-1.6.10.tar.gz tar zxvf mg-samples-1.6.10.tar.gz
2.2、MiniGUI库安装
(2)将libcross.sh考到minigui的lib库的解压文件夹中(3)将rescross.sh 考到minigui的res资源解压文件夹中(4)将samplecorss.sh 考到sample例子解压文件夹中(5)依次运行libcross.sh,rescross.sh,samplecorss.sh(6)到nfsroot的,目录下,将libreduce.sh考到这个目录下,运行libreduce.sh 2.3、安装qvfb(1)解压qvfb1.1.tar.gz(2)./configure(3)make(4)make install 2.4、配置MiniGUI.cfg vi /etc/MiniGUI.cfg 修改如下部分为 [system] # GAL engine and default options gal_engine=fbcon
defaultmode=800x480-16bpp # IAL engine ial_engine=fbcon mdev=/dev/mouse mtype=IMPS2 [fbcon] 6
defaultmode=800x480-16bpp [qvfb] defaultmode=800x480-16bpp display=0 1.5运行MiniGUI例子程序(1)打开qvfb:qvfb &(2)运行helloword:
五、操作界面的生成
1、操作界面面执行文件的生成
1).在/minigui-free/mg-samples-1.6.10/src/修改源文件treeview.c 2).再次运行samplecorss.sh,生成执行文件treeview
2、利用nfs进行挂载
1).将本地PC机的网络方式设置成为桥接
2).查看/etc/exports下可以挂载的目录
3).启动服务/etc/init.d/nfs-kernel-server restart 4).查看本机和ARM上的IP地址,设置在同一网段,然后ping,使其能够互通。5).在超级终端上,进行操作
Mount-o nolock,rsize=1024,wsize=1024 本机IP:/ /mnt
将虚拟机和ARM进行挂载,可以查看到虚拟机根目录下的文件。
3、在超级终端上将需要的文件从虚拟机上复制到ARM机上
1).重新烧写文件系统镜像文件
2).挂载成功后,将/mnt/minigui-free/nfsroot/lib/*复制到/usr/lib/ 3).将/mnt/minigui-free/nfsroot/usr/local/lib/*复制到/usr/local/lib/ 4).将/mnt/etc/MiniGUI.cfg复制到/etc/ 8
5).将/mnt/minigui-free/mg-samples-1.6.10/src/*复制到/usr/minigui/
4、在超级终端上运行执行文件
1).进入/usr/minigui/运行treeview文件 2).可以再操作界面上现实我们所设计的界面
六、操作界面调试
1、点击LED1LED2LED3LED4,分别控制四盏led灯的亮暗,调试界面如下:
2、输入频率值,点击START键控制四盏led灯闪烁,调试界面如下:
七、设计总结
1、设计过程中遇到的问题
错误1:
InitGUI: Can not initialize colors of window element!InitGUI failure when using /usr/local/etc/MiniGUI.cfg as cfg file.解决方法:正确配置MiniGUI.cfg文件 错误2:
Permission denied 解决方法:权限不够,使用root用户登录。错误3:
编译出错未找到jpeg,png等
解决方法:安装zlib,png,jpeg库。
错误4:
出现符号未找到等编译错误 解决方法:make clean 后在make 错误5:
在minigui创建和移植的过程中,出现lib库编译不成功的现象,这是由于minigui是基于qt3的,因此需要添加qt3所在路径至配置文件。错误:6 在开发板上添加鼠标设备后,提示视频采集失败,这是因为/etc下的配置文件MiniGUI.cfg中对外设控制范围的控制过大,银将其修改为与界面统一大小800*480.错误:7 在执行led灯控制程序之前应该首先停止开发板上原有的流水灯进程led-player。错误:8 运行执行程序treeview后界面上出现两个光标,此时应该在/etc/init.d下的rcS文件中停用qt3的光标。
2、心得体会
本学期为期两周的嵌入式课程设计在不知不觉中结束了,虽说这次课程设计时间不是很长,但是感觉自己收获颇丰,不仅学习到了一些新知识,回顾了以前的一些快要遗忘的知识点,而且使自己的学习目标更加明确,学习方法更加完善,也体会到软件开发的趣味,更加清楚地认识到了自己在软件开发及学习上的一些不足之处。
两周的课程设计,在计算机这个博大深奥的领域我感觉自己还有好多东西要学,还有好多的东西不懂!嵌入式软件开发应用广泛而且前景很好,目前正处于人才紧缺的关口,嵌入式技术在未来能够得到更加广泛的应用。学好嵌入式,C语言很重要,所以感觉自己有必要在学习、积累一下这方面的知识。很多东西的学习不是一帆风顺也是比较耗时的,嵌入式也不例外,要想学好还必须下大力气,还必须坚持。这次的课程设计让我明确了一点:嵌入式开发对于提升我们的系统知识有很大的帮助,尤其是操作系统的知识。嵌入式
系统开发对于我们的知识面要求非常的广,且要有一定的深度。这次的课程设计因为是一个有针对性的训练,所以记的会非常牢固。跟平时上课不太一样,平时上完理论课很少有时间上机进行时间或者隔几天才上机练习,等到上机时一些东西可能遗忘了,比较耗费时间。在课上,有老师在前面演示我们感觉看得懂或感觉没问题,可轮到我们独立完成的时候,因为实际操作的少,其中的问题就来了!我很感谢学校特别是学院老师有实训这样的安排,把我们这一学期学的东西系统的集中的进行训练,让我们深刻明确的体验了一下软件开发的流程!还要感谢给我们实训的楚老师,感觉楚老师能力很强,也很有耐心,即使老师讲了很多遍的问题,我们不会,老师还是会走进我们给我们耐心的指导,还给我们讲一些学习计算机的方法,一些软件开发需要注意的细节,让我们知道自己在哪方面不足,需要加强,也让我们了解到哪些需要认真的学习,那些是重点,不是没有方向的乱学一通,什么也学不好!经过这次的实训,我真真确确的感受到了计算机在我们生活中工作中的运用,这些软件、程序能让我们提高工作的效率,更直观更便捷的切入主题。当然,在学习的过程中并不是一帆风顺的,在这之中,因为要操作的东西很多,有时错一步,后面的结果就无法显示,而自己的计算机水平还有待提高,根本检查不出来是哪里出了错!这时候,老师都会耐心的过来帮助我!在平时我们就需要好好的查阅书籍或者上网搜集相关资料去解决问题。
短短两周的课程设计很快结束了,我发现我对计算机这个专业、对嵌入式技术、对Linux都有了新的认识。通过这次的实训,我了解到,要真真正正的掌握计算机程序还不是一件简单容易的事儿,但真正掌握后,它带给我们的将是无穷的便捷与科技,我喜欢高端便捷的生活。我希望我能做计算机这个万能机器人的主人而不是奴隶,我会努力加油的!感谢学校,感谢老师给我的帮助,让我的思想、技能又上了一个台阶!感谢!加油!
八、设计参考书
1、《嵌入式系统接口设计与Linux驱动程序开发》
2、《ARM9嵌入式LINUX系统构建与应用》
4、MiniGUI编程手册
5、Linux应用程序编程
九、附件(程序)
#include
#include
/*包括 MiniGUI 常用的宏以及数据类型的定义*/ #include
/*包含了
MiniGUI
绘图函数的接口定义*/ #include
/*包含了
libminigui 中所有内建控件的接口定义*/ #include
/*包含了许多UNIX系统服务的函数原型*/ #include
/*提供对I/O控制的函数*/
#define ID_LED1 101
/*定义各个控件与定时器的ID号*/ #define ID_LED2 102 #define ID_LED3 103 #define ID_LED4 104 #define ID_TEXT1 105 #define ID_TEXT2 106 #define ID_START 107 #define ID_STOP 108 #define ID_COMBOBOX 109 #define ID_TIMER 110
static int a,b,c,d=0;
/*定义LED灯的初始值*/ static int fd_led;
/*定义文件描述符*/
HWND hMainWnd;
/*定义主窗口句柄*/
static void draw_circular(HWND hdig,int x,int y,int r,int which)
/*自定义一个画圆函数,x、y、r、which分别表示圆心坐标、半径、颜色*/ {
HDC hdc;
/*定义设备上下文句柄*/ int color;color=((which==0)?PIXEL_green:PIXEL_red);
hdc=BeginPaint(hdig);
/*获得设备上下文句柄*/ SetBrushColor(hdc,color);
/*设置画刷颜色*/ FillCircle(hdc,x,y,r);
/*调用园填充函数*/ EndPaint(hdig,hdc);
/*释放设备上下文句柄*/ }
static DLGTEMPLATE DlgInitProgress=
/*定义对话框模板.用static类型数据,使该数据的定义只在所在文件中有效,以免因为名字空间污染造成潜在的编译或连接错误*/ {
WS_BORDER|WS_CAPTION,/*对话框风格,WS_BORDER创建有边框的窗口 ,WS_CAPTION创建含标题栏的主窗口*/
WS_EX_NONE,/*对话框扩展风格,WS_EX_NONE表示无扩展风格*/
0,0,800,480,/*对话框位置,左上角坐标(0,0),800、480分别为宽和高*/
“MY_LED_CONTROL”,/*对话框标题*/
0,/*对话框图标*/
0,/*对话框菜单*/
9,/*对话框中控件个数。这个必须要匹配*/
NULL,/*pointer to control array*/
0
/*附加值*/ };
static CTRLDATA CtrlInitData[]=
/*控件数组*/ {
{
“static”,/*控件类型*/
WS_VISIBLE|SS_SIMPLE,/*控件风格,WS_VISIBLE创建初始可见的窗口,SS_SIMPLE显示单行文本*/
100,270,150,40,/*控件位置*/
ID_TEXT1,/*控件ID*/
“Please input frequency”,/*控件内容*/
0,/*附加值*/
WS_EX_NONE
/*控件扩展风格*/
}, { “static”, WS_VISIBLE|SS_SIMPLE, 605,270,150,40, ID_TEXT2, “HZ”, 0, WS_EX_NONE
}, {
“button”, WS_VISIBLE|WS_TABSTOP, 135,160,80,60, ID_LED1, “LED1”, 0, WS_EX_NONE
}, {
“button”, WS_VISIBLE|WS_TABSTOP, 285,160,80,60, ID_LED2, “LED2”, 0, WS_EX_NONE
}, {
“button”, WS_VISIBLE|WS_TABSTOP, 435,160,80,60, ID_LED3, “LED3”, 0,/*WS_TABSTOP支持Tab键*/
WS_EX_NONE
}, {
“button”,WS_VISIBLE|WS_TABSTOP,585,160,80,60,ID_LED4,“LED4”,0,WS_EX_NONE
}, {
“button”,WS_VISIBLE|WS_TABSTOP,285,360,80,60,ID_START,“START”,0,WS_EX_NONE
}, {
“button”,WS_VISIBLE|WS_TABSTOP,435,360,80,60,ID_STOP,“STOP”,0,WS_EX_NONE
}, {
CTRL_COMBOBOX,WS_VISIBLE|WS_TABSTOP|CBS_AUTOSPIN|CBS_AUTOLOOP,/*CBS_AUTOSPIN创建旋钮数字框,CBS_AUTOLOOP框中的数字将自动循 环显示*/
435,270,80,40,ID_COMBOBOX,“0”,/*旋钮数字框初始值*/
0,WS_EX_NONE
} };
static int DialogBoxProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)/*对话框过程函数,用来接收和处理所有发送到该窗口的消息*/ {
int number;
/*用来存从旋钮数字框获得的数值*/
static int t=0;
int num;
/*存放定时时间*/
switch(message)
{
case MSG_INITDIALOG:
/*用户在定义自己的对话框回调函数时,需要处理
MSG_INITDIALOG消息,该消息是在MiniGUI根据对话框模板建立对话框以及 控件之后,发送到对话框回调函数的。*/
SendDlgItemMessage(hWnd, ID_COMBOBOX, CB_SETSPINRANGE, 0, 10000);
/*设置旋钮数字框的最大小值*/
return 1;
case MSG_PAINT:/*重绘消息*/
draw_circular(hWnd,175,90,30,1);
draw_circular(hWnd,325,90,30,1);
draw_circular(hWnd,475,90,30,1);
draw_circular(hWnd,625,90,30,1);
printf(“*************************init draw_circular******************************n”);
case MSG_TIMER:t++;
/*定时器消息,这里完成LED灯的闪烁*/
if(t%2!=0)
{
ioctl(fd_led, 0,0);
ioctl(fd_led, 0, 1);
ioctl(fd_led, 0, 2);
ioctl(fd_led, 0, 3);printf(“*************************time red******************************n”);
draw_circular(hWnd,175,90,30,1);
draw_circular(hWnd,325,90,30,1);
draw_circular(hWnd,475,90,30,1);
draw_circular(hWnd,625,90,30,1);
break;
}
else
{
ioctl(fd_led, 1,0);
ioctl(fd_led, 1, 1);
ioctl(fd_led, 1, 2);
ioctl(fd_led, 1, 3);printf(“*************************time green******************************n”);
draw_circular(hWnd,175,90,30,0);
draw_circular(hWnd,325,90,30,0);
draw_circular(hWnd,475,90,30,0);
draw_circular(hWnd,625,90,30,0);
break;
}
case MSG_COMMAND: /*击键消息*/
switch(wParam)
{
case ID_LED1:a++;
/*控制LED灯亮暗*/
if(a%2!=0)
{
ioctl(fd_led,0,0);
draw_circular(hWnd,175,90,30,1);
}
else
{ /
ioctl(fd_led,1,0);
draw_circular(hWnd,175,90,30,0);
}
printf(“******************led1********************************n”);
break;
case ID_LED2:b++;
if(b%2!=0)
{
ioctl(fd_led,0,1);
draw_circular(hWnd,325,90,30,1);
}
else
{
ioctl(fd_led,1,1);
draw_circular(hWnd,325,90,30,0);
}
printf(“*******************led2********************************n”);
break;
case ID_LED3:c++;
if(c%2!=0)
{
ioctl(fd_led,0,2);
draw_circular(hWnd,475,90,30,1);
}
else
{
ioctl(fd_led,1,2);
draw_circular(hWnd,475,90,30,0);
}
printf(“*******************led3********************************n”);
break;
case ID_LED4:d++;
if(d%2!=0)
{
ioctl(fd_led,0,3);
draw_circular(hWnd,625,90,30,1);
printf(“*******************led33********************************n”);
}
else
{
ioctl(fd_led,1,3);
draw_circular(hWnd,625,90,30,0);
}
printf(“*******************led4********************************n”);
break;
case ID_START:printf(“*******************start1*********************n”);
number=SendMessage(GetDlgItem(hWnd,ID_COMBOBOX), CB_GETSPINVALUE, 0, 0);/*获取旋钮数字框的数值*/
printf(“**********%d*******************n”,number);
printf(“*******************start2*********************n”);
if(number!=0)
{
printf(“*******************start3*********************n”);
num=(int)(1000*(1.0/number));
/*将频率转换为时间*/
printf(“*******************start4*********************n”);
}
else
{
printf(“*******************start5*********************n”);
num=1000;
}
printf(“*******************start6*********************n”);
printf(“*******************start7*********************n”);
printf(“*******************start8*********************n”);
SetTimer(hWnd,ID_TIMER,num);/*创建定时器,时间为num*10ms*/ printf(“*************************SetTimer OK******************************n”);
SendMessage(hWnd,BM_CLICK,0,0);
/*发送点击信息*/ printf(“*************************SendMessage OK******************************n”);
//for(i=0;i++;i<10000)
/*当初用for循环时无法进入循环,也许是因为消息本身有循环机制,用for循环太多也许冲突,所以后来用了定时器*/
//{
//
printf(“********%d**********n,i”);
//
ioctl(fd_led, 1,0);//
ioctl(fd_led, 1, 1);//
ioctl(fd_led, 1, 2);//
ioctl(fd_led, 1, 3);
//
draw_circular(hWnd,175,90,30,0);
//
draw_circular(hWnd,325,90,30,0);
//
draw_circular(hWnd,475,90,30,0);
//
draw_circular(hWnd,625,90,30,0);
printf(“*******************start9*********************n”);
// usleep(number);
//usleep(num);
//
ioctl(fd_led, 0,0);//
ioctl(fd_led, 0, 1);//
ioctl(fd_led,0, 2);//
ioctl(fd_led, 0, 3);
// draw_circular(hWnd,175,90,30,1);
// draw_circular(hWnd,325,90,30,1);
// draw_circular(hWnd,475,90,30,1);
// draw_circular(hWnd,625,90,30,1);
// printf(“*******************start10*********************n”);
//usleep(number);
//usleep(num);
// }
printf(“*******************start********************************n”);
break;
case ID_STOP:
KillTimer(hWnd,ID_TIMER);/*关闭定时器。下面的表示灯灭*/
ioctl(fd_led, 0,0);
ioctl(fd_led, 0, 1);
ioctl(fd_led, 0, 2);
ioctl(fd_led, 0, 3);
draw_circular(hWnd,175,90,30,1);
draw_circular(hWnd,325,90,30,1);
draw_circular(hWnd,475,90,30,1);
draw_circular(hWnd,625,90,30,1);
printf(“**************stop******************n”);
break;
}
}
return(DefaultDialogProc(hWnd,message,wParam,lParam));
/*对话框的缺省消息处理由 DefaultDialogProc 函数完成*/ }
static void InitDialogBox(HWND hWnd){ DlgInitProgress.controls=CtrlInitData;
/*将对话框模板结构和控件结构数组关联起来*/ DialogBoxIndirectParam(&DlgInitProgress,hWnd,DialogBoxProc,0L);/*创建对话框*/
printf(“*************create dialog**********************n”);}
/*****************************************************************
主窗口的过程函数
static int LedWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam){
HDC hdc;
switch(message)
{
case MSG_PAINT:
hdc = BeginPaint(hWnd);
TextOut(hdc, 60, 60, “My leds control!”);
EndPaint(hWnd, hdc);
return 0;
case MSG_CLOSE:
DestroyMainWindow(hWnd);
PostQuitMessage(hWnd);
return 0;
}
return DefaultMainWinProc(hWnd, message, wParam, lParam);
}
*********************************************************************/ int MiniGUIMain(int argc, const char* argv[])
{
// MSG Msg;
// MAINWINCREATE CreateInfo;/*描述主窗口的属性*/
#ifdef _MGRM_PROCESSES
JoinLayer(NAME_DEF_LAYER , “led” , 0 , 0);
/*选择PROCESSES模式*/
#endif
printf(“****************into main*********************n”);
fd_led=open(“/dev/GPIO-Control”,0);
/*打开驱动设备*/
if(fd_led < 0)
{
perror(“open device led”);
exit(1);
}
ioctl(fd_led, 0, 0);
/*初始灯灭*/
ioctl(fd_led, 0, 1);
ioctl(fd_led, 0, 2);
ioctl(fd_led, 0, 3);
InitDialogBox(HWND_DESKTOP);
close(fd_led);/*********************************************************** CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION;/窗口风格/
CreateInfo.dwExStyle=WS_EX_NONE;
/窗口扩展风格/
CreateInfo.spCaption=“MY_LED_CONTROL_WIN”;
/窗口标题/
CreateInfo.hMenu=0;
/菜单/
CreateInfo.hCursor= GetSystemCursor(0);
/光标/
CreateInfo.hIcon=0;
/图标/
CreateInfo.MainWindowProc=LedWinProc;
/设置主窗口的窗口函数,所用发往该窗口的消息由该函数处理/
CreateInfo.lx=0;
/窗口位置/
CreateInfo.ty = 0;
CreateInfo.rx = 240;
CreateInfo.by = 180;
CreateInfo.iBkColor=COLOR_lightwhite;
/设置背景颜色/
CreateInfo.dwAddData=0;
/附加数值/
CreateInfo.hHosting=HWND_DESKTOP;
/设置窗口的托管窗口为桌面窗口/
hMainWnd = CreateMainWindow(&CreateInfo);
/创建主窗口,返回创建窗口的句柄/
if(hMainWnd == HWND_INVALID)
return-1;
ShowWindow(hMainWnd,SW_SHOWNORMAL);
/显示窗口的显示方式/
while(GetMessage(&Msg, hMainWnd))/获取主窗口的句柄,指向MSG结构指针/
{
TranslateMessage(&Msg);
/将击键消息转换为MSG_CHAR消息,然后直接发送到窗口的过程函数/
DispatchMessage(&Msg);
/获取消息的目标窗口的窗口过程,然后直接调用 该窗口过程函数对消息进行处理/
}
MainWindowThreadCleanup(hMainWnd);/清除主窗口所使用消息队列的系统资源/ *****************************************************************************/
return 0;
}
#ifndef _MGRM_PROCESSES #include
2.嵌入式课程总结 篇二
一、嵌入式教学与考核的不足
通过近年的教学发现, 传统的嵌入式教学方法存在一些不足之处, 不能满足目前社会对嵌入式技术人才的需要, 主要有以下几个原因:1.理论教学比重过大:嵌入式技术是一门对动手能力要求非常高的学科, 它要求学生不仅仅掌握理论知识, 还要掌握实用的电路设计知识、 编程知识和相关的元器件使用的知识, 而现在的嵌入式教育无论是从课程安排还是教学内容, 理论学习比重过大, 实际操作训练不足。 2.实践教学无法发挥应有作用:在实践课程中, 由于时间受到限制, 学生只能进行程序下载等简单操作, 而对于程序设计、硬件设计等重要的技术几乎没有训练;3.通过对学生的调查发现, 在毕业时真正掌握嵌入式系统开发的学生几乎都是在课下凭兴趣学习的, 投入了大量的时间和精力进行实践。 由此可见, 嵌入式技术人才的培养必须在现有课程的基础上, 给学生创造一个能够动手实践的平台, 这样才能真正使学生掌握这门技术。
嵌入式系统课程的考核也存在问题, 考核结果不能反映学生的真正水平。 目前考核存在的问题有:1.和理论教学相对应, 考核往往以理论为主, 期末考试以一张考卷来评定结果, 根本不能考察出嵌入式技术中的硬件设计、软件设计和系统调试等技术。 2.实验实践的评定不能体现出学生嵌入式技术的水平, 嵌入式课程的实验多以验证性为主, 综合性和设计性实验中的综合和设计环节在实验课程中不能真正体现出来, 与嵌入式应用性强的目标不匹配, 达不到考核的目的。
嵌入式技术人才的培养必须在现有课程的基础上, 给学生创造一个能够动手实践的平台, 这样才能真正使学生掌握这门技术。
二、嵌入式教学及考核的建议
(一) 转换教学方法, 加大实践教学比重
嵌入式课程是微电子技术、计算机技术及实际生活当中通信、测试、控制等各种技术相结合的产物, 目的性较强, 教学的最终目的是知识的应用。 在课程教学过程中, 应摒弃以理论教学为主的教学模式, 加大实践教学的比重, 甚至可以以实践为主, 通过实际项目达到应用教学的目的。
(二) 改革实践课程教学, 加强实践课程的专业特色
实践性强这一特征是嵌入式决定了嵌入式实践教学的重要性。 嵌入式的应用面向具体领域, 且已经渗透到各行各业, 对不同专业的学生, 实践教学项目应该有不同的侧重。 但目前的实践实验课基本采用由仪器开发公司开发的试验箱, 试验箱一般通用于不同的专业, 且有部分代码不开源, 试验箱不完善等问题, 实验基本上都是演示性的, 没有专业特色。
(三) 激发兴趣, 培养创新能力
创新能力的培养以兴趣为基础, 以实际问题的解决来提升。 目前的嵌入式实验一般都有详细的实验指导书, 学生按实验指导书一步一步完成实验, 缺乏自主创新的意识, 也不能考核学生是否真正地理解了所学知识, 这与课程学习的目的背道而驰。 对以应用开发为目的的嵌入式教学, 如何激发学生的学习兴趣, 提高解决问题的能力从而适应社会需求, 嵌入式的实践课程也需要以和专业相关又是生活中可见的实验实践项目为基础, 调动学生的学习兴趣。
(四) 利用嵌入式技术改革考核方法, 敦促学生真正掌握知识
传统的一张卷很难真正地考查学生对嵌入式知识掌握的情况, 与改进教学方法相对应, 嵌入式的考核也应该打破传统的考试方法。学生平时的实验实践是学生对知识掌握的体现, 在对学生总体做出评价时应提高比重, 期末考试可从综合实验测评及考卷测评两方面进行, 考卷可以是基本知识的考核, 而综合实验可分为基本考核及发挥两部分, 能力强的同学可通过发挥部分施展自己的才能。这样培养学生能力和考核贯穿于教学过程的始末, 使各个层次的学生都能通过考核得以体现, 敦促学生真正掌握知识。在考核的过程中还应该注意, 实验实践项目的设计应能避免学生的抄袭现象。 目前学生获取信息的渠道非常丰富, 教师在设计实验项目尤其是综合考核项目的时候, 应该予以考虑。
三、结语
嵌入式系统面向不同领域的具体应用, 目前已经渗透至各行各业, 且更新换代较快。嵌入式的实践教学在学生培养中起着至关重要的作用, 为适应社会需求, 使学生真正掌握嵌入式的设计思路及开发能力, 应该变传统的教学模式, 顺应嵌入式实践性强的特点, 以实践为主, 加大实践课的比重, 开发实验实践项目。 通过教学模式的改变, 以干促学, 达到教学目的。
参考文献
[1]施昕昕.应用型本科嵌入式系统课程教学探讨[J].中国现代教育装备, 2014 (21) .
[2]蔡振.基于互联网方向的嵌入式系统工程专业人才培养模式研究[J].科教文汇, 2014 (12) .
[3]吴建宁.面向实践教学的“嵌入式系统”课程体系构建与探索[J].实验室科学, 2014 (12) .
[4]姚莉.嵌入式课程教学研究[J].湖北理工学院学报, 2014 (12) .
3.嵌入式课程总结 篇三
摘要:“嵌入式系统”是较新兴的课程,在理论与实践教学上正处于不断的成熟中。在理论教学中,通过引入比较式教学,使学生得以更好地理解和吸收新知识;在教学内容上可以灵活地根据教学目标进行裁剪,当学时数有限时,教学深度与广度上宜适度收敛;实践内容要反映递进式教学特点,同时避免实验内容的高级单片机化;在与专业结合方面,应努力将专业特点融入嵌入式系统课程的教学中去。
关键词:嵌入式系统;比较式教学;教学内容裁剪;递进式实践环节;专业融合
“嵌入式系统”课程是“微机原理”课程的后续课程,在教学、实验、教材等方面,后者比前者更为成熟和规范,这是因为“微机原理”课程已有几十年的发展,而“嵌入式系统”课程则是较新兴的课程。由于社会和专业的双重需要,许多学校的理工专业陆续开设了这门课程。浙江大学的光电专业本科,本着贯彻浙江大学“KAQ”(知识、能力、素质)并重、“宽专交”并行的人才培养理念,也开始引入“嵌入式系统”这门课程,使光电专业本科的学生在微机类课程的发展和光电知识的交叉上更进一步。为了更好地贯彻“教学服务于学生”的宗旨,我们对“嵌入式系统”课程进行了初步的探索和研究,以期起到抛砖引玉的作用。
一、比较式教学方法
“嵌入式系统”与“微机原理”课程一脉相承,却有一定的区别。就处理器而言,一般前者选ARM处理器,后者选MCS-51单片机,二者在体系结构上有较大差别,如支持的数据类型、寄存器组织、处理器模式、寻址方式及指令集等;在软件上,“嵌入式系统”课程一般要讨论操作系统以及复杂的启动程序问题,而“微机原理”课程则不涉及操作系统或启动程序问题;在硬件上,嵌入式处理器芯片的功能强大,接口、外设众多,导致出现数百个寄存器,是单片机所不能相比的。
尽管如此,二者仍有许多共性的和相互联系的地方,因此在教学上可以采用比较式教学法。
比较式教学法的前提是学生已经修读过微机原理类课程,这在许多已开设或即将开设嵌入式系统类课程的专业中基本能保证。已修过微机原理类课程的学生,对微机如51单片机的体系结构、软硬件模型有清晰的认识和轮廓感,在学习类似的“嵌入式系统”课程时,下意识地会用已学的微机课程知识作比较性理解。比如:嵌入式处理器的寻址方式和51单片机相比是交叉的:51系统有中断,嵌入式系统则有类似的概念但称为异常:51指令集是变长的,但嵌入式体系如ARM指令集是等长的。这些具有比较性的问题不仅学生会思考。教师在教学时更应主动提及并作出比较性解释,这对学生的理解、记忆和深入学习是非常有益的。
我们在教学中发现,适当的比较性讲解,有利于学生快速适应和接受“嵌入式系统”这门新课程。
二、教学内容的裁剪
如上所提,“嵌入式系统”课程没有“微机原理”课程成熟和规范,这使各个学校、各个专业在教学内容的取舍上并不统一,而且相差很大。有些学校或专业注重概念讲解,偏向于基础性的入门教学;有些则把重点放在体系结构这一块,不讲具体嵌入式芯片;有些则把嵌入式操作系统作为主讲内容:有些则以某流行嵌入式处理器为中心,进行应用性讲解。众多的内容取向表现为相应的教材也是五花八门,和“微机原理”教材相比,寻找一本合适的符合教学目标的嵌入式系统教材并不容易。另外,不同的内容取向也会导致不同的教学深度。
在我们具有试验性的选修课教学中,学生反映学习难度太大。这一方面是课程设置的学时偏少,理论课时为24学时,另一方面是由于学习内容太多且部分内容讲解太深。在该选修课中,内容涉及ARM体系结构、程序设计、ARM9芯片、操作系统四大块,当面面俱到时,内容确会显得过于广泛和深入。在实际的理论教学中,为了既能达到教学目标又能获得良好的教学效果,在教学内容的广度和深度上作适度收敛是必要的。在教学内容上,各个专业可以根据自己的教学目标及给定的课时数,对教学内容本身的深度、广度进行适当裁剪,以达到学生能顺利接受新知识为准。
实际上,上述反映的在嵌入式系统教学内容、教材及深度等方面的问题具有一定的普遍性。在嵌入式系统类课程达到微机原理类课程的成熟度之前,各高校、各专业从不断的教学实践中得出经验并进行共享讨论是非常有价值的。
三、递进式的实践环节
实践环节是课程教学不可或缺的部分,尤其对于“嵌入式系统”这样抽象难懂的课程。实践环节的主要过程是实验,而实验内容的选取与分布,对课程的教学效果有很大影响。
微机原理类课程的硬件实验内容,大都是通过用汇编语言编程来认识所学单片机各功能单元的工作特性,各个实验的关系与难度基本是平行的。在嵌入式系统的实验中,如果仅停留在类似“微机原理”课程的实验内容是不够的,因为这样不能反映嵌入式芯片的特色,如支持复杂嵌入式操作系统等,并且很容易将嵌入式芯片作高级单片机化。
在我们购置的实验系统中,可以开设许多实验,基础实验有:AD接口实验、DA接口实验、键盘与LED接口实验、直流电机与步进电机控制实验、RS485通讯实验、CAN总线通讯实验等。但除基础实验外的大多数实验是基于嵌入式Linux操作系统开发环境之上的,如驱动模块实验、BootLoader的编译与烧录、Linux内核的移植与编译等。学生对各部分实验的难度感受是非常明显的,如基础性实验,虽然实验开发环境已从原来的Keil uVision过渡到了ADS集成开发环境,甚至开发语言也从汇编语言过渡到了C语言,但学生能很好地适应,这与他们在“微机原理”课程中取得的训练有关。但当进入嵌入式Linux开发环境的实验时,学生在实验中表现出明显的困难,这是因为Linux操作系统对大多数学生是陌生的,而且实验中所涉及的知识面非常广泛,甚至使有些同学感到举步维艰。
鉴于此,嵌入式系统类课程的实验内容应是递进式的,也就是先安排若干基础实验,然后安排适量中级实验内容如驱动程序开发,最后是少量提高实验如非常重要的启动程序实验、建立于操作系统开发环境之上的简单程序开发等。对于比较容易的实验,强调深入理解:对于比较深的实验,强调理解过程即可。这一方面使学生对难度的把握和适应有个循序渐进的过程,另一方面保证了学生对嵌入式系统特色知识的完整认识。随着教学实践的不断发展,实验内容、分布甚至实验开发环境等也应做出适度变化,以适应教学目标、社会需求等的变化。
除了在实验室做实验,还可在实践环节引入其他手段来加强学生在该课程的训练,如建立以PROTEUS软件为核心构建的虚拟实验室便是手段之一。PROTEUS最大特点是可以同时仿真模拟电路、数字电路和MCU,可以满足对一般的嵌入式系统硬件实验的仿真。
四、课程与专业的融合
就“嵌入式系统”课程本身而言,其知识点是不以学生所处的专业而变化的,但在具体的教学当中,可以将知识点和学生的专业进行融合。
以光电专业本科的“嵌入式系统”课程而言,其教学目标和其他工科专业应是大致相同的,但在具体教学实践中,可有意识地引入与光电专业相关的教学案例、实验构建,以激发和建立学生的学习兴趣和良好的专业归属感。比如,教师可以将从事过的基于嵌入式系统的光学仪器、光电检测系统的设计科研过程作为例子,与教学内容相结合进行讲解,必定是生动且富有真实感;又比如,在可能的情况下对某些实验进行光电相关的重新设计和构建,使学生对嵌入式系统在光电系统的应用有感性和理性的认识。
除了理论教学,我们还鼓励学生积极参与第二课堂,在各种与专业相关的实践如光电设计大赛、电子竞赛、机械竞赛、SRTP、省新苗计划、国家创新项目等活动中,努力将嵌入式知识融入和应用到这些系统中去,以在嵌入式系统的教学实践中起到很好的示范和榜样作用。
五、課程教学与实践改革初显效果
比较式教学使学生较自然地从51微机原理过渡到嵌入式系统的学习,并从比较学习中加深了对相关概念的理解。
教学内容在保证教学目标的前提下,进行更适合学生学习的裁剪,保留了并增强了ARM体系结构等基本知识的教学,对嵌入式操作系统的内容则有所缩减,对具体嵌入式芯片的外围设各则有选择性地讲解,避免大而全。经过这样的裁剪,学生的接受度得到了提高。
4.嵌入式软件工程师课程 篇四
在实训项目经理的带领下,通过完成多个企业级项目(基于ARM的串行数据无线传输系统、基于ARM的无线数据采集系统、基于ARM的GPRS应用系统)的分析、设计和开发,掌握开发企业级软件项目过程所需的设计规范、开发流程、质量控制及项目管理。阶课程主题与段
实训内容
第Unix开发环一境、开发规范阶培训 段 Unix系统原
理、Unix开发环境、Unix常用命令 Oracle数据库 Oracle 10数据库原理、SQL语句、数据库表及索引 PL/SQL语法,存储过程,存储函数,触发器等 C++核心 数据类型,控制语句,自定义数据类型,模块化程序设计,指针 类与对象(封装性)类的扩展,继承,虚函数,多态 数据结构和算法、标准库 链表、栈、队列、二叉树、算法 IO、异常、模版(STL)OOAD 面向对象分析
实训目标
熟练Unix下的C/C++开发环境,掌握常用的命令
熟练掌握Oracle 10G下的SQL开发,精通PL/SQL等
熟练掌握C基础语法,函数的编写和调用 掌握面向对象编程的三个特性,并熟练应用OO思想
掌握各种数据结构的实现,并了解常用的算法
掌握多种设计模式
实训项目
Unix下的定时任务
基于Oracle,完成计费系统的数据整合,包括表的创建,数据的录入以及整合等
完成银行项目的类结构设计,深入理解面向对象编程
双赂链表数据结构实现
完成银行项目的UML设计,并能使用
和设计的方法 了解软件研发的整个过程,能够熟练使用UML设计模式进行优化
UML图 设计模式 项目实训 银行项目
第Shell编程 二Shell编程语阶法
段 Unix环境编
程和开发工具 用户信息,文件操作,目录操作,时间处理
make,makefile,gdb
进程、多线程 创建进程 子进程 信号 消息队列车 共享内存 信号量 线程的创建、线程的状态 多线程编程 线程间的通信 线程同步 线程池编程 网络编程和数据库编程 网络基础 TCP/IP协议 基于TCP和UDP的网络编程 Pro★C数据编程 项目实训 计费系统采集和整合模块 第ARM系统体
进行分析和设计
完成银行前台业务,包括基本的存取款和转账等
掌握Shell编程技术
掌握和环境编程相关的函数,并能熟练使用编程工具
掌握进程和多线程编程
掌握网络编程,并能编写支持多客户端的服务器软件
熟练掌握Oracle MySQL等数据库的连接和数据访问
掌握计费系统后台业务流程,综合使用所学知识点,完成计费数据采集和整合银行项目提升和整合编写Shell脚本完成FTP功能
计费系统数据采集
计费系统C/S分布式架构的设计,掌握线程池的应用
计费系统集中式数据模块,该模块完成数据集中化并录入到ORACLE中
Billing系统提升和整合三系结构 阶ARM处理器段 体系结构
ARM编程环境
指令系统以及寻址方式 调试 ARM系统编程
过程调用的标准
汇编程序以用C程序之间相互
调用的技术 异常中断技术 ARM体系中C语言程序设计的基本知识 FLASH操作 嵌入式Linux构建 嵌入式Linux开发环境构建 BootLoader引导程序 Linux内核代码移植 交叉编译、内核调试 嵌入式Linux内核开发 内核源代码架构 内存管理 进程管理、中断管理 内核同步 信号、调度、进程间通讯等 文件系统
对嵌入式系统了解,掌握ARM的编程模型
掌握汇编程序与C程序之间的互相调用,精通ARM体系中C程序的基本知识 掌握FLASH操作
掌握BootLoader引导程序 熟悉交叉编译和内核调试
掌握进程编程、进程间的通讯 精通内存管理 熟悉文件系统
驱动程序开发环境
驱动程序语法基础
BootLoader引导程序
驱动程序理论准备
嵌入式Linux驱动程序开发 Linux设备驱动程序概述 字符设备驱动程序开发 串口、SPL、LLC A/D转换、定时器 Linux驱动程序开发高级 A/D驱动程序编写 矩阵键盘驱动程序编写 块设备驱动程序开发 网卡驱动程序开发 USB设备驱动程序开发 项目实训 基于ARM开发板的Linux设备驱动程序研发 第企业实训 四基于ARM的阶串行数据无线段 传输系统,主
要有以下三个方面的运用:点对点控制;点对多点控制;中继传输
掌握字符设备驱动程序开发 熟悉串口、SPL
驱动程序总体分析和设计
熟练掌握矩阵键盘驱动程序和网络设备驱动程序开发
网络设备驱动程序提升
综合运用所学知识,特别是ARM,编写驱动程序
驱动程序研发
参与完成实际项目,积累软件开发经验,经历完整的软件开发过程:需求、软件分析设计、编码、调试,交付。
串行数据无线传输系统
长沙牛耳教育地址:长沙市五一广场文运街省电教馆二楼(口腔医院左侧)| 牛耳教育求学热线:
0731-82221222转816 | 牛耳教育网站地图
培养方案
基于安博集团大量的数据调研,该课程专注于培养基于嵌入式Linux平台,以嵌入式系统的软件开发为主,培养学生在嵌入式领域进行软件开发、软/硬件测试、系统维护等方面的综合技能,旨在为社会提供嵌入式软件开发、产品测试、技术支持等方面具备优秀的职业素养的实用型、技能型人才。精通ARM嵌入式系统的驱动程序开发、操作系统移植、熟悉基于ARM的串行数据无线传输系统、基于ARM的无线数据采集系统等面向不同行业的专用嵌入式应用系统的开发。通过该实训课程,实训学员能够积累1-2年的软件开发经验。
课程简介
嵌入式软件工程师培训课程,由安博教育集团联合多家知名厂商,并由安博教育实施专家团队和精英教师团队发起,共同开发完成。
通过该课程的学习,学员熟练掌握Linux平台下的嵌入式软件开发技术,并通过项目实战积累工作经验,进而获得高薪、有广阔发展空间的工作机会
就业方向
能够胜任软件公司中的嵌入式工程师、C/C++软件工程师、数据库工程师等相关职位。
安博牛耳嵌入式软件工程师培训课程,由安博牛耳教育集团联合多家知名嵌入式厂商,共同开发完成。通过嵌入式软件工程师课程的学习,学员熟练掌握Linux平台下的嵌入式软件开发技术,并通过嵌入式项目实战积累工作经验,进而获得高薪、有广阔发展空间的嵌入式软件工程师工作机会
5.嵌入式系统课程设计教学大纲 篇五
课程名称:嵌入式系统A课程(Embedded Systems)课程编号:1310778236 设计时数:1周 学
分:1 开课单位:信息电子技术学院通信工程教研室 适用专业:通信工程 适用对象:本科
一、课程的性质、类型、目的和任务
作为电子信息工程、通信工程专业本科生的必修实践环节,嵌入式系统课程设计要求学生有扎实的理论基础并具备一定动手能力。进入课程设计前要认真复习微处理器类课程中的相关知识和汇编语言、C语言的编程方法。课程设计采用课堂讲述、自学、分组实践相结合的方式,通过分析典型的例子,使学生熟悉并掌握嵌入式系统的开发流程和基本的编程方法。课程设计要求2—3人组成课设小组,在指定范围内选定题目,每组选一题,题目应侧重一个嵌入式系统的具体应用方面。题目选定后,在教师的指导下,学生理解设计原理,分析重要电路单元,计算必要的参数并在此基础上编写程序,最后,在课程设计结束时独立写出理论分析完善、文理通顺、字迹工整的课程设计报告并上交软件程序。教师可根据作品的难易程度、参数指标、编程水平等进行评分。
二、本课程与其它课程的联系与分工
学习该课程之前,学生应学习过《C语言程序设计》、《数字电子技术》,《单片机原理与应用》基础知识。嵌入式系统是它们的总结和提高。
三、课程内容及教学基本要求
[1]表示“了解”;[2]表示“理解”或“熟悉”;[3]表示“掌握”;
学生可从下列题目中任选一个作为嵌入式课程设计题目,也可以根据个人兴趣及实验室现有条件,自己确定题目经教师审核后作为课程设计题目。
(一)单片机控制数码管显示系统的设计
AVR单片机的工作原理[1],嵌入式系统实际开发过程[2],单片机控制数码管的方法[3],师编写程序[3],实现单片机控制数码管显示系统的设计[3]。
(二)矩阵式按键控制LED显示系统
AVR单片机的工作原理[1],嵌入式系统实际开发过程[2],矩阵式按键输入控制信号[3]、通过单片机控制LED显示的过程[3]。单片机定时/计数器的工作原理及使用[3],汇编程序的下载及固化的过程[3],(三)汉字显示系统设计
了解AVR单片机的工作原理[1],液晶驱动芯片的工作原理[1],嵌入式系统实际开发过程[2],单片机控制液晶显示模块的方法[3],编写程序,单片机控制汉字显示系统的设计[3]。
(四)交通灯控制
AVR单片机的工作原理,嵌入式系统实际开发过程[2],ARM7核的LPC2106的管脚功能和特点[1],I/O控制寄存器的设置方法[3];ARM7应用系统编程开发方法[3],能用C语言编写应用程
序[3]; ADS1.2软件的使用以及PROTEUS仿真调试的方法[3];
(五)交通灯设计
ARM芯片[1]; ARM芯片各个引脚的功能[2],工作方式[2],计数/定时[2],I/O口[2],中断[2];利用ARM芯片模拟实现交通灯控制[3]。,工作方式,计数/定时,I/O口,中断等相关原理,通过软硬件设计实现利用ARM芯片完成交通灯的模拟控制[3]
(六)温度采集系统
ARM芯片各个引脚功能[1],工作方式[1],计数/定时[1],I/O口[1],中断[1]。通过软硬件设计实现利用ARM芯片对周围环境温度信号的采集及显示[3] 其他课题见附录:
四、考核方式及要求
1.考核方式:考查;
2.考核方法:平时考勤+设计报告+ 设计答辩; 3.成绩评定:
平时成绩:应根据学习纪律、出勤、等方面综合评定,占10%;
设计报告:根据学生设计报告各部分的完整性和优劣情况评定,占70%; 设计答辩:应根据答辩结果评定,占20%.按优、良、中、及格、不及格五级分制记分。设计报告内容:
1.封面;2.摘要;3.目录;4.总体方案设计分析 ;5.软件框图及程序设计(汇编语言源程序必须加注释说明);6.硬件原理图设计(最好使用电子设计CAD软件绘制);7.设计总结和心得体会。
五、实验教材(指导书)及参考书(资料)
6.嵌入式课程总结 篇六
【课程编号】:11278131
【适用专业】:电子、电信
【学 分 数】:1
【总 学 时】:30
一、课程设计的目的1、通过“嵌入式系统”课程设计,学习、体会、熟悉嵌入式系统相关的项目研究开发的完整过程:课题的提出与论证、调研、文献阅读、方案比较与选择、嵌入式系统程序编写与调试,报告撰写、课题答辩。
2、掌握综合运用所学知识分析、解决实际问题的一般方法。
3、培养学生综合分析问题、解决问题和独立工作的能力。
4、通过课程设计及答辩全过程的训练,加强老师与学生之间学生与学生之间知识的相互交流,互相渗透,培养勤奋求实的良好学风。
二、课程设计要求
1、要求同学们以满腔的热情、科学的态度,严谨的作风、高度的责任感从事课程设计工作;不得敷衍了事、马马虎虎、得过且过;提倡周密思考、大胆创新,反对生搬硬套、墨守陈规;提倡共同研究,反对相互抄袭。
2、要求遵守作息时间,遵守学校的各项规章制度,确保设计顺利、高质量地完成。
三、课程设计安排
学生每人选择一个题目,每个题目为1个学分。
1.题目1:基于嵌入式系统下的室内温度/湿度调节系统设计
2.题目2:嵌入式智能家居系统:图像采集与存储
3.题目3:嵌入式系统下的MP3制作
4.题目4:嵌入式系统GPS定位系统
5.题目5:嵌入式GPRS短信收发
6.题目6:嵌入式IC卡读写系统设计
7.题目7:蓝牙无线通信系统设计
8.题目8:红外通信系统设计
9.题目9:基于CAN总线的现场总线网络设计
10.Web远程监控系统1:-web嵌入式服务器设计
11.Web远程监控系统2:-远程控制接口
四、选题原则:学生根据自己的实际情况在给定题目中选一个题目(1学分)进行设计,或者自行选择感兴趣的课题。若题目相同,内容不可雷同。
五、成绩评定:
指导教师依课程设计说明书撰写情况及整个课程设计中学生的表现,综合给出成绩。
六、相关参考资料
教材:
Rick Grehan等.32位嵌入系统编程,中国电力出版社,2001.参考书:
7.嵌入式系统精品课程网站建设 篇七
一、功能分析
嵌入式精品课程网站通过网络实现了教师与学生的课外交流。其建设是否合理, 能否引导学生更好更高效的学习以及促进师生更好的交流, 真正达到提高课程教学的效果和促进课程的建设的目的, 直接关系到该精品课程网站存在的价值。通过借鉴国家级精品课程网站资源和课程组老师的讨论, 该精品课程网站应具备如下几个功能。
1.具备互动交流的功能。有利于师生互动以及网站建设的改善与提高。2.网站建设应以充分调动学生和老师的积极性与参与性为目的, 易于师生交流, 且要保留一定的教学资料并经常更新数据。3.能充分利用网络教学手段和现代教育技术, 有效调动学生的学习积极性, 促进学生积极思考, 锻炼学生的学习能力与动手能力。4.网站应有实名认证的功能, 经过实名注册的用户可以享受下载网站资源的的特权。5.网站应具备新闻动态以及课程公告功能。这样可以让学生及时了解到该课程的最新情况以及其它有价值的学术更新和教育资讯。
二、结构设计
从总体来看主要包括七个版块。如图1所示:
管理员能够进入后台管理模块, 对网站里的数据进行更新、删除与维护。用户注册登录后可以下载网站内的资源。新闻动态主要是向游客展示最新的学术动态以及教育资讯。公告栏用来展示该课程最新的课程动态, 便于游客能够及时了解到该课程的相关信息。教师风采栏用来展示奋战在课程建设一线的榜样教师, 让游客能够深入了解到该课程的实力, 增强该课程的吸引力。其中, 导航栏内的内容是精品课程网站的核心部分, 包含九个版块。
管理员权限主要在后台管理模块, 常规设置主要包括设置可以上传文件的格式, 文件的大小, 设置过滤一些不文明用语, 以及发布最新的嵌入式系统相关课程的通知公告和新闻动态。用户管理主要是用户的删除与恢复。数据库管理主要是数据的添加、更新、删除、与维护。
三、数据库设计
建立了一个名为lib的数据库, 并根据不同功能建立了相关个数据表。如:管理员表, 用户表, 新闻表, 公告表等数据表。
1. 管理员表
管理员表主要记录管理员的信息, 包括用户名、密码、姓名、身份、单位编号、单位。
2. 用户表
用户表主要记录用户的注册情况。包括用户名、密码、注册信箱等信息。
3. 新闻表
新闻表主要包含新闻的id、标题、内容、发布单位、发布时间。
4. 公告表
公告表主要包含课程公告的相关内容。包括id、标题、内容、发布时间、发布单位。
四、主要技术
网站建设采用目前比较流行的Microsoft SQL Server 2005, 该数据库系统在安全性、准确性、运行速度方面有绝对的优势, 并且处理数据量大, 效率高;ASP.NET它是被编译后再执行的, 所以效率要比ASP高很多;它有很好的开发环境, 如Visual Studio 2005更容易调试程式;支持类, 支持面向对象, 可以使用NET Framework更好的进行开发;它使设计和开发分开来, 这样更有利于程序的维护等优点。基于ASP.NET的这些优势, 本系统选择ASP.NET开发, 使用Visua Studio 2005做为开发工具。
而下面主要以数据库的链接和学术动态的显示、增加、删除、修改为例, 简要作一介绍:
1. 数据库的链接:数据库使用的是SQL Server编辑数据库, 语句为:
SqlConnection con2=new SqlConnection (ConfigurationManager.AppSettings["DBConnectionString"];
2. 显示学术动态:显示学术动态是网站最基本的功能。可以根据版块内容显
示该板块所有帖子, 也可以根据用户名显示给用户发的所有帖子。如进入网站的默认版块为学术动态动态显示该版块的显示最新发布12条信息的标题, 发布者, 发布日期, 并按照时间的降序排列。实现上述功能的设计如下:
SqlCommand sqlcom2=new SqlCommand ("select top 12*from学术动态表order by发布时间desc", con2) ;
3. 上传学术动态:
上传学术动态是在后台管理里面进行的, 在后台管理中, 设计了一张用于上传学术动态动态的表格, 供管理员选择学术动态的相关信息进行填写, 例如上传人、上传时间、学术动态内容等, 然后直接调用上传语句进行上传。
4. 修改学术动态:
学术动态内容更新通过SQL Server数据库中的学术动态表进行修改、删除等, 系统自动调用数据库自带的的更新控件对学术动态内容进行更新。
五、小结
该嵌入式系统精品课程网站基本上满足了面向网络教学的需要, 为老师教学和学生的自主学习提供了极大的方便, 对于嵌入式系统课程的建设具有非常重要的意义。该嵌入式系统精品课程网站以教学的需求和嵌入式系统课程的特点为切入点, 开发出系统结构的功能模块和数据库结构, 并简要介绍了相关模块的功能和建站的主要技术。网站的运行离不开后期的管理和维护, 需要在运行的过程中不断的加以修改和完善, 以满足嵌入式系统精品课程的发展, 更好的为师生服务。
参考文献
[1]汤放奇, 李晓松等论精品课程教学网站的功能与建设[J], 中国电力教育, 2008
[2]韦娟:《C语言程序设计》精品课程网站论坛的建设[J], 电脑知识与技术, 2008/S2
[3]王学龙、卫红春:一种精品课程网站简易优化设计方案[J], 中国科技信息, 2008年/24
8.嵌入式课程总结 篇八
关键词:嵌入式系统工作任务学习情境一体化教学
嵌入式linux系统由于具有开源、网络功能强大、内核稳定高效等特性,在产品开发周期、产品的功能可扩展性、开发时的人力投入等方面都具有显著的优势,因此广泛应用于中低端智能电子设备中。随着物联网的发展,嵌入式智能技术将具有具大的市场前景。
在高职类院校,嵌入式linux课程特别强调实践性,著重培养学生的实际操作能力和解决问题的能力是至关重要的。本文针对高职嵌入式linux课程,理论性强、难学难懂,学生学习效果不佳的问题,提出了具体的教学设计方案。
1.嵌入式linux课程分析
本课程的先修课是电子技术、C语言程度设计,它的后续课程是智能终端开发、毕业设计等。本课程对学习智能型设备原理,进行智能型系统的运行、维护、管理与技术改造,掌握自动控制技术,起着关键作用。
本课程是一门技能训练课,适合采用项目教学法。课程设计为要求学生通过本课程的学习,完成本课程要求的全部实验实训内容。
2.嵌入式linux课程设计
2.1 设计思路
打破传统的按照知识体系教授课程的方式,以学生将要从事的嵌入式软件设计工程师岗位所需的职业能力为目标,与行业企业合作,进行基于工作过程的课程开发与设计,既保证满足职业岗位所需技能、相关知识、素质的需要,又保持原有面向应用的嵌入式技术知识体系相对完整性。
2.2 内容选取
在课程教学内容的选取时,以项目为导向,以够用为原则,选取教学内容;从简单到复杂,按照学生认知规律安排教学内容。将课程中所需要的先修课程的知识,融入教学中,起到了承前启后的作用。
2.3 实施方法
2.3.1 课程教学模式
采用“基于工作过程的项目导向、任务驱动”教学模式,把教学和工作过程结合在一起,建设“教、学、做”三位一体的教学情景。这种教学模式是把教学内容以完整的项目为载体,按照工作流程划分为学习情境,每个学习情境的教学由项目任务导入,引导学生学习解决问题的方法,并通过学习关键技术,然后再讲解各知识点,再利用所学知识解决问题。
本课程通过综合运用任务驱动,工学交替,学做融合的教学过程,在课程教学过程中,将企业的真实项目、技术人员、嵌入式开发模式,组织管理方法、企业文化和开发环境引入教学,实现课堂内外工学交替,同步实施。课堂之外,依据课程所学知识技能点,完成校企合作中心真实项目,达到学用结合。
2.3.2 教学方法
以从企业精选的项目为载体,再现嵌入式软件开发经典案例,课程的教学过程中,把遇到的各种经典的案例集中进行剖析,引导学生通过实际练习,养成良好的IT职业素养,在实际工作中能够及时发现问题和解决问题。
分组教学,增强学生团队协作、沟通交流能力。合理安排学生在学习中扮演不同角色,从事不同工作,完成一个项目中各类工作任务,通过多个项目的轮流实践,分别体会工作过程中的不同岗位职责,为今后走上工作岗位,与其他同事良好合作,迅速融入公司的团队中,快速进入工作角色,奠定了良好的基础。
在教学过程中,根据项目实施的具体需要,因人而异,分层教学,为不同类型的同学制订针对性较强的学习目标,从而挖掘学生多元化的发展潜质。
在课程的实施过程中,通过互动研讨、专题讲座的方式,选择在课程与就业,技术与发展等具有典型代表意义的主题进行教育,扩大了学生看待问题的视野,开阔了思路,积极引导学生全面提升职业发展能力。
2.3.3 教学手段
为了倡导“开放式自主学习”的新观念,更好的培养学生自主学习的能力,本课程建立了一个学生自主学习平台,本课程的教学资源全部可在网上浏览和下载,任何学生在任何时候、任何地方都能获取知识,训练技能,保证学生按需学习和自主学习。
2.3.4 课程考核
以过程考核为重点,突出多元化标准评价。考核的项目包括:过程考核、最终考核、纪律、创新、团队、文档等项目实施的各个方面,他们分别占有不同的比重,突出了企业多元化的评价标准。
课程的考核评价围绕岗位能力,通过企业参与对学生完成的项目进行评价考核。除此之外,根据学生所选择的岗位进行个体评价,和企业联合实施岗位答辩。兼顾实施和培训相关要求,创建真实的实施情境。
3.嵌入式linux课程实施效果
通过精心选择教学项目、严格规范教学过程、引导学生积极参与,切实培养了学生认真做事、主动学习、注重细节的综合素质;实现了学生由厌学到好学、由校园人向职业人的转变。
4.结语
嵌入式系统教学是复杂的,应用到软件设计与分析、操作系统、计算机组成原理、计算机体系结构等课程的内容,要求学生对这些知识理解非常深入,同时更要求学生有探究问题的兴趣、解决问题的能力与方法。通过课程实践,初步探索了高职嵌入式系统课程实施的有效方案。课程实施中,教师要进行非常充分的准备,不仅能优化学生的知识结构,而对学生求解问题的能力、甚至是元认知策略、协同学习能力都有不同程度的提高。与传统的按部就班式的教学相比,学生的收获是很大的。
参考文献:
[1]王永生.高水平特色大学卓越工程人才培养模式的研究与实践[J].中国高等教育,2011(6):15-18.
[2]王现君.基于一体化课程考核方案的研究[J].才智,2011(9):279-280.
[3]罗怡桂.嵌入式linux实践教程[M].北京:清华大学出版社,2011:89-156.
[4]陈刚,朱晓波.论科学课程问题解决的教学[J].教育科学研究,2011(5):57-60.
[5]冯利美.从实践中学嵌入式linux应用程序开发[M]电子工业出版社,2013.5.
[6]李岩,王小玉,孙永春.嵌入式系统教学研究[J].电气电子教学学报,2006,28(3):45-47.
【嵌入式课程总结】推荐阅读:
哈工大ARM嵌入式系统考试知识点总结10-15
嵌入式软件求职简历08-06
嵌入式系统就业前景06-16
嵌入式学习心得体会09-28
嵌入式c语言开发修炼10-26
嵌入式系统工程就业前景06-27
嵌入式Linux系统开发教程实验报告09-11
嵌入式产品开发工程师简历11-02
嵌入式系统设计中UML的应用论文07-31
嵌入式软硬件开发毕业生简历09-16