




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Rali nk RT5350:添加自定义GPIO应用程序开发环境: 21 编写LED应用程序,并修改相关配置文件 31.1 新建 led 目录 31.2 新建 led.c 31.3 编写 led.c 31.4 新建 led 目录下 Makefile 61.5 修改 led 上层目录下的 Makefile 61.6将10 口的模式配置为 GPIO模式72. 添加内核支持,并编译得到应用程序led 92.1 修改配置文件 config.in 92.2 添加内核对 LED的支持,配置menuconfig 102.3 编译内核,得到应用程序 led 123. 烧写内核文件(root_ulmage)到开
2、发板123.1首先将USB串口链接到电脑 133.2 打开超级终端,并配置 133.3 配置电脑的网卡 143.4 打开 tftpd32 ,并配置 153.5 连接网线 153.6 将内核下载到开发板 164. 验证应用程序 led 184.1查看/bin目录下是否存在应用程序 led 184.2使用led,点亮和熄灭 LED灯184.3 验证 GPI0_1 的电平的变化 18附录:开发板(ZQ-WIFI-130)电路图 19Pillar Peng 202015.10.11 20开发环境:Window: WIN7 旗舰版Linux:Fedora6雷凌原厂开发包:Rali nk_ApSoC_SD
3、K_4000_20120222.tar开发板:主控芯片 MIPS =雷凌Ralink RT5350F具体如下图。本文目的: 编写新的 GPIO 应用程序,然后添加内核支持,并且加入到根文件系统,最后烧 写进开发板上使用。Ralink SDK中自带的GPIO应用程序的弊端: 本身SDK自带的GPIO应用程序根本不适用,它的读写功能都是同时改变所有的IO 口,使用GPIO写时,会死机,重新启动系统。本文写的应用程序是控制RT5350的GPIO_1的高低电平,由于本人使用 GPIO_1来控制LED,所以应用程序名改为 LED。1. 编写LED应用程序(根据原有的GPIO应用程序而得),并修改相关配置
4、文件1.1 新建 led 目录 ,在 /root/RT288x_SDK/source/user/rt2880_app 目录下#cd /root/RT288x_SDK/source/user/rt2880_app#mkdir led1.2 进入 led 目录,接着新建 led.c#cd ./led#vi led.c1.3 编写 led.c 内容,内容如下:#include #include #include #include #include #include #include #include #include ralink_gpio.h#define GPIO_DEV /dev/gpiovo
5、id led_on(void)int fd, req, arg;/open device gpiofd = open(GPIO_DEV, O_RDONLY);if (fd 0)perror(GPIO_DEV);return -1;/set gpio_1 direction to outputreq = RALINK_GPIO_SET_DIR_OUT; arg = 0x00000002;if (ioctl(fd, req, arg) 0)perror(ioctl); close(fd); return -1;/set gpio_1 ; turn on led req = RALINK_GPIO_
6、SET; arg = 0x00000002;if (ioctl(fd, req, arg) 0) perror(ioctl); close(fd);return -1; close(fd);return 0;void led_off(void)int fd, req, arg;/open device gpiofd = open(GPIO_DEV, O_RDONLY);if (fd 0)perror(GPIO_DEV); return -1;/set gpio_1 direction to outputreq = RALINK_GPIO_SET_DIR_OUT;arg = 0x00000002
7、;if (ioctl(fd, req, arg) 0)perror(ioctl);close(fd);return -1;/clear gpio_1 ; turn off ledreq = RALINK_GPIO_CLEAR;arg = 0x00000002;if (ioctl(fd, req, arg) 0) perror(ioctl); close(fd); return -1;close(fd);return 0; void usage(char *cmd) printf(Usage: clear gpio_1: %s 0 n, cmd); printf( set gpio_1: %s
8、1n, cmd); exit(0);int main(int argc, char *argv)/ 如果参数小于两个,则打印该应用程序的用法 if (argc 2)usage(argv0);switch (argv10) case O:/ 输入命令:#led 0;则 gpio_仁0,即是 led offled_off();break;case 1:/ 输入命令 :#led 1;则 gpio_1=1, 即是 led onled_on();break;default:usage(argv0);return 0;/*led.c 已完 */1.4 在 led 目录下,新建#vi MakefileMak
9、efileMakefile 文件的内容如下: (参考 gpio 目录下的 Makefile )EXEC = ledCFLAGS +=-I$(ROOTDIR)/$(LINUXDIR)/drivers/charall: $(EXEC)$(EXEC): $(EXEC).c$(CC) $(CFLAGS) $(LDFLAG-So) $ $.c $(LDLIBS)romfs: $(ROMFSINST) /bin/$(EXEC)clean:-rm -f $(EXEC) *.elf *.gdb *.o# LED Makefile 已完 #1.5 修改 led 上层目录 (/root/RT288x_SDK/so
10、urce/user/rt2880_app) 下的 Makefile#cd /root/RT288x_SDK/source/user/rt2880_app#vi Makfile在 Makefile 文件的第一行添加如下代码: ra_dir_$(CONFIG_RALINKAPP_LED) += led 修改完后,如下图所示:rs_dir_$ (CONFIG_RALI NKAPP_REG_RW) ra_dlr_$ (COIMFIG_RALINKAFF_ATED ) r_dir_$ (CONFIG_JLLINKAPP_CSR) ra_dir_$(CONFIG_RALINKAPP_FLASH) ra_d
11、ir_$(CONFIG_RALIWKAPP_HWNAT) ra_dir_$(CONFIG_RALINKAPP_MII_MGR) r_d ir_$(CONF IGRAL I WKAPP_NVRAM) 工白 _已 if_$f CONF1G_RAL:ENKAPP_GP 工O)+=reg+ =ated-csr_test+二Elash4-hw_nat+=mi i_mgx十=nvram十=1.6将IO 口的模式配置为GPIO模式1.6.1 修改文件 ralink_gpio.h1)打开文件:#vi /root/RT288x_SDK/source/linux -2.6.21.x/drivers/char/ra
12、link_gpio.h2)找到下面这行内容:#defi ne RALINK_GPIOMODE_DFT(RALINK_GPIOMODEUARTF)并将这行改为如下内容:#defi ne RALINK_GPIOMODE_DFT(RALINK_GPIOMODEUART|F)注:这行大概位于 367行,也可以使用 vi的查找命令(/DFT)。1.6.2 RT5350的10 口有几种模式:一种是 GPIO模式,另一种是正常模式(即是复用端口模 式)。RT5350的数据手册中的1.3 Pin Shari ng Scheme,中有说明,GPIO 口与复用功能引脚的 对应关系,具体如下图所示:1- 3Mn S
13、hari ng SchemeScwne p ins are shared with GPIO to provide rnasi mum fiejdbiity for sytEmi desners. The RT525J provides upto 28 6 PIO pirrs. Users can cofifigure 5Y5CFG nd 6PI0M0DE negtser in the 5祚t获m Contrgl W?k护話ify the pin tu nation. Unless it specified expiicrd ill the GPK) pin $ 电re in inputimp
14、cb arfber neseHLl/D Pid GroupNarmil ModeGPIO ModSrFtSxjrtTCSiSW_PH_LEDE:PW_LCD4_HGPIO 舱&EPH* LD? WGPIO 吗EPH LQ2 Ngpio m问 址口1 料GPIO 23EPHY LEM T40HO *221TAGITAGRISTGPIO O1nAG TCLKGPIO #ZDJTAG TM56HQ *19ftasjidigpio #teJTAGJDOGPIO #17LIARTLRXD2GPIO #16TKD2GPIO 仍UARTFRINGHO W14D5R MGPIO 11MD NGPIO 紅2DT
15、R NGPIO *11ftxnGMO *MCT5 NGPION9TW6Pio*aKTSgpio #7SPISPIMISOGPIO 6SPI.MOSIGPIO *55PI CLK6PKJM口厂2 rS-3*C 5CUKGPIO艇十kDC SD7!FTWBTHPlb戟厂本文所用的GPIO_1是I2C的复用引脚,而系统默认的正常模式(复用端口模式),所以需要将GPIO_1更改为GPIO模式。而GPIO的模式由寄存器 GPIOMODE控制,GPIOMODE寄存器 介绍,如下图所示:i?esCDpicnInitial nluc3123Hrrved-22:21ftWSPI_CS1_MODESPI_C&1
16、to art 3i i g涉现 timKMJt pin. 2PbOft.5PI_C512hbOI: W-atchdog rewt CLitputher 孑system docks)2GPIO nwW02fUH_ : 1KQflt ltW : OCXHet Tiin : 5 TsanPreliminary DatasheethdbHTtWf 2S, JDID2 hll: Reserved20; 16-ResrErved-15: HawEPHY_6T_GPIO_MODE00: Hormal mode, as EPHY LE妙401= FIO rmdeI Q- BT made11: Resterve
17、dl0诽1317ReErued-6HWJTAG_GPIO_MODO Normal mode1:OtxOSnwUARTL_GPIO_WiaDE0: Norrruil mode1! GPIO mewl电OxiftWUARTFSHAREMODEUARF lul ilntedace h shared with PCM, 125. GPIO. Th# detailed UARTF mode pin sJiarrng l& s-hewm in tlw prevtOLA jU4on.Qk7R.WSlPI GPIO MODEiO: Nor ml modeQ|1i. tir10HWI2C6PIO_MODE0:
18、Normal mode1: GRID imodiQkI2. 添加内核支持,并编译得到应用程序led2.1修改配置文件config.inConfig.in 文件的位置:/root/RT288x_SDK/source/config#cd /root/RT288x_SDK/source/co nfig#vi con fig.i n在config.in中找到下面这行:bool GPIOCONFIG_RALINKAPP_GPIO然后在其上一行或者下一行,添加以下代码:bool LEDCONFIG_RALINKAPP_LED修改完成后, 保存退出(Esc:wq,结果如图所示:选择 Kernel/Libra
19、ry/Defaults Selection-,进入下一个界面,如下图所示:j 17 bool48 bool PIO1CONF r G_RAL1MKAPP_LEDjTNFI G_J selects submenus Highlighted It es , excludes, lrociulari ze s features. Press E el 1 excluded module module capableKernel/Liifcra.i?y/De faults Selection oad an Alternate C口nfiguration File ave Configuration t
20、o a.n Alternate File选择Customize Vendor/User Settings (NEW),然后退出,再退出,保存配置。接着出现以下配置界面:ibrary Conflguration M D uLils N twork Applications M scellaneous Applicationsindows Rally Program an Alternate ConfiguratLon File ave Configuration to an Alternate File选择 Ralink Proprietary Application -,进入下一个界面,如下图
21、所示:使用空格,选择“ * LED (NEW)”,然后退出,再退出,保存配置。2.3编译内核,得到应用程序led,其位置就在led的目录下2.3.1回到source目录然后编译内核#cd /root/RT288x_SDK/source/#make dep#make几分钟后,便可编译完成。2.3.2编译完成后,查看是否生成应用程序led,查看得到内核文件。1) 查看是否有生成应用程序led#ls /root/RT288x_SDK/source/user/rt2880_app/led/led2) 查看是否将应用程序加入到根文件系统( ROMFS的/bin目录中#ls /root/RT288x_SD
22、K/source/romfs/bi n/led3) 查看内核文件:root_ulmage#ls /root/RT288x_SDK/source/images3. 烧写内核文件(root_uImage)到开发板使用到的工具如下:1) 超级终端2) Tftpd323) 串口(这里使用的 USB转串口)4) 网线以下是步骤:3.1首先将USB串口链接到电脑打开“设备管理器”,查看串口是否和电脑链接正常,正常则如下图所示:3.2打开超级终端,并配置3.2.1打开后输入新建“连接”的名称,然后确定,如图所示:3.2.2选择你使用的串口,这里是 COM4,然后确定。3.2.3配置串口属性,一定注意波特率为
23、:57600;和数据流控制为:无。如下图所示:3.2.4应用,确定,即可,超级终端配置完成。3.2.5连接串口,注意开发板有两个串口,要使用串口2才可以,如下图所示:3.3配置电脑的网卡,使用静态IP : (与开发板的Uboot时的IP地址23 , 处于同一网关即可),具体配置如下图所示:亘豆z.l 三T冃E更d迭礙违*Affi.iTtflfnct gW衣: JCPirT i 龙Eih-k RTL B1D2F RTLSDE F“伸甯下茴的if地址理|:二P jfclta):LD . 1Q . ID . 3子阿櫃问皿:2SS坨陌J號认何关血:E iAB张证
24、淞 2昌弐制1鑽左1(理鬥乃聚冯IT屯II CO |聲瓷擢器箪鼎如巒嚅郢曙W儿3K .耳晞袒瓯則厲險用卜曲的倔出矜剃堆町百1S)茁H絳器I:督用JH5脂備知;r .3.4打开tftpd32,并配置,如下图所示:=.回l滋逾 TFtpd32 by Ph. jounin图中1所示:选择内核所在的文件夹,点击“Browe ”可以选择。图中2所示:tftp服务器即是电脑。3.5连接网线注意:网线一端连接刚刚配置的网卡上,另一端连接开发板的“LAN” 口,如下图所示:3.6将内核下载到开发板3.6.1给开发板上电,马上对着超级终端窗口,不停的按数字键“2”,直到出现以下文字,如下图所示:3.6.21)
25、接着键入“ y”2) In put device IP (23) =:23,回车;这个是开发板的IP3) In put server IP () =:,再回车;这个是电脑的 IP4) In put Linux Kernel file name () =:root_ulmage,输入内核名 root_ulmage,然后回车具体如下图所示:The CPU freq = 3C0 HI 12 ttttttfl cstimate Honors size -4 MbytesPledbS clivcSe UteWystansys
26、lea12;3:.oadoad?uolEntr工崗oddoperdtitJii;code to SDRRN via TFTKcod than 肝it色 ta Flash THP. code via Flash defaultLbuu I comviid line in terfce.Boot LeaderBoot Loadercode then code thenwrite to write toriadi noshuiaSerial. Trip.0rasDi.rcad: froi:40828 ler:62: System I Oiid I icux Kernel th吏n write to
27、rinsh vio TTP一 Wrirnins* Fraso I inim in Fl込wh then burn nrw ono_ flrr you surc?l V/N) Please lriuul new oics /or Ctrl-C to discdrdInput device IP (10,10.1O.1?3) =:10.1,10/npirt server IP () -rlO.lO.lOnput Linux Kernel fjIcriamc () root_uTiiiigc3.7.3看到下图内容说明所有的连接都正确,正在将内核文件下载到开发板。RroTmeout
28、CheckArpTineoutCheckUsing Ethfl (10/106-H) deviceTFTP from server : our IP address is 23Fi lenaMf! rnot_LiTmaaeTIHEOUTJOUNT=10,Load address: 0x80100069I Oddi ng: *ArplineoutCheckUni HijP RFM V set servar/gtv ath addr (9d:lf:c6:c5da:tf JGot it IE耐斛關料斛刖胖關IHIH斛IIIWMIHIIH斛HH關斛删胖N鼎鼎牌H
29、刖斛刖斛斛删黠料酬删卿牌阳HI朋出IH #艸翻胖# H盼帥静胖牌黠朋删晡粘IHHI曲NIBHI 呻刖删脚翻糊糊HH#料軸朋和H肘脯胛胖11肚血卸備badHchecksum badHH斛斛HNH船黠#斛HNN斛删斛HH鼎IHH料翻朋N胖料赭KtWNlWtlll#胖#NH胖H#胛胖N胖朋料胖酬胖胖#料删删料胖甘 關輛糊脚胖關斛刖删斛NH删斛卿MllfIM斛牌胖#關删胖粕弼删關 badttttttttUWttfliltttt#I3.7.4看到下面的内容说明开发板的系统已经启动完成。1 - j portjFcrwflrd l/dev/iidlliptobles -t not N LMZ l/dev/r
30、ulL 281: LDtables -t riit 1 卩nERUUriNG 2 -j LMZ l/dcw/fiull 2S1ntp.shd(Jns. shsh: dcins. sb: not foundkill -9 cet /var/run/wscd.pid.r0cat: can t open */vfir/run/wscd.pid.rdOr: No such file ar directory kill: vcu reed to specify whoii to killiwpril rd0 mot WscCoIlit? 2-BSSTf) Hud? is eridbld r Ihs BS
31、STD biteS MUST lie? tlica Btul tiple of 2nfHode-e l/dev/null 2S1route delete 50 l/dev/null 2&Lkillall q klugJk illnll -q syslt)ydsslogd -Cfl 1 /cifiv/riul 1 2ft1klood l/dcv/null ?R1killall -q zebrakillslI -q ripdecho 0 Zproc/t:yE/iiet/ipu6/cuiif/all/forwardiiii|webs: Listeniny for HTTP reques ts at address . 验证应用程序led4.1查看/bin目录下是否存在应用程序led在超级终端里输入以下命令:#ls /bin/led结果如下图所示:* 1s /bini卩 np_xin 1 . shprof1pdashwps pas
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司自制销售管理制度
- 河南省郑州市中牟县2024~2025学年 高二下册3月月考数学试卷附解析
- 广东省汕尾市2024~2025学年 高二下册第一次(3月)月考数学试卷附解析
- 2024年宁波市宁海县机关事业单位招聘真题
- 身份验证漏洞基础知识点归纳
- 西宁市口腔医院招聘笔试真题2024
- 杭州市公安局滨江区分局招聘警务辅助人员笔试真题2024
- 深圳市福田区区属公办中小学招聘教师笔试真题2024
- 历史服饰风格角色设计师基础知识点归纳
- 2025年江苏省生物初赛试题
- 2025年中医基础理论考试试题及答案
- 外研版七年级英语上册跨学科项目计划
- 2025年瑜伽教练认证考试体式教学与课程设计模拟试题集(含答案详解)
- 2025年英语专业四级(TEM4)完形填空专项模拟试卷(词汇与逻辑推理)-深度解析版
- 2025年广西高一学业水平考试模拟生物试卷试题(含答案)
- 综合实践项目 设计并制作人体结构模型(教学设计) 七年级生物下册 (人教版2024)
- 山西中考:历史必考知识点
- 2025《学前教育法》宣传月培训含讲稿
- 思想道德与法治(湖南师范大学)智慧树知到期末考试答案章节答案2024年湖南师范大学
- 生物应试技巧 完整版课件
- 平行线新初一在线英语暑期分班测(剑桥think体系)测试题
评论
0/150
提交评论