嵌入式linux中的实验

发布时间:   来源:文档文库   
字号:

实验一LED
灯显示实验
一.实验目的
1.熟悉arm开发板基本组成电路,并通过配套教材熟悉arm芯片特性。了
ADS1.2软件使用,并会用该软件编译调试开发板。
2.了解HJTAG软件原理,利用教材中提供的LED测试程序,完成实验。二.实验器材
PC机一台,周立功开发板一块.实验原理
EasyARM2103开发板提供了4个绿色发光二极管用作显示,电路如图1.1示。显示电路采用了灌电流的方式来驱动发光二极管,由于微控制器LPC2103I/O口提供的灌电流大于其拉电流,采用此驱动方式可以保证二极管发光的亮度。
1.1Led电路原理

四.实验内容及步骤
1.下面以GPIO的测试程序为例,熟悉EasyJTAG-H软件的使用方法,程序功
能设计为控制单路LED闪烁,硬件电路如图1.1所示。2.打开示例工程。示例工程路径:配套光盘内容->光盘内容
v1.00->3.EasyARM2103安装手册->GPIOTest,将此文件夹复制到其它目录下打开,要求存放目录必须无中文路径,如图5.13所示。打开文件夹后,建议用户先删掉“GPIO_Test_Data”文件夹,然后双击打开“GPIOTest.mcp”文件,即打开示例工程。
3.点击“user”文件夹,打开main.c文件,见到示例代码
4.选择低速GPIO,控制LED灯闪烁,示例程序如程序清单所示。此示例操作
需要短接JP4P0.17,输出控制LED1
5.编译连接工程。项目目标栏处选择DebugInFlash模式,然后编译连接工
程。
如图所示为工程窗口中的DebugRelSettings工程设置,如地址设置、输出文件设置、编译选项等,SynchronizeModificatinte同步修改日期,检

查工程中每个文件的修改日期,(如使用其辑源文件)则在h栏标记“√”Linker生成的Image一般包括三个区域:代码段、数据段和BSS段。需要通Linker设置这三个段的基址。通常BSS段是紧接着数据段(RW)之
后,因此
只要设置代码段(RO)和数据段(RW)的基址就可以了。根据芯片资料中提供的器件映射地址来填写。
6.仿真调试。将计算机并口与EasyJTAG-H仿真器相连,然后再将
EasyJTAG-H仿真器的JTAG接口连接到EasyARM2103目标板上,打开
H-JTAG,检测到芯片内核信息后,选择AutoDownload选项,此时会自动启动H-Flasher软件,选择目标芯片的型号,将当前的配置信息保存起来,建议将配置信息保存到安装路径下的Hconfig文件夹内。
7.Make(快捷键为F7启动AXD进行调试Run启动AXD进行调试,并
直接利用ProjectInspector工程检查,查看和配置工程中源文件,发现有更新它编辑器编Touch编译连接8.设置完成后,关闭H-JTAGServerH-Flasher(注意:不能使用Exit
关闭)启动AXD打开Options->ConfigureTarget...弹出ChooseTarget窗口,点击“ADD”添加仿真器的驱动程序,在添加文件
窗口选择如D:\ProgramFiles\H-JTAG目录下的H-JTAG.dll,点击“打开”即可。
9.AXD环境点击运行,即可看到led亮。
AXD运行调试工具条如图3.14所示,调试观察窗口工具条如图3.15所示,文件操作工具条如图所示。

运行调试工具条
提高部分:改变led显示位置,重新编译链接,使led灯亮。源代码如下:#include"config.h"


#defineLED11<<17/*P0.17控制LED1*/
/***********************************************************************************************************Functionname:DelayNS**Descriptions:延时函数
**inputparameters:uiDly值越大,延时时间越长**outputparameters:**Returnedvalue:
*********************************************************************************************************/voidDelayNS(uint32uiDly{
uint32i;
for(;uiDly>0;uiDly--{
for(i=0;i<50000;i++;}}
/***********************************************************************************************************Functionname:main**Descriptions:跳线JP4短接,LED1闪烁**inputparameters:**outputparameters:**Returnedvalue:
*********************************************************************************************************/intmain(void{
PINSEL1=PINSEL1&(~(0x03<<2;/*P0.17设置为GPIO*/
IO0DIR=LED1;/*设置LED控制口为输出*/
IO0SET=LED1;/*LED1熄灭*/
while(1{
IO0SET=LED1;/*LED1熄灭*/
DelayNS(50;

/*延时*/
IO0CLR=LED1;/*LED1点亮*/
DelayNS(50;/*延时*/}
return0;}
/***********************************************************************************************************EndOfFile
**********************************************************************************************************/五、主程序流程图
六、编写程序实现四个LED灯循环闪烁的功能#denfineLED11<<17#defineLED21<<18#defineLED31<<19#defineLED41<<20Voidmain{
PINSEL1=PINSEL1(~(0xFF<<2;
/*P0.17设置为GPIO*/
IO0DIR=LED1|LED2|LED3|LED4;/*设置LED控制口为输出*/


IO0SET=LED1|LED2|LED3|LED4;/*LED1熄灭*/
while(1{
IO0SET=LED1;/*LED1熄灭*/
DelayNS(50;/*延时*/
IO0CLR=LED2;/*LED1点亮DelayNS(50;/*延时}
return0;}
*/
*/



实验二中断实验
一.实验目的
1.熟悉arm开发板中断原理。并产生中断。
2.了解快速中断和普通中断。编写嵌套中断实验。二.实验器材
PC机一台,周立功开发板一块三.实验原理
1EasyARM2103开发板提供了4个绿色发光二极管用作显示,电路如图1.1所示。显示电路采用了灌电流的方式来驱动发光二极管,由于微控制器LPC2103I/O提供的灌电流大于其拉电流,采用此驱动方式可以保证二极管发光的亮度。


1.1Led电路原理
2、外部中断


四.实验内容及步骤
1.GPIO的中断测试程序为例,熟悉EasyJTAG-H软件的使用方法,程序功
能设计为控制单路LED闪烁,硬件电路如图1.1所示。
2.打开示例工程。示例工程路径:配套光盘内容->光盘内容
v1.00->3.EasyARM2103安装手册->GPIOTest,将此文件夹复制到其它目录下打开,要求存放目录必须无中文路径,如图5.13所示。打开文件夹后,建议用户先删掉“GPIO_Test_Data”文件夹,然后双击打开“GPIOTest.mcp”文件,即打开示例工程。
3.点击“user”文件夹,打开main.c文件,见到示例代码
4.编译连接工程。项目目标栏处选择DebugInFlash模式,然后编译连接工
程。
5.仿真调试。将计算机并口与EasyJTAG-H仿真器相连,然后再将
EasyJTAG-H仿真器的JTAG接口连接到EasyARM2103目标板上,打开
H-JTAG,检测到芯片内核信息后,选择AutoDownload选项,此时会自动启动H-Flasher软件,选择目标芯片的型号,将当前的配置信息保存起来,建议将配置信息保存到安装路径下的Hconfig文件夹内。
6.设置完成后,关闭H-JTAGServerH-Flasher(注意:不能使用Exit
关闭)启动AXD打开Options->ConfigureTarget...弹出ChooseTarget窗口,点击“ADD”添加仿真器的驱动程序,在添加文件窗口选择D:\ProgramFiles\H-JTAG目录下的H-JTAG.dll点击“打开”即可。7.为实现嵌套中断,修改main.c函数,重复上述步骤。
8.AXD环境点击运行,即可看到主程序led亮。通过中断按键,使其他led
灯亮。
附源代码如下:
#include"config.h"
#defineLED1<<17
/*********************************************************************************************************

**Functionname:Eint0IRQ
**Descriptions:外部中断0服务程序**inputparameters:**ouputparameters:**Returnedvalue:
*********************************************************************************************************/void__irqEint0IRQ(void
{/*进入中断取反LED*/
if((IO0PIN&(1<<17==0{IO0SET=1<<17;/*熄灭发光二极管*/}
else{
IO0CLR=1<<17;/*点亮发光二极管*/}
while((IO0PIN&(1<<16==0;/*等待按键松开*/
EXTINT=0x01;/*清中断标志*/
VICVectAddr=0x00;/*通知VIC中断处理结束*/}
/***********************************************************************************************************Functionname:main
**Descriptions:P0.16低电平触发外部中断主函数**inputparameters:**ouputparameters:**Returnedvalue:
*********************************************************************************************************/intmain(void{
PINSEL1=PINSEL1&(~0x03;
PINSEL1=PINSEL1|0x01;/*设置P0.16为外部中断0管脚*/
PINSEL1=PINSEL1&(~(0x03<<2;/*设置P0.17GPIO功能*/

IO0DIR=LED;/*设置P0.17为输出*/
IO0SET=LED;/*设置输出为高电平*/
IRQEnable(;/*IRQ中断使能*/
EXTMODE=0x00;/*设置外部中断为低电平触发*/EXTPOLAR=0x00;
VICIntSelect=0<<14;/*选择EINT0FIQ中断*/
VICVectCntl0=0x20|14;/*将外部中断0分配给向量中断0*/
VICVectAddr0=(uint32Eint0IRQ;/*设置中断服务程序地址*/
VICIntEnable=1<<14;/*使能EINT0中断*/
EXTINT=0x01;/*清除EINT0中断标志*/while(1;return0;}


本文来源:https://www.2haoxitong.net/k/doc/7ab2d6601ed9ad51f01df28e.html

《嵌入式linux中的实验.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式