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 。让流水灯就运行了!哈哈哈啊哈哈哈哈!
实验结果: