|
我是在裸跑下调试的~
用的CD自带的de1_soc_ghrd烧进FPGA了,板子上所有外设就都方便的弄好了.
- #include <stdio.h>
- #include "alt_generalpurpose_io.h"
- #include "socal/socal.h"
- #include "socal/hps.h"
- #include "socal/alt_gpio.h"
- #include "socal/alt_rstmgr.h"
- #include "hps_0.h"
- int __auto_semihosting;
- unsigned int *h2p_lw_led_addr;
- int main(void)
- {
- printf("This is a Test Program for GPIO\n");
-
- <b>h2p_lw_led_addr = (unsigned int*)(ALT_LWFPGASLVS_OFST + LED_PIO_BASE);
- *h2p_lw_led_addr = 0x3ff;</b>
- while(1)
- {
- }
- return( 0 );
- }
复制代码
由于是裸跑,不在linux下,因此省去了很多麻烦.
然后调试,主要看内存的内容.
首先验证sysid_qsys
我们设置的是
0xacd51302
这个外设的地址为:0xff20000+0x10000
现在验证:debug下,查看内存:
正确,说明,HPS访问FPGA正确无误.
============================
但是灯却没有亮.
先查看下内存.
(ALT_LWFPGASLVS_OFST + LED_PIO_BASE) = FF210040
发现内存这个地方确实变成了0x3ff,但是灯没亮,那就说明可能内存的值没用反映到FPGA里面去.
但是板子上的10个拨码却能够反映到内存里面.
如图所示:为0x355,我板子上就是拨的这个数.
求大神指导,为啥LED灯不亮啊,,~?
|
|