🔍 搜索帖子 / 资讯 / 芯片型号…
论坛/开源蜂鸟E203/DDR200T板载MCU FLASH无法运行程序
DDR200T板载MCU FLASH无法运行程序
开源蜂鸟E203 作者 Z 发布于 2021-06-16 16:16(1941 天前) 10636 浏览

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


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

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


log如下:


全部回复 16
Z
Z1940 天前 · 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.”

胡灿
胡灿1940 天前 · 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
Z1940 天前 · 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.”

胡灿
胡灿1940 天前 · 4 楼
回复 Z:

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

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

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

Z
Z1940 天前 · 5 楼
回复 胡灿:

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

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

胡灿
胡灿1940 天前 · 6 楼
回复 Z:

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


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

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

Z
Z1940 天前 · 7 楼
回复 胡灿:

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

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


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

胡灿
胡灿1940 天前 · 8 楼
回复 Z:

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

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

Z
Z1940 天前 · 9 楼
回复 胡灿:

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

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

胡灿
胡灿1940 天前 · 10 楼
回复 Z:

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

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

Z
Z1941 天前 · 11 楼
回复 胡灿:

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

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

胡灿
胡灿1941 天前 · 12 楼
回复 Z:

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

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

Z
Z1941 天前 · 13 楼
回复 胡灿:

程序烧写进去了吗

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

胡灿
胡灿1941 天前 · 14 楼
回复 Z:

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

程序烧写进去了吗

Z
Z1941 天前 · 15 楼
回复 胡灿:

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

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

💡 请 登录 后参与讨论(微信扫码即登录/注册)