RISC-V MCU中文社区

【求助】 DDR200T板载MCU FLASH无法运行程序

发表于 开源蜂鸟E203 2021-06-16 16:16:54
16
5269
0

我们使用的是DDR200T板子,之前用FLASH下载过一个数据量很大的程序(可能有10Mbit),之后用DDR200T内置的e203内核,在FLASH/FLASHXIP模式下跑hello world程序就一直会有如下图所示的报错。查询了一下,MCASE=0x2似乎是指令未对齐。


我们怀疑是FLASH坏了,因此改了链接文件,在FLASHXIP模式下把程序下载到DDR后,可以正常运行程序。此外,使用ILM模式跑程序都可以正常工作。

有朋友可以帮忙看一下这种如何解决吗,每次上电都要把程序下载到DDR里面还是有些麻烦的,非常感谢。(我们使用的是windows版本的IDE)


log如下:


喜欢0
用户评论 (16)
  • Z

    2021-06-17 23:53:59 Z 1#

    胡灿

    你是用的debug,不是run吧。

    蜂鸟不支持flash里面debug的

    胡总,我试了一下run,具体是run->run configurations->GDB OpenOCD Debugging,依然是同样的问题,会自动跳转到一个窗口,上面提示“Break at address "0x0" with no debug information available, or outside of program code.”

  • 胡灿

    2021-06-17 14:09:12 胡灿 2#

    Z

    胡总,log也贴在文中了。这个log是对应我刚刚跑的,这一次没有出现MCAUSE=0x2的提示,可是串口这次没有打印出任何东西,而是会自动跳转到一个窗口,上面提示“Break at address "0x0" with no debug information available, or outside of program code.”

    你是用的debug,不是run吧。

    蜂鸟不支持flash里面debug的

  • Z

    2021-06-17 13:23:26 Z 3#

    胡灿

    把gdb的log发出来看看,需要里面带load字眼的

    gdb的log就在console那个地方切换一下就行,现在你提供的是openocd的

    胡总,log也贴在文中了。这个log是对应我刚刚跑的,这一次没有出现MCAUSE=0x2的提示,可是串口这次没有打印出任何东西,而是会自动跳转到一个窗口,上面提示“Break at address "0x0" with no debug information available, or outside of program code.”

  • 胡灿

    2021-06-17 12:04:43 胡灿 4#

    Z

    评论我的图片发不出去,重新编辑了帖子,放在帖子里面了,您看下呢

    把gdb的log发出来看看,需要里面带load字眼的

    gdb的log就在console那个地方切换一下就行,现在你提供的是openocd的

  • Z

    2021-06-17 11:31:57 Z 5#

    胡灿

    那就还是看下下载的log吧,发下完整的log,后面那些register的打印信息没太大用,主要是前面的。现象上看感觉应该是程序没有下载进去

    评论我的图片发不出去,重新编辑了帖子,放在帖子里面了,您看下呢

  • 胡灿

    2021-06-17 10:33:35 胡灿 6#

    Z

    啊可能我没有表述清楚......我的意思就是用内置的mcs文件不能正常运行,会有MCAUSE=0x2这些报错信息,然后在异常函数里面结束,不会运行Helloworld。


    然后我用自己的SoC下载进去,也是MCAUSE=0x2这个问题

    那就还是看下下载的log吧,发下完整的log,后面那些register的打印信息没太大用,主要是前面的。现象上看感觉应该是程序没有下载进去

  • Z

    2021-06-17 10:30:07 Z 7#

    胡灿

    不是看log,是说能不能运行正常,运行正常,则表示板子没有问题,那就需要找下你们自己搭建的SoC的问题。找问题就不就是控制变量法嘛,把所有东西都揉在一起,怎么知道是哪个环节有问题

    啊可能我没有表述清楚......我的意思就是用内置的mcs文件不能正常运行,会有MCAUSE=0x2这些报错信息,然后在异常函数里面结束,不会运行Helloworld。


    然后我用自己的SoC下载进去,也是MCAUSE=0x2这个问题

  • 胡灿

    2021-06-17 10:23:38 胡灿 8#

    Z

    我们之前一直是用的板子发过来的时候内置的mcs,应该和github里面的那个mcs文件是一样的,这个情况下我们用FLASHXIP模式,在terminal里面打印出来的和文中说的一模一样...log我们当时没有截图,不是很确定log是否完全一样

    不是看log,是说能不能运行正常,运行正常,则表示板子没有问题,那就需要找下你们自己搭建的SoC的问题。找问题就不就是控制变量法嘛,把所有东西都揉在一起,怎么知道是哪个环节有问题

  • Z

    2021-06-17 10:04:07 Z 9#

    胡灿

    那就先烧写下e203_hbirdv2项目里自带的ddr200t的mcs文件,然后下载Helloworld程序到flash里面看看有没有什么问题

    我们之前一直是用的板子发过来的时候内置的mcs,应该和github里面的那个mcs文件是一样的,这个情况下我们用FLASHXIP模式,在terminal里面打印出来的和文中说的一模一样...log我们当时没有截图,不是很确定log是否完全一样

  • 胡灿

    2021-06-17 09:56:54 胡灿 10#

    Z

    胡总不好意思,刚刚板子不在手边。评论我的图片发不出去,就在原帖子上修改了,刚刚重跑了一下,程序是helloworld,硬件是我们的比赛作品,里面对于Demo SoC的存储总线,只加了0xa0000000后的一个地址扩展,其他和Demo完全一样

    那就先烧写下e203_hbirdv2项目里自带的ddr200t的mcs文件,然后下载Helloworld程序到flash里面看看有没有什么问题

  • Z

    2021-06-16 20:11:48 Z 11#

    胡灿

    把完整的下载log信息发出来看看

    胡总不好意思,刚刚板子不在手边。评论我的图片发不出去,就在原帖子上修改了,刚刚重跑了一下,程序是helloworld,硬件是我们的比赛作品,里面对于Demo SoC的存储总线,只加了0xa0000000后的一个地址扩展,其他和Demo完全一样

  • 胡灿

    2021-06-16 16:44:23 胡灿 12#

    Z

    我们只能看到IDE的界面,跟在ILM模式下正常运行的时候出的信息是一样的

    把完整的下载log信息发出来看看

  • Z

    2021-06-16 16:43:17 Z 13#

    胡灿

    程序烧写进去了吗

    我们只能看到IDE的界面,跟在ILM模式下正常运行的时候出的信息是一样的

  • 胡灿

    2021-06-16 16:42:04 胡灿 14#

    Z

    我们每次都是重新烧写的...一直报这个错

    程序烧写进去了吗

  • Z

    2021-06-16 16:39:51 Z 15#

    胡灿

    这个异常是非法指令,把flash里面的内容重新烧写一下吧

    我们每次都是重新烧写的...一直报这个错

Z

Z 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板