世俱杯 2025

登录 免费注册 世俱杯 2025 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

麻烦高手帮我分析一下Microblaze的一段小程序!

作者:kir007 栏目:EDA技术
麻烦高手帮我分析一下Microblaze的一段小程序!
这是一段Microblaze的程序,其功能是对8个LED进行控制,引脚我已经锁定好了;
可是程序下载以后,并没有预料的结果;
我想问的是:
1.XGpio_mSetDataReg(BaseAddress, 1, 0x55);
这个函数中BaseAddress是LED的基地址,
1表示通道,0x55表示写给输出端口的数据;
那么这个通道是怎么确定,我如何知道这个我所约定的那些引脚
正好对准这个通道呢?
2.我下载以后为什么就是没有预料的结果呢?
3.Microblaze应该使用什么复位电平呢?

麻烦各位知情的帮我分析一下!谢谢!
void WriteToGPOutput(Xuint32 BaseAddress, int gpio_width)
{
   int i=0;
   volatile int delay=0;

   XGpio_mSetDataDirection(BaseAddress, 1, 0x00000000);   /* Set as outputs */
   while (1)
   {
          for(i=0; i<(gpio_width-1); i++)
        {
             XGpio_mSetDataReg(BaseAddress, 1, 0x55);
             for (delay=0; delay<1000000; delay++);
            }
        for(i=0; i<(gpio_width-1); i++)
        {
           XGpio_mSetDataReg(BaseAddress, 1, 0x55);
           for (delay=0; delay<1000000; delay++);
            }
   }
}
int main (void) {
   WriteToGPOutput(XPAR_LEDS_BASEADDR, 8);
   return 0;
}


2楼: >>参与讨论
picklas
re
你的程序没有什么大问题,在XPS设计的硬件产生的时候(使用BSB)不是有一个专门的测试GPIO得文件么?用那个试一试把。估计是你的硬件结构不合适,也可能是你的UCF不合适,再就是再使用GPIO之前最好初始化一下。
你可以看一下GPIO得输出PORT有两组,分别对应的是0,1两个通道,建议单向输出时使用gpio_D_out管教(不经过三态)。
microblaze得复位一般是通过reset_block实现的,复位电平可设。
 

3楼: >>参与讨论
goalyoung
楼上说得在理
本人已经用GPIO跑起来了,设置基本与楼上同

参与讨论
昵称:
讨论内容:
 
 
相关帖子
关于Xilinx的软核Microblaze的资料求救!!!
哪里有xilinx foundation可以下载?
助一个关于MAXPLUS的问题
我装modelsim按照说明用licGen生成了license并改了环境变量可是
spartan3的fpga,不用的IO脚如何设置成输出?


Copyright © 1998-2006 www.tgdrjb.cn 浙ICP证030469号