在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1560|回复: 3

[求助] modelsim仿真microblaze+lwip问题

[复制链接]
发表于 2021-9-6 12:12:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 lzzno1 于 2021-9-6 12:20 编辑

问题描述:
1.在vivado中搭建了microblaze+1G/2.5G ethernet subsystem的以太网逻辑,SDK采用vitis中自带的tcp server example,上板实测能够跟PC通信。由于要对软硬件框架做些改动,所以转而用modelsim仿真,方便调试rtl代码,然而问题来了,modelsim仿真起来后发现软件程序没有执行,如下图所示为microblaze 外设总线的运行情况,因为我在这个自带的tcp server example的main程序最开头加了一段printf程序,因此软件刚开始进入main程序microbalze必然会寻址UART的地址空间,然而事实是没有,好似软件代码没有执行一样。
图片.png
2.将main程序一点点注释掉查找问题,发现将mem_init和memp_init两个初始化内存堆和内存池的程序注释掉后,main程序刚开始运行进入了printf阶段,如下图所示,microblaze寻址了UART的地址空间。显然软件执行了。
图片.png
3.一直未找到步骤1中问题的原因,之前未做过带软件的SOC仿真,所以找不到这里的问题原因,这套代码放到板卡上上电实测是没有问题的,为什么仿真就会出现这些问题?求教各位大神。


发表于 2021-9-6 14:49:24 | 显示全部楼层
可能在某些地方有 ifdef simulation, 然后跳过了某些步骤 , 一般是用来加速仿真的
 楼主| 发表于 2021-9-6 17:48:23 | 显示全部楼层


y23angchen 发表于 2021-9-6 14:49
可能在某些地方有 ifdef simulation, 然后跳过了某些步骤 , 一般是用来加速仿真的 ...


内存堆初始化函数mem_init的问题找到了,是内存堆对齐时起始指针变量没有定义,这里是软件问题,把这里改了之后软件就执行了,不知道为啥实际上板测试就能过去。memp_init这边还没找到原因。感觉就是软件代码这边有些地方卡住了,后面发现还有其他地方也会导致这个问题,不止这两处。
 楼主| 发表于 2021-9-14 08:59:31 | 显示全部楼层
问题已解决,后面会写个帖子记录下整个过程。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-9-23 03:17 , Processed in 0.019268 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表