欢迎来到天天文库
浏览记录
ID:40933161
大小:1.65 MB
页数:13页
时间:2019-08-11
《实验环境的搭建和GPIO实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验环境的搭建和GPIO实验1.实验目的1)熟悉Linux开发环境。2)掌握S5PV210内部相关寄存器的操作方法,最终实现对外部设备的控制。3)熟悉在Linux裸机环境下的C语言编程。4)熟悉S5PV210的GPIO编程。2实验内容学习并编程实现ARM的GPIO程序,控制LED灯闪烁。3实验设备1)硬件:S5PV210教学实验箱、PC机;2)软件:PC机操作系统Windows98(2000、XP)+VMwareworkstation+Ubuntu12开发环境。使用arm‐linux‐gcc4.4.1编译
2、代码。4基础知识4.1环境搭建1、虚拟机的安装及Ubuntu的安装与设置请按照光盘资料《OK210软件手册》说明操作。2、OK210开发板系统烧写请按照光盘资料《OK210软件手册》说明操作。4.2循环点亮led灯的原理1、查看原理图OK210开发板提供了4个LED,其原理图S5PV210_B.pdf下:在s5pv210core_v1(20130422).pdf中对应的ARM管脚由原理图可知,LEDD1,D2,D3,D4使用的S5PV210端口为MP04_4,5,6,7。2、程序讲解1>Init.s.gl
3、obal_start_start:blmain//halt:bhalt.global关键字用来让一个符号对链接器可见,可以供其他链接对象模块使用。.global_start让_start符号成为可见的标识符,这样链接器就知道跳转到程序中的什么地方并开始执行。BL指令引起处理器转移到"main.c"处开始执行。2>MakefileCFLAGS:=-Wall-O2-fno-builtin-ffreestanding-nostdlibled_wtd.bin:init.omain.oarm-linux-ld-Tt
4、ext0x0-oled.elf$^arm-linux-objcopy-Obinaryled.elfled.binarm-linux-objdump-Dled.elf>led_elf.dis%.o:%.Sarm-linux-gcc$(CFLAGS)-o$@$<-c%.o:%.carm-linux-gcc$(CFLAGS)-o$@$<-cclean:rm*.o*.elf*.bin*.disforlinx–f1.执行arm-linux-gcc$(CFLAGS)-o$@$<-c命令将当前目录下的init.s和ma
5、in.c文件编译成.O文件2.执行arm-linux-ld-Ttext0x0-oled.elf$^命令将.O文件链接称elf文件。3.执行arm-linux-objcopy-Obinaryled.elfled.bin命令将elf文件抽取为.bin文件。4.执行arm-linux-objdump-Dled.elf>led_elf.dis命令,将elf文件反汇编后保存在dis文件中。3>main.c#defineMP0_4CON(*(volatileunsignedlong*)0xE0200340)#defi
6、neMP0_4DAT(*(volatileunsignedlong*)0xE0200344)#defineGPD0CON(*(volatileunsignedlong*)0xE02000A0)#defineMP0_4PUD(*(volatileunsignedlong*)0xE0200348)voidclock_init(void);voidputc(charc);voiduart_init(void);voidputout(char*c);intprint(constchar*fmt,...);stat
7、icvoidDelay(intcount){volatileinti,j=0;volatilestaticintloop=800000000/10000;for(;count>0;count‐‐)for(i=0;i8、0x11110000;//设置高4为管脚为输出方式MP0_4PUD=(0x55<<16)&MP0_4PUD9、;//设置为下拉方式clock_init();uart_init();for(i=4;i<8;i++)//关闭led{MP0_4DAT10、=(1<
8、0x11110000;//设置高4为管脚为输出方式MP0_4PUD=(0x55<<16)&MP0_4PUD
9、;//设置为下拉方式clock_init();uart_init();for(i=4;i<8;i++)//关闭led{MP0_4DAT
10、=(1<
此文档下载收益归作者所有