您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> bf531 enable data cache之后
本帖共有654个阅读者
发表帖子 发表投票 回复主题
bf531 enable data cache之后
xiayu(论坛新手)
xiayu
头衔:社区公民
帮派:无帮无派
帖数:14
金钱:226
积分:18
注册时间:2014/12/3
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
bf531 enable data cache之后
1.我在bf531上跑了一段图像处理的代码,由于速度较慢我打开了编译器优化没有出现问题
2.当我enable data cache(Bank A)之后,代码死在 _fatal_error处(IDLE),一直不能进入main函数。ldf是自己生成的,未修改过
3.我跑官方的最简单的uart例程,再打开cache优化之后出现相同的问题
4.我之前用533跑得时候,打开编译器优化和cache优化都可以正常工作
5.打开cache优化后,系统堆栈被放到SDRAM中,这会影响整体计算速度吧,需要人为调整?
总感觉是ldf文件引起的问题,请大神们指点下,不甚感激!  

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2015/1/14 15:01:45
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
使能cache后,SRAM内存减小一半,导致你的代码使用的内存不足,所以代码运行异常,无法跑到main,将你代码中较大的数组,不常用的函数映射到sdram中执行就可以了

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2015/1/14 21:09:28
xiayu(论坛新手)
xiayu
头衔:社区公民
帮派:无帮无派
帖数:14
金钱:226
积分:18
注册时间:2014/12/3
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
关键是我跑了你们的uart例程代码,我看了这代码很简单,不至于内存不足吧?  但是在打开cache优化后还是会出现fatal_error

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2015/1/15 11:32:26
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

UART没有生成LDF文件,你需要生成LDF文件。生成时内存大小要设置32M。我这边编译运行没有问题,代码如下:


上传的附件
   201511922124700.rar [ 86.31 KB ]


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2015/1/19 22:12:48
xiayu(论坛新手)
xiayu
头衔:社区公民
帮派:无帮无派
帖数:14
金钱:226
积分:18
注册时间:2014/12/3
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
谢谢andy的解答!
我看了你的例程是跑在533上的,我之前在533上跑这例程和自己的代码,打开cache优化确实是没有问题的。
现在我们自己做的板子是531的,无论是将之前的工程改成531的还是自己新建的简单的531工程,打开cache优化则fatal error
我想问是否是531自身不能打开cache优化,还是我的工程配置有问题?

这是新建的531工程
上传的附件
   201512110454590.rar [ 44.51 KB ]

这是在你的例程基础上修改成531工程的
上传的附件
   201512110473490.rar [ 89.78 KB ]


希望你有空帮我看下,不甚感激!

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2015/1/21 10:48:13
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线


上传的图片
  201512519125807.jpg [ 50.93 KB 477×492 ] (缩略时请点击查看原图)

 

这个是内存资源表,可以看出531对的L1 只有16K,并且和cache共用,我觉得一但开了cache,531自身就没有了L1 SRAM的空间,导致你的代码运行不正常。

你找找看LDF文件中能否指定分配cache空间,这个我没做过,所以也不确定。



「该帖子被 andy 在 2015-01-25 19:15:25 编辑过」

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2015/1/25 19:14:07
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159178 Call, 1 Queries, Processed in 0.033203 second(s),