RISC-V MCU中文社区

【求助】 hbirdv2运行hello world程序串口没有输出

发表于 开源蜂鸟E203 2021-03-29 11:40:47
11
206
2

    最近在学习E203,用的是Hummingbird Evaluation Kit的板子芯片型号xc7a100t.

    首先进行v1版本的移植,将github上的板子改成了100T,之后按步骤完成移植和hello world程序运行,成功了。

    紧接着进行hbirdv2的移植,在v2版本中将gpioA相关的约束屏蔽,然后在顶层system.v文件中屏蔽掉gpioA部分的代码,将板子型号改成xc7a100t,没有其他改动,生成了mcs文件烧写进板子里,然后进行hello world程序的运行步骤,

    最后串口却打印不出信息,请问大家是哪里的步骤出了问题?

    万分感谢大家的指教!

喜欢2
用户评论 (11)
  • J

    2021-04-09 12:13:03 J 1#

    wujiboy

    我的处理方式是:

    1. 首先将FPGA改成100t

    2.然后将蜂鸟板的fpga hbirdkit目录拷贝到v2的fpga目录中,修改nuclei-master.xdc. 

      将里面的qspi_*改成qspi0_*  

      加入了一行 set_property KEEPER true [get_ports mcu_TMS] 

      将所有的gpio[改成gpioA[

      ------

      修改脚本prologue_setup.tcl,将create_project e200.... 改成create_project e203...

    上述修改忽略了蜂鸟板上没有的gpioB,编译时会失败,修改了init.tcl还是init_setup.tcl (?忘了?)

    加入下面三行以便Vivado不严格要求所有的管脚都有实际对应

    set_property SEVERITY {Warning} [get_drc_checks NSTD-1]

    set_property SEVERITY {Warning} [get_drc_checks RTSTAT-1]

    set_property SEVERITY {Warning} [get_drc_checks UCIO-1]

    成功编译出mcs,写入蜂鸟板,但是运行程序控制红绿蓝三个LED灯的时候却发现没有任何反应。

    按道理来说gpioA与第一版中的gpio是同一个地址,管脚,应该是正确的啊,怎么运行起来没有任何反应呢? 换成v1的mcs是正确的。

    你用的是什么板子呢?我看你好像是直接把V1版本FPGA里面的文件复制到V2版本里进行修改?

  • wujiboy

    2021-04-05 21:59:44 wujiboy 2#

    我的处理方式是:

    1. 首先将FPGA改成100t

    2.然后将蜂鸟板的fpga hbirdkit目录拷贝到v2的fpga目录中,修改nuclei-master.xdc. 

      将里面的qspi_*改成qspi0_*  

      加入了一行 set_property KEEPER true [get_ports mcu_TMS] 

      将所有的gpio[改成gpioA[

      ------

      修改脚本prologue_setup.tcl,将create_project e200.... 改成create_project e203...

    上述修改忽略了蜂鸟板上没有的gpioB,编译时会失败,修改了init.tcl还是init_setup.tcl (?忘了?)

    加入下面三行以便Vivado不严格要求所有的管脚都有实际对应

    set_property SEVERITY {Warning} [get_drc_checks NSTD-1]

    set_property SEVERITY {Warning} [get_drc_checks RTSTAT-1]

    set_property SEVERITY {Warning} [get_drc_checks UCIO-1]

    成功编译出mcs,写入蜂鸟板,但是运行程序控制红绿蓝三个LED灯的时候却发现没有任何反应。

    按道理来说gpioA与第一版中的gpio是同一个地址,管脚,应该是正确的啊,怎么运行起来没有任何反应呢? 换成v1的mcs是正确的。

  • J

    2021-03-29 15:00:57 J 3#

    胡灿

    看了下,引脚约束没啥问题。建议可以从以下几个方面调试看看 1. 如果有示波器或者逻辑分析仪,可以捕获下UART的波形看看,GPIOA的16、17 2. 不改RTL,把GPIOB随便约束到Hummingbird Evaluation Kit这个板子的空余引脚上 原理上串口不输出跟GPIOB没关系,但是不知道你改了system.v是否有其他问题,vivado综合布线是否报错了没注意的?

    vivado的综合布线没有报错,我试试不改RTL的方法重新走一遍流程看看。 谢谢您!

  • 胡灿

    2021-03-29 14:55:38 胡灿 4#

    J


    看了下,引脚约束没啥问题。建议可以从以下几个方面调试看看 1. 如果有示波器或者逻辑分析仪,可以捕获下UART的波形看看,GPIOA的16、17 2. 不改RTL,把GPIOB随便约束到Hummingbird Evaluation Kit这个板子的空余引脚上 原理上串口不输出跟GPIOB没关系,但是不知道你改了system.v是否有其他问题,vivado综合布线是否报错了没注意的?

  • J

    2021-03-29 14:32:31 J 5#


  • J

    2021-03-29 14:32:03 J 6#

    其余部分我只改动了system.v顶层文件,将gpioB部分注释掉了,保留了gpioA部分

  • J

    2021-03-29 14:29:14 J 7#

    胡灿

    那麻烦把你改后的约束文件,关于GPIOA的那一部分截个图发出来看看吧

    好的,我把图贴在下一楼,麻烦您看看

  • 胡灿

    2021-03-29 14:19:41 胡灿 8#

    J

    按照您说的,我把gpioB屏蔽,然后将gpioA换成Hummingbird Evaluation Kit这个板子所有的GPIO端口号 还是没有打印出串口信息

    那麻烦把你改后的约束文件,关于GPIOA的那一部分截个图发出来看看吧

  • J

    2021-03-29 13:02:11 J 9#

    胡灿

    因为打印串口的实现是在GPIOA中,GPIOA pin16 和 pin17,可以在约束文件中看看

    按照您说的,我把gpioB屏蔽,然后将gpioA换成Hummingbird Evaluation Kit这个板子所有的GPIO端口号 还是没有打印出串口信息

  • J

    2021-03-29 12:05:03 J 10#

    胡灿

    因为打印串口的实现是在GPIOA中,GPIOA pin16 和 pin17,可以在约束文件中看看

    好的,谢谢!

  • 胡灿

    2021-03-29 12:04:20 胡灿 11#

    因为打印串口的实现是在GPIOA中,GPIOA pin16 和 pin17,可以在约束文件中看看

关于作者
J

J 未通过人工认证

懒的都不写签名

问答
粉丝
1
关注
1
  • 早春营|RISC-V处理器嵌入式开发
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
早春营|RISC-V处理器嵌入式开发