ARM实验1 —— 流水灯实验

实验内容:

编写GPIO模块程序,实现对FS_4412平台的上的led2,led3,led4 ,led5,的流水灯实现。

实验目的:

熟悉开发环境的使用。

掌握Exynos 4412处理器GPIO功能使用。

实验平台:

FS_4412  Exynos 4412开发板,eclipse, secureCRT

实验步骤:

1:打开eclipse,在project explorer 创建工程led_test,添加配置文件,common文件夹和start文件夹

2.查看led灯在开发板的位置

3查看CHG_COK在核心板的说明:

3。查看GPX2_7在开发板的的位置:

 4.依次查询led 3 4 5的内容,

5.在led_test工程新建main.c文件,并编译生成二进制bin文件

 1 #include "exynos_4412.h"
 2 
 3 typedef enum
 4 {
 5     false,
 6     true
 7 }bool;
 8 
 9 // 延时函数
10 void mydelay_ms(int ms)
11 {
12     int i, j;
13     while(ms--)
14     {
15         for (i = 0; i < 5; i++)
16             for (j = 0; j < 514; j++);
17     }
18 }
19 
20 // 点灯
21 void led_isOn(bool bFlag)
22 {
23     if(bFlag == false)
24         GPX2.DAT &= ~(0x1<<7);        // led is off
25     else
26         GPX2.DAT |= 0x1<<7;       // LED is on
27 
28     mydelay_ms(1000);
29     if(bFlag == false)
30         GPX1.DAT &= ~0x1;        // led is off
31     else
32         GPX1.DAT |= 0x1;       // LED is on
33     mydelay_ms(1000);
34     if(bFlag == false)
35             GPF3.DAT &= ~(0x1<<4);        // led is off
36         else
37             GPF3.DAT |= 0x1<<4;       // LED is on
38     mydelay_ms(1000);
39 
40     if(bFlag == false)
41                 GPF3.DAT &= ~(0x1<<5);        // led is off
42             else
43                 GPF3.DAT |= 0x1<<5;       // LED is on
44 
45 }
46 
47 int main()
48 {
49     // 配置GPIO
50     GPX1.CON = (GPX1.CON&  (~0xf)) | 0x1;
51     GPF3.CON = GPF3.CON | (0x1<<16);
52     GPF3.CON = GPF3.CON | (0x1<<20);
53     GPX2.CON = GPX2.CON & (~(0xf<<28)) | (0x1<<28);
54 
55     GPX2.PUD = GPX2.PUD & ~(0x3<<14) | (0x1<<14);
56     while(1)
57     {
58         led_isOn(true);
59         mydelay_ms(1000);
60         led_isOn(false);
61         mydelay_ms(1000);
62     }
63 
64     return 0;
65 }

 

6.程序编译连接成功后使用secureCRT进行下载到开发板,

命令:loadb 40008000 。将led_test.bin下载到开发板中。

命令:go 40008000 。让流水灯就运行了!哈哈哈啊哈哈哈哈!

实验结果:

posted @ 2018-09-17 14:21  蓝勃斐重新开始  阅读(1154)  评论(0编辑  收藏  举报