您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 《求助》关于bf532的程序进不了主函数的问题... 
本帖共有4268个阅读者
发表帖子 发表投票 回复主题
《求助》关于bf532的程序进不了主函数的问题
wuzixian2012(论坛新手)
wuzixian2012
头衔:社区公民
帮派:无帮无派
帖数:12
金钱:229
积分:15
注册时间:2012/5/16
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
《求助》关于bf532的程序进不了主函数的问题
现在是原先有个程序下载到bf532里没有问题。可以进入主函数。因为主函数里有sdram的初始化。所以sdram运行正常。而且这时sdram中存的都是数组。没有存函数。但是当把这个程序加进来一些新的函数,L1_code存储不下,一些函数存储到sdram。则这是再编译的时候就进不了主函数,这是什么问题啊?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/6/12 9:59:12
wuzixian2012(论坛新手)
wuzixian2012
头衔:社区公民
帮派:无帮无派
帖数:12
金钱:229
积分:15
注册时间:2012/5/16
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

求高手解答


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/6/13 17:41:44
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

1. 你先确认一下你的SDRAM是好的。可以写个遍历程序测一下,或者手动写数到指定区域看对不对

2. LDF的设置里头,你看一下你的SDRAM大小的设置是不是跟你实际板上的大小设置一样的

先排查一下这个把,SDRAM的问题,会出现你说的这些现象。


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2012/6/14 10:29:21
tzg74500(论坛游民)
tzg74500
头衔:社区公民
帮派:无帮无派
帖数:87
金钱:806
积分:110
注册时间:2011/7/31
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

这个问题我也遇见过,一直没搞定,我的不是进不了MAIN,而是以调用定义在SDRAM里面的函数,程序就跑飞,但定义到L1_CODE里面是没问题的。。。。。我一直怀疑,这个跟烧写FLASH时选定的初始化.dxe文件有关。。。。

猜测如下:定义到SDRAM的函数,在main执行之前,必须从FLASH引导到SDRAM里面,这个初始化dxe就完成这些功能,但你的mian 里面又重新对SDRAM初始化的函数,这样就造成了2次初始化,本来已经存好的数据,但经过你的初始化,结果就产生了问题。。。。。。。。

这只是猜测,没验证。。。。。呵呵。



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

在仿真状态下,代码是不会从flash加载的SDRAM 可以多次初始化,以最后一次初始化为最终的配置值。我感觉你的SDRAM没有焊接好,你可以这样,找一个图片数据,尽量大点,然后fill进SDRAM,再用VDSP下的image view工具还原图像,看图像是否完整,多找几个SDRAM的地址试。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/6/18 19:15:19
tzg74500(论坛游民)
tzg74500
头衔:社区公民
帮派:无帮无派
帖数:87
金钱:806
积分:110
注册时间:2011/7/31
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

那我就不明白了,我的仿真和烧写都不能运行定义在SDRAM函数。。。。

另外,这个问题已经提示过多次,在仿真时,TFT显示器可以正常显示,难道你还认为是SDRAM有问题吗?!!!


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

先确认几个问题:

1. SDRAM是几M的

2. SDRAM 3个初始化寄存器的配置是什么

3. 工程选项里LDF部分,是否使能使用SDRAM选项,SDRAM大小设置的是多少

4. XML文件中有没有初始化SDRAM的配置,配置值是什么

5. 有没有尝试屏蔽新添加的函数,确定一下是加入了哪个函数导致出现此类问题

6. 是否使用section命令人为定义一些不常用的函数到SDRAM,将一些认为放到SDRAM出错的函数放置到L1中运行。

7. 如果SDRAM高位地址线短接或着虚焊,你的部分SDRAM空间仍可以正常使用,液晶屏正常显示只能说明数据连接正常,该段SDRAM空间正常,不能证明高位地址线短接。


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

想起一个测试地址线短接的方法,你先写一个遍历SDRAM的程序,交替向SDRAM写入aaaa,5555.一定要把整个SDRAM都写满。然后写一个校验函数,对写入的数据5555和aaaa进行校验,打印出校验不一致的内存地址。运行一下,如果没有发现校验错误,可以先运行写入,然后打开memory窗口,找一个地址,手动修改一个数据,然后运行校验函数,如果地址线没有短接的话,校验只打出你当前修改地址的数据,如果地址线短接,你写入的数据会串到别的地址,将会打印多个数据。你根据地址变化可以看到是哪个地址线短接了。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/6/23 0:05:17
tzg74500(论坛游民)
tzg74500
头衔:社区公民
帮派:无帮无派
帖数:87
金钱:806
积分:110
注册时间:2011/7/31
8信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

数据早就校验过了,早就遍历过了,都没问题。。。。。。。。。。。。。。。。。。。



目前还有有2个地方没时间查明,1、系统上电后,init_code对SDRAM初始化,把函数加载到SDRAM里面,然后我在主函数又对SDRAM初始化以存放TFT显示数据(当然显示是没问题的),那么这个再初始化究竟会不会对main函数执行以前SDRAM里面的数据有影响??????

                                                   2、仿真器在下载数据到SDRAM时,再初始化会不会对加载到SDRAM里面的函数有没有影响???

改天要好好的查下这个原因。。


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

早期BF53x芯片 0.2版及以前的,如果xml初始化过SDRAM后,代码再初始化,会造成死机。0.3版本以后就不会有这样的问题,可以多次反复初始化SDRAM,不会影响SDRAM内存数据。你要不尝试将sission改为BF533,试一下,BF533下运行代码要比BF532好的多,不会出现莫名其妙的问题,BF532和BF533是同一个核,除了L1大小不同,再无差别,可以替换使用。


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