【Z-turn Board试用体验】+ 【第五贴】:拨码开关控制LED灯 - 问答 - 电子技术论坛 - 最好最受欢迎电子论坛!

【Z-turn Board试用体验】+ 【第五贴】:拨码开关控制LED灯

mytom520 ( 楼主 ) 2015-6-11 23:27:23  只看该作者 倒序浏览
本帖最后由 mytom520 于 2015-6-12 00:06 编辑

本文主要实现由拨码开关的状态控制LED灯的亮灭(运行中遇到问题,在反编译成汇编的区域代码都一样,无法单步运行调试,求高手解决)1.1搭建的硬件系统

1.2在Vivado中File->Export->Export Hardware->OK    File->Launch SDK->OK; 在SDK中->File->New->New App ...

1.3自动包含的源文件

在SDK中:
system.hdf里面是硬核对应的外设地址
system.mss里面有对外设的各种说明文档
xparameter.h对应系统内外设的地址映射和设备号,这个文件有你的硬件设计平台生成,即由Block Design决定
xgpio.h对应GPIO的可以调用的函数,包括GPIO初始化、GPIO读写、GPIO数据方向

XGpio_SetDataDirection  :说明:对特定的GPIO通道设置所有独立信号的输入、输出的方向.
XGpio_GetDataDirection  :说明:对特定的GPIO通道获取所有独立信号的输入、输出的方向.
XGpio_DiscreteRead :说明:对特定的GPIO通道读取所有独立信号的状态.
XGpio_DiscreteWrite  :说明 对特定的GPIO通道写寄存器
具体查看system.mss里面的各种说明文档及例程

软件代码如下:
  1. /*
  2. * Copyright (c) 2009-2012 Xilinx, Inc.  All rights reserved.
  3. *
  4. * Xilinx, Inc.
  5. * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A
  6. * COURTESY TO YOU.  BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS
  7. * ONE POSSIBLE   IMPLEMENTATION OF THIS FEATURE, APPLICATION OR
  8. * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION
  9. * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE
  10. * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION.
  11. * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO
  12. * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO
  13. * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE
  14. * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY
  15. * AND FITNESS FOR A PARTICULAR PURPOSE.
  16. *
  17. */

  18. /*
  19. * helloworld.c: simple test application
  20. *
  21. * This application configures UART 16550 to baud rate 9600.
  22. * PS7 UART (Zynq) is not initialized by this application, since
  23. * bootrom/bsp configures it to baud rate 115200
  24. *
  25. * ------------------------------------------------
  26. * | UART TYPE   BAUD RATE                        |
  27. * ------------------------------------------------
  28. *   uartns550   9600
  29. *   uartlite    Configurable only in HW design
  30. *   ps7_uart    115200 (configured by bootrom/bsp)
  31. */
  32. #include "xparameters.h"
  33. #include
  34. #include "platform.h"
  35. #include "xgpio.h"
  36. #include "xil_printf.h"

  37. /*
  38. * The following constant is used to determine which channel of the GPIO is
  39. * used for the LED if there are 2 channels supported.
  40. */
  41. #define SW_CHANNEL 1
  42. #define LED_CHANNEL 2

  43.     /************************** Variable Definitions *****************************/
  44.      /* The following are declared globally so they are zeroed and so they are
  45.      * easily accessible from a debugger
  46.      */
  47.     XGpio Din, Dout; /* The Instance of the GPIO Driver */

  48.     int main()
  49. {

  50.         int i;
  51.         u32 sw_status;
  52.         int program_status;
  53.         print("-- Start of the Program --rn");

  54.         program_status = XGpio_Initialize(&Din, XPAR_SW_4BIT_DEVICE_ID) && XGpio_Initialize(&Dout, XPAR_LED_3BIT_DEVICE_ID);

  55.         if (program_status != XST_SUCCESS) {
  56.                 return XST_FAILURE;
  57.         }
  58.                 /*  Set the direction for all signals to be inputs except the
  59.                  * LED output
  60.                  */
  61.         XGpio_SetDataDirection(&Dout, LED_CHANNEL, 0xffffffff);

  62.         while (1)
  63.         {
  64.                  /* Read the state of the data so that only the LED state can be
  65.                  * modified
  66.                  */
  67.                 sw_status = XGpio_DiscreteRead(&Din, SW_CHANNEL);

  68.                 switch (sw_status)
  69.                 {
  70.                 case 0xfffffff1:        XGpio_DiscreteWrite(&Dout, LED_CHANNEL, 0xfffffff1); break;
  71.                 case 0xfffffff2:        XGpio_DiscreteWrite(&Dout, LED_CHANNEL, 0xfffffff2); break;
  72.                 case 0xfffffff3:        XGpio_DiscreteWrite(&Dout, LED_CHANNEL, 0xfffffff3); break;
  73.                 case 0xfffffff4:        XGpio_DiscreteWrite(&Dout, LED_CHANNEL, 0xfffffff4); break;
  74.                 default:        XGpio_DiscreteWrite(&Dout, LED_CHANNEL, 0xfffffff0); break;
  75.                 }
  76.           xil_printf("Switch Status is %xrn", sw_status);

  77.           for (i=0; i<99999; i++);
  78.         }

  79.         return XST_SUCCESS;

  80. }
复制代码

下一步project->Build All,下一步Xilinx Tools->Program FPGA,下一步右击主程序所在目录Debug As->Launch on hardware(GDB)
接着卡壳了,不能顺利调试!!!求助高手……





6个回复

myir.tom 发表于 2015-6-16 09:12:55
调试ARM得用D-stream吧
李嘉 发表于 2015-6-16 16:41:16
同样遇到这个问题,每次Debug As->Launch on hardware后都提示no variable sources for “”,汇编是空的,但是有时也能单步调试,大部分时间卡在no variable sources for “”,偶尔几次能进行单步调试,不知是何原因,
mytom520 发表于 2015-6-18 21:55:04
尝试了好几遍,各种错误!!!
不知道,要不要program fpga ,Debug As->Launch on hardware(GDB)不能但不运行,但是可以经过串口打印???!!!
Run As->Launch on hardware(GDB)一样的现象……@blackroot @中科院 同学你是如何解决的?跪求知道,卡在这里好久了









t.JPG (159.23 KB, 下载次数: 19)

t.JPG
中科院 发表于 2015-6-25 17:26:38
我有的时候也会遇到各种蛋疼的问题,一般我是直接保存。然后重启程序或机器。一般是program fpga ,Debug As->Launch on hardware(GDB)的过程,如果你连接上,Run As->Launch on hardware(GDB)也是可以直接运行的,但是有的时候运行失败,这时候我也没其他解决办法,一般就是看看连线,看看下载器之类的。
中科院 发表于 2015-6-25 17:29:54
mytom520 发表于 2015-6-18 21:55
尝试了好几遍,各种错误!!!
不知道,要不要program fpga ,Debug As->Launch on hardware(GDB)不能但不运行,但是可以经过串口打印???!!!
Run As->Launch on hardware(GDB)一样的现象……@blackroot @中科院 同学你是如何解决的?跪求知道,卡在这里好久了

抱歉回复比较晚,我不断开关多次SDK之后,也会遇到类似的问题,我一周前也联系Xilinx的技术人员,但是现在还没有给我答复,有的时候就是怎么样的让人感觉无厘头,毕竟安装完成后十几个GB的软件吗,也不能要求怎么样了,但是SDK毕竟是基于eclipse的,再怎么样也不要经常出现奇葩错误,事实上,结果完全相反。
1652981125.048900 发表于 2015-12-22 11:28:22
#define GPIO_DEVICE_ID          XPAR_XGPIOPS_0_DEVICE_ID
#define        K1_PIN                                50

里面这个50是怎么来的了?不解!

还有此例子里面:
#define SW_CHANNEL   1
#define LED_CHANNEL   2

这些通道是随便定义的吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则


关闭

站长推荐上一条 /6 下一条

小黑屋|手机版|Archiver|电子发烧友 ( 湘ICP备2023018690号 )

GMT+8, 2024-5-2 21:05 , Processed in 0.626823 second(s), Total 68, Slave 46 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表