3601|1

9

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

威视锐ZYNQ开发板-ZingSK嵌入式入门设计--Linux_Hello_LED [复制链接]

一、概述本例程在ZingSK入门设计--Hello_LED基础之上,通过编写Linux下的LED驱动程序,使用户可以在应用层通过Linux系统的标准接口来访问设备,而不用关心寄存器等具体的硬件问题,本篇将介绍ZingSK-Linux下LED驱动的编写及Device Tree的配置。 硬件平台:ZingSK开发套件开发环境:Windows7-32位、VMware 9.0 + Ubuntu 12.04、arm- xilinx- linux-gnueabi交叉编译环境 嵌入式Linux: zynq_base_trd_14.3(基于ZingSK修改) LED例程运行需要一系列二进制文件如下表所示:
文件名描述
BOOT.BIN由EDK bootgen工具创建,包含 FSBL (First Stage Boot Loader), FPGA bit-stream, U-Boot(基于zynq_base_trd_14.3构建)
uImageLinux kernel(基于zynq_base_trd_14.3内核编译)
devicetree.dtbDevice Tree Blob
uramdisk.image.gz根文件系统
led_driver.koLED驱动
led-testLED测试程序
表1-1二、软件设计1、Device Tree修改部分:添加led节点: led: led@65e00000 {compatible = "zing,led-1.00.a";reg = < 0x65e00000 0x10000 >;xlnx,dphase-timeout = <0x8>;xlnx,family = "zynq";xlnx,num-mem = <0x1>;xlnx,num-reg = <0x1>;xlnx,s-axi-min-size = <0x1ff>;xlnx,slv-awidth = <0x20>;xlnx,slv-dwidth = <0x20>;xlnx,use-wstrb = <0x0>;} ; compatible 属性是一个字符串的列表,列表中的第一个字符串表征了结点代表的确切设备,是连接驱动与硬件平台信息的桥梁。 LED驱动是一个简单的字符设备驱动。代码片段:驱动probe函数,注册设备:static int driver_probe(struct platform_device *pdev){int result;result = led_init(pdev->dev.of_node);if (result < 0) {pr_err("%s: error %d\n", __func__, result);return result;}pr_info("led: driver probed!\n");return 0;}物理地址到虚拟地址的映射:pLED_BASEADDR = of_iomap(np, 0);if (pLED_BASEADDR == NULL) {pr_err("of_iomap error!\n");return -ENOMEM;}LED节点中的compatible属性:static struct of_device_id led_of_match[] __devinitdata = {{.compatible = "zing,led-1.00.a"},{ /* end of table */ },}; 应用程序通过ioctl函数对LED进行操作:#ifdef  IOCTLwhile(1){if(ioctl(fd, LED_ON, i) < 0){perror("ioctl");return -1;}usleep(200000);ioctl(fd, LED_OFF,i);usleep(200000);i += 1;if(i > 11)i = 0;}#endif三、快速启动在ZingSK上启动LED例程需要一下几步:· 格式化TF并将表1-1中所有文件拷贝到其中。· 将TF卡插入ZingSK的TF卡插槽中。· 确保ZingSK板卡跳线正确设置为TF卡启动模式。6V电源、USB-UART连接线以下分步介绍:1. 开发板连接6 V电源(JP1),不要打开电源。 图 1-1 2. 将包含了LED例程二进制文件的TF闪存卡,插入到Zing SK开发板的TF卡插槽内。 图 1-2 3. 用USB Type-A -USB Mini-B 电缆连接开发板UART与电脑. 图 1-3 4. 使用“设备管理器”,以确定COM端口。 打开一个串口调试程序,配置为115200/8/n/1/n。 图 1-4 图 1-5 5. 打开电源开关(SP1) ,开发板上电运行。 图 1-6 6. 在串口调试工具的窗口将会显示Linux的引导过程。 图 1-7 7. 约半分钟左右,串口调试工具的窗口将会显示zynq>提示符,首先加载LED驱动”insmod  /mnt/led_driver.ko”,然后键入”/mnt/led-test”运行LED测试例程。 效果图
此帖出自FPGA/CPLD论坛

最新回复

板子很大,但是……我觉得浪费空间了。  详情 回复 发表于 2013-7-11 13:46
点赞 关注
 

回复
举报

6040

帖子

205

TA的资源

版主

沙发
 
板子很大,但是……我觉得浪费空间了。
此帖出自FPGA/CPLD论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表