嵌入式课程设计实验说明
本文提到的资料均可在ftp上下载
ftp 211.69.206.158:
21用户名 m16c
密码 m16c
M16C/62P教学平台实验项目
基础性实验
1.2.
3.
4.
5.LED跑马灯实验 按键输入实验 LCD显示实验 定时器实验 串口通信实验
关于这些实验的说明《实验手册》有详细的说明,该手册可以在ftp上下载:211.69.206.158:21,用户名和密码都为m16c。通过这些实验学习M16C芯片,熟悉M16C/61P开发板的使用。
扩展性实验
1.
2.
3.
4.
在uCOS-II平台下的程序开发 嵌入式文件系统应用实验 嵌入式文件系统移植 嵌入式以太网实验
在uCOS-II平台下的程序开发
实验目的:
学习uCOS-II操作系统,并学会在uCOS-II下编程
实验内容:
学习在uCOS-II平台下的程序开发,在uCOS-II下创建任务,完成基础性实验中实现的功能。可以在这基础上结合开发板的硬件做更综合性的开发工作。 提供移植好uCOS-II的完整的工程文件,并创建了一个简单的任务点亮LED,作为参考的实验案例。在附录中提供了关于这个实验案例的简单说明。
嵌入式文件系统应用实验
实验目的:
学习文件系统的知识,并应用于嵌入式系统
实验内容:
学习文件系统知识,主要针对FAT(File Allocation Table)系列。了解SD卡的结构。采用实验套件提供的EFSL(Embedded Filesystem Library),以SD卡为存储介质,在嵌入式系统中实现文件的相关操作。
实验套件提供移植好的EFSL工程文件,在此基础上调用EFSL提供的API接口函数实现文件操作。关于这个工程文件在《实验手册》有相关说明,至于EFSL的API接口函数请参考《EFSL接口及编程指南》。
实验设备:
需要自己准备一张SD卡
嵌入式文件系统移植
实验目的:
学习文件系统的知识,主要针对FAT(File Allocation Table)系列;了解SD卡结构;学习SPI通信。
实验内容:
目前有许多用于嵌入式系统的文件系统,很多是开源的,比如FatFs,可以在网上下载源码。选择其中一款文件系统,移植到开发板上。主要工作是编写SD卡的驱动。
实验设备:
需要自己准备一张SD卡
嵌入式以太网实验
实验目的:
学习嵌入式以太网,学会使用LwIP(Light Weight IP,一个开源的TCP/IP堆栈)
实验内容:
实验套件提供了移植好的LwIP工程文件,调用LwIP的RAW API函数实现以太网通信。更近一步,实现http协议,在PC机的浏览器上显示开发板输出的信息。有关LwIP工程文件在《实验手册》有相关说明,对与LwIP的RAW API函数请参考《LwIP接口RAW API介绍》。
实验设备:
需要自己准备一条网线,如果与PC机相连,请使用交叉网线。
附录
M16C62P教学平台ucos实验
在UCOS-II平台下编程
实验目的
1.
2.
3.
4.初步了解M16C/62P实验板的基本结构 学习M16C/62P的I/O端口编程 熟悉UCOS-ii的工作原理 掌握UCOS-ii平台下的编程方法
实验内容
利用UCOS-II实现开发平台的程序控制,提供范例程序实现4个LED的闪烁控制。
实验设备
1.M16C/62P实验开发板
2.High-performance Embedded Workshop 集成开发环境
3.串口连接线,电源
实验原理
系统平台I/O的控制原理和方法在基本实验中的说明已经很详细,这里就不作说明。
UCOS-ii的工作原理是上课的基本内容,大家应该掌握,这里提供移植好的工程范例。可以根据自己的兴趣实现其他I/O的控制。
编程实例
APP.c源程序代码
#include
staticOS_STKAppTaskStartStk[APP_TASK_START_STK_SIZE]; staticvoidAppTaskStart(void *p_arg); void main(void)
{
MCU_Init();//开发板的一些初始化操作,这个可以根据需要改动
OSInit();//ucos初始化
OSTaskCreateExt(AppTaskStart,//创建开始任务(void *)0,
(OS_STK*)&AppTaskStartStk[APP_TASK_START_STK_SIZE - 1],APP_TASK_START_PRIO,
APP_TASK_START_PRIO,
(OS_STK *)&AppTaskStartStk[0],
APP_TASK_START_STK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
OSStart();//多任务开始调度}
staticvoidAppTaskStart (void *p_arg)
{
INT16Ui = 0;
INT16Udelay = 0;
(void)p_arg;
Tmr_TickInit();//节拍初始化
while (1) {
delay++;
i = delay % 2;
LedSignalOut(LEDALL,i);//这个函数就是你们基本实验中的控制函数,//放在BSP.C中,可以添加其他控制函数提供给UCOS来调度
OSTimeDlyHMSM(0, 0, 0, 100);//100ms执行一次
}
实验过程与实验结果
实验过程
参考《程序调试过程》技术文档
1.实验板准备工作:使用串口线将COM1口和PC机连接,确认右下角的4个拨码开关已全部拨至OFF,并接上电源线。检查无误后,拨动右上角的电源开关,此时能观察到电源指示灯亮,否则应断开电源开关并检查连线。
2.启动High-performance Embedded Workshop集成开发环境,按指定步骤创建新的工作区与工程。这里建议使用提供的范例工程,因为有关编译器的一些设置比较复杂,很容易出错。
3.源文件都放在SOURCE文件夹下面,跟UCOS相关的代码放在SOURCE文件夹下的Ucos-II下,这里的文件不要改动。跟M16C平台相关的代码放在BSP文件夹下面,跟自己的应用相关的程序放在APP文件夹下面。
文件夹里面的“sect30.inc”、“ncrt0.a30”和基本实验中的文件内容不一样,不要随意更换,否则UCOS跑不起来。
4.参考《程序调试过程》技术文档进行相关调试工作。特别注意:在调试的时候全速运行GO了以后遇到OS_EXIT_CRITICAL()的时候会停下来,这个时候再按
一下go就可以看到LED的闪烁了。 实验结果
开发板上的LED
1、LED
2、LED
3、LED4闪烁点亮。