mobile CCTV,mobile surveillance,police body worn cameras

 forgetPW
 registerNow
search
view: 3322|reply: 1
打印 prevThread nextThread

ZT2008年旧帖:说说VDSP5 by lights_joy--用blackfin VDSP的建议都看看

[copyURL]

13

主题

373

帖子

2037

积分

vipMem

Rank: 6Rank: 6

积分
2037
jumpTo
owner
poston 2015-11-12 11:00 | authorOnly 回帖奖励 |倒序浏览 |阅读模式
ZT: 说说VDSP5 by lights_joy--用VDSP的建议都看看

http://blog.csdn.net/lights_joy/archive/2008/07/18/2670447.aspx

前段时间,将uclinux内核移植到了Visual DSP 5.0下,也就来说说对Vdsp5的一些看法。

总的说,VDSP5还是一个比较不错的IDE的,面对23Mdxe文件,都能正确地进行调试,虽然其下载速度变慢,大概要4分钟左右才可以下载完。

VDSP的意见集中在下面几个方面:




1.1.1   关于汇编

1、不支持空行。

比如仅仅在一行上打上一个分号,VDSP就会有强烈的意见。这一点可能不应该把帐算在VDSP的头上,但是我相信只要对编译器进行很小的改动就可以实现,这对于将软件从GCC编译器移植到VDSP却有莫大的好处。

2.macro

gcc下的汇编支持.macro,它类似于define,但是使用.macro可以在定义中使用#ifdef这样的条件编译,而用define则不行,希望未来VDSP也可以支持它。

3.rept

使用.rept,相当于可以对代码进行copy / paste的操作,可以节省很多时间,希望未来VDSP也可以支持。

4jump 1f

可恨,这么好的一个东西,VDSP居然不支持。

5、嵌入汇编

这是VDSP最烂的一个地方,如果你在C中嵌入汇编,而这个代码又很不幸地出错了,那你别指望VDSP会帮助你,它的错误提示完全让人不知所云!!

1.1.2   关于C编译器

关于C编译器,主要存在两个BUG,都和优化有关。

1、__builtin_expect

这个本来是个好东西,可惜有时它会引起编译器的崩溃,而且其提示让人不知所云!

2inline

这个也是个好东西,但当内联超过多层的时候(不确定是否这个原因),也会引起编译器的崩溃!就像这样的:

..\..\mm\filemap.c



At end of source: : internal error: Uncaught exception Assertion failed raised



          at ../../../bril/optimiser/dominators.c:910 (in pass



          cleanup_scalar_stores_nonopt during compilation of



          _find_or_create_page). Please submit a bug report with this message,



          the command line used, type of machine and the output of the



          compiler when you add -ED -v to the command line. Please also send



          us the pre-processed file that is generated by the -ED option (the



          file generated is named <original_filename>.i)





1 catastrophic error detected in the compilation of "..\..\mm\filemap.c".



Compilation aborted.



cc3089: fatal error: Compilation failed




1.1.3   关于调试器

1、当要调试的系统变大时,偶而有不稳定的现象发生,比如下载完成后要将系统中断下来,此时当按下中断按钮时,直接就跑飞了,你再下载一次就OK了。这在系统较小时几乎不会发生。

2、在显示变量值的窗口(Expression)中,有一些结构体无法显示结构体的成员。

3、在跟踪inline函数时,无法查看其变量的值。这个似乎不应该归罪于VDSP,写下来供参考。


1.1.4   关于链接器

这个就比较让人恼火了,如果你定义一块比较大的空间,然后将这个空间分成多个section,这个时候,链接器会自动将一些小代码或者小变量塞到一些内存的空隙中,以此提高对空间的利用率。本来是件好事情,但是在有些时候这却会造成致命的错误!

链接脚本里提供了一个FORCE_CONTIG的命令,但是实际发现它并不起作用!






reply

使用道具 report

13

主题

373

帖子

2037

积分

vipMem

Rank: 6Rank: 6

积分
2037
sofa
 Owner| poston 2015-11-12 11:14 | authorOnly
VDSP常见问题总结
要离开了,有空把VDSP下的常见错误和BUG大概整理了下,纯手工的哈,希望对大家有帮助。
另外感谢huangning兄和lights_joy兄长期对我的支持。
  
本文涉及的几个版本(按时间排列):


                             原版的VisualDSP++4.5.exe                    约279M
                             补丁VisualDSP++4.5_June_2007_update.vdu      约213M
                             补丁VisualDSP++4.5_Update_6.vdu              约214M
                             补丁VisualDSP++4.5_Update_7.vdu              约216M
                             原版的VisualDSP++5.0.exe                    约354M
                             补丁VisualDSP++5.0_Update_3.vdu              约274M


1.BF561双核工程编译时出现“..._var_wa_06000047...”错误:
解决办法:更新到VisualDSP++4.5_June_2007_update.vdu版本(或之后的版本)。

2.仿真器连接后VDSP出现“…Extern Memory is disabled or …”警告:
解决办法:
可能是仿真器初始化文件有问题,如果是BF531的话,需要替换ADSP-BF531-PROC.XML文件。
可能是project option中的Extern Memory 没有打开。
可能内存监视窗口监视的地址为异步内存空间或非法的地址空间。

3.BF561双核工程,在开发板上能运行的程序放到DSO上却无法正常工作,貌似不增加那些手动添加的库工程便能正常运行。
解决办法:更新到VisualDSP++4.5_Update_6.vdu(或之后的版本)。

4.编译出现“[Error ea1011]…already saw input filename C:\DOCUME~1\ADMIN~1\ LOCALS~1\ TEMP\ AUXXXX……..”错误:
解决办法:中文路径问题,更改为英文路径即可。

5.版本VisualDSP++4.5_Update_6.vdu无法使用系统服务adi_pwr_setfreq()把BF561设置到600M/100M,包括开发板。
解决办法:已经证实是BUG,解决办法未找到,官方建议等待新的补丁或5.0版本。不知道Update_7是否能解决。

6.VDSP5.0版本(已经打了update_3补丁)如果在sml3中放入变量/函数,在EXPRESSION窗口中无法实时观测到变量的值。
解决办法:已经证实是BUG,官方建议等待5.0版本的新补丁。

7.有些文件使用VDSP自带的“文件搜索”功能或load之后,发现无法定位到关键字,经常差几排。
解决办法:
文件复用/有重名文件
文件有VDSP未能识别的符号(一般是结束符)。解决办法:使用VC打开该文件,按提示做,保存,即可。
Load的工程已经被修改过了。重新编译并load即可

8.运行的时候总是停在某个地方,但是并没有IDLE,感觉就像在那里加了个断点一样。
解决办法:建议使用VDSP的“Reset Core”或重启板子和仿真器来解决。

9.有时候打开VDSP的时候出现错误对话框“Runtime error ……”,就无法打开VDSP了。
解决办法:估计是安装某些软件的时候修改了一些VDSP要用到的系统文件,可以尝试运行“开始”/所有程序/Analog Devices/Maintain this installation 一次,一路NEXT,到一个包含选择Uninstall的多选框界面那里,退出即可,VDSP会自动修复。
reply agree Against

使用道具 report

creditRule

QQ|wireless surveillance

GMT+8, 2024-12-22 17:35 , Processed in 0.053713 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

QuickReply backToTop BackToList