实验二 ARM开发工具MDK开发环境的熟悉.doc
文本预览下载声明
实验二 ARM开发工具MDK开发环境的熟悉
一、实验目的:
掌握MDK建立工程、设置工程的方法;
掌握MDK编译工程、链接工程的方法;
掌握MDK仿真调试的方法;
实验内容
参考本次实验的实验步骤,完成本次实验,以及实验步骤中的几个思考题
2、参考教材117页有关MDK工具的配置回答以下几个问题
MDK提供的两种调试模式
如何在工程中打开存储单元观察窗口
如何在工程中设置断点
三、实验原理:
Keil公司(该公司已被ARM公司收购!!)开发的ARM开发工具MDK(Microcontroller Development Kit),是用来开发基于ARM核的系列微控制器的嵌入式应用程序。它适合不同层次的开发者使用,包括专业的应用程序开发工程师和嵌入式软件开发的入门者。MDK包含了工业标准的Keil C编译器、宏汇编器、调试器、实时内核等组件,支持所有基于ARM的设备,能帮助工程师按照计划完成项目。
注意:下面所描述的s3c2410 GPIO口的工作原理大家能看懂多少就懂多少,本次实验课的重点不是GPIO工作原理,重点在MDK开发环境的熟悉!!
嵌入式系统在控制领域的应用非常广泛,嵌入式芯片是通过外部管脚来和所控制的设备进行通信的。嵌入式芯片S3C2410和外部设备最简单的通信方式就是通过GPIO(通用IO管脚)来通信的。S3C2410通过读写与GPIO相关联的一组寄存器以实现读写GPIO管脚电平信号(大家可以回想以下在单片机中是怎么通过P0端口寄存器来控制P0.0------P0.7八个管脚的?)。当然,S3C2410的GPIO的操作比51单片机要些许复杂一点。
本实验的电路图如下:
图中的GPF4表示这个管脚是与S3C2410的通用端口F组的第4根管脚,其余类推。
实验相关寄存器说明(以后一定要学会看下面的几个表格):
GPFCON――端口配置寄存器。
GPFCON为通用端口F组的管脚工作状态配置寄存器。
表示GPFCON的第0、1位决定GPF组的第0跟管脚,例如为00时,该管脚用于输入,01时表示该管脚用于输出,10时表示外部中断0输入,11则为保留。
GPFDAT――端口数据寄存器
GPFDAT寄存中的每一位的值代表管脚上的信号,如GPF0管脚为低电平,则GPFDAT[0]为0。
GPFUP――端口上拉电阻使能寄存器
管脚内部上拉电阻使能!!
要求编程实现4只发光二极管一闪一灭!(编程语言不限,汇编、c、c++均可,建议用c)
三、实验步骤:
启动MDK:
建立工程:
新建文件夹并命名为led:
双击led进入led目录:
单击保存,我们弹出如下对话框,并选中Samsung-S3C2410A:
单击ok,弹出如下对话框:
单击“否”按钮,到此一个空的工程建立完毕,如果此时没有建立工程试图窗口,则可通过如下操作调出工程视图窗口:
设置工程:
单击linker选项卡,并照下图设置链接起始地址:
思考:为什么如此的设置链接起始地址?
单击OK按钮,工程设置完毕。
建立文件并将文件添加到工程:
这个时候不要急着输入代码,先保存文件:
保存,这个时候还不要输入代码,将文件添加到工程:
选中led.c,再点击add,最后close按钮;
我们可以看到led.c已经添加到工程;
5、输入代码:
//*********************************************************
//广州大学华软软件学院电子系
//文件名:led.c
//功能:实现试验箱上的四只放光二级管的闪烁
//作者:Jiabing Luo
//*********************************************************
//volatile的用法可参照:/user1/4805/archives/2008/47893.html
#define rGPFCON (*(volatile unsigned *)0//定义了GPF的控制寄存器
#define rGPFDAT (*(volatile unsigned *)0//定义了GPF的数据寄存器
#define rGPFUP (*(volatile unsigned *)0//定义了GPF的上拉电阻寄存器
void delay(int time)
{
for(;time0;time--)
;
}
void Main()//注意不要写成了main!!
{
rGPFCON=0x5500;
//0x5500的二进制为:
//0 1 0 1 0 0 0 0 0 0 0 0,自己可以参照GPF控制寄存器的的描述来分析其位设置的含义为:
//GPF7:输出,GPF6:输出,GPF5:输出
显示全部