合众达电子SEED_VPM642开发板调试及应用

1.SEED_VPM642开发板flash烧写问题

以前做过DM642测试和算法在线调试,最近刚用上合众达开发板,但是现在要完成脱机系统采集显示和存储。在烧写光盘提供例程时没有问题(LED交替闪烁),但是在测试4路视频输出时能在线显示而不能烧写。看到网上有贴说在初始化时没有加延时0.5s,但是按照操作才发现加进去没效果。后来仔细分析,发现主要还是boot烧写的问题.

解决有二步:

1.对于非BIOS的视频采集显示程序需要在main()函数的初始化时加一段0.5s的延时:
for(i=0;i<1000;i++)//延时0.5s,为下一步初始化配置EMIF、CPLD和IIC的时序作准备
  {
  EVMDM642_waitusec(500);
  }






CSL_init();
CHIP_config(&CAUDM642percfg);//省略

2.在工程中修改seeddm642vedio.cmd文件,添加boot和内存分配

-l lib\cslDM642.lib
-l lib\rts6400.lib

MEMORY
{
  boot: o = 00000000h l = 000400h 添加项

  L2 : o = 00000400h l = 00040000h
  CE01: o = 80000000h l = 00100000h
  CE02: o = 80100000h l = 00f000000h
}

SECTIONS
{
    .boot_load  >       boot//添加项
    .vecs       >       L2
    .cinit      >       L2
    .text       >       L2
    .stack      >       L2
    .bss        >       L2
    .const      >       L2
    .data       >       L2
    .far        >       L2
    .switch     >       L2
    .sysmem     >       L2
    .tables     >       L2
    .cio        >       L2
    .capChaAYSpace>    CE01
    .capChaACbSpace>   CE01
  
   
   .capChaACrSpace>   CE01
    .disChaAYSpace>    CE02
    .disChaACbSpace>   CE02
    .disChaACrSpace>   CE02
    .external   >      CE02
}         

特别需要注意的是,在boot引导程序中需要为Flash自举分配0x400大小的SRAM空间,不然即使烧写了程序在启动时也无法将0x90000000开始的1kB引导程序读入0-0x400的SRAM单元,也无法实现下一步将用户程序从FLASH处运行。

DSP的boot过程相对ARM比较简单,不需要作很大的修改,只需要指定分配程序数据内存单元并完成boot设置,在main程序中完成初始化即可实现芯片的启动。

2。VPM642开发板例程版本从CCS2.2转CCS3.3

问题一:cmd问题

如果程序中用的数组超大(例如视频压缩传输程序), 编译出现“>>   error: relocation value truncated at 0xdb0 in section .text, file"提示。解决办法是将C源程序中定义的大数组分配指定为特定的内存空间中,,声明存储到外扩的SDRAM上,如#pragma DATA_SECTION(G, ".G");如果还出现问题,需要修改Build option-advance选项,把memory mode 改成“far”,把RTS calls改成“are far”。

分析:这个链接错误通常是由于定义的数组过大,在网上查有人说不能超过64k,具体数值没试过,数组通常放在.cinit段,可能这个段大小有限制。网上查到的方法是将Memory Models改成data far,利用重新分配空间将大数组单独定义一个段名,在cmd文件中重新定位,避免了.cinit的限制。



问题二:CSL库未添加

CCS3.3安装了5.20版本的DSP/BIOS,配置文件格式为.tcf,而CCS2.2的BIOS配置文件格式为.cdb。使用CCS3.3打开程序,需要将.cdb转换为.tcf。按照提示操作,转换成功。但是编译时候提示,错误信息显示连接器无法找到程序中调用的所有CSL函数。比较了两个版本代码的编译、连接选项,完全一致,比较BIOS配置,也一模一样,。会不会是没执行什么初始化操作或者没包含什么头文件和库?找出CSL的文档,从overview看起,发现文档说要包含一个名为cslDM642.lib的库。在连接选项里加上这个库文件,然后编译通过。

分析:

CCS2.2 版本BIOS的System->Global Settings的属性页面General标签中有一个名为Chip Support Library (CSL)的下拉菜单,CCS2.2使用的CSL库就是在这里指定的,而CCS3.1的BIOS没有这个选项,从.cdb转换到.tcf时就会丢失配置信息,造成编译错误。



CCS3.3转CCS2.2过程(转载自: http://www.tichinese.com/College/Soft/DSP/200909/546.html



在ccs3.3下每次修改代码后,都回导致内存中文件被锁定,必须重启机器才能解决。估计3.3有升级补丁。暂时没有下到。改为ccs2.2后,仿真器链接不上,估计原因是驱动必须和ccs2.2装在一个文件夹下。

    在ccs2.2中执行合众达给出的在3.3下运行的程序,出现链接错误:“error:illegal relocation type 050002 found in section ,debug_info, file”,上网搜了一通,遇到一篇日志,将工程中的两个库文件换成安装文件下的就行了,果然ok!

为了再次熟悉一下DSP和CCS开发环境,收获了不少东西:

(1)再次熟悉了CCS集成开发环境。安装CCS软件和仿真器驱动时,刚开始,我把仿真器的驱动装在了C盘,而CCS 2.2是很早之前就装在电脑里的,是装在E盘上。结果,由于CCS和仿真器驱动的安装路径不同,导致仿真器连不上,跳出窗口提示错误。最终通过重新安装CCS,将它与仿真器驱动安装在同一路径下解决了该问题。

(2)程序编译时,提示错误:
>> error: illegal relocation type 050002 found in section .debug_info, file
E:\DM642\SEED-DTK_VPM642v1.2    \SEED101_VideoReverse\lib\rts6400.lib
后来通过在网上查询相关资料,推测可能是CCS版本和rts6400.lib文件不兼容。通过将工程中的rts6400.lib文件替换为CCS安装目录下的rts6400.lib,问题得以解决。

(3)合众达给的例子都是通过实验箱上的显示屏来观察图像,因为CCS本身也提供了观看图像的功能,所以,就通过View-Graph-Image,设置图像属性,观察到了实验结果。刚开始在这里也犯了一个小错误:程序中,图像的坐标原点是在左上,而我在设置Image Origin的时候,却选择了Bottom Left,误以为原点在左下,导致看到的图像是反过来的。通过将Image Origin修改为Top Left 解决了该问题。

(4)对程序进行了简单的修改。在图像取反例子的基础上,对取反函数进行了修改,选定了一个阈值,通过加入一个if-else语句,实现图像的二值化。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一部分 实验环境的建立...................................................... 1 一 硬件连接.............................................................. 1 二 软件的安装和配置...................................................... 3 2.1 Code Composer Studio2.2 的安装................................. 3 2.2 仿真器驱动程序的安装............................................. 3 2.3 为CCS 安装设备驱动程序......................................... 4 三 入门实验(PAL 格式图像实时采集并显示) .............................. 13 实验1 PAL 格式图像实时采集并显示................................... 13 四 注意事项............................................................. 23 第二部分 图像处理实验程序................................................... 24 实验一 图像的点运算..................................................... 24 实验1.1 图像的反色.................................................. 24 实验1.2 图像的灰度显示.............................................. 27 实验1.3 图像的阈值分割.............................................. 29 实验1.4 灰度图的线性变换............................................ 31 实验1.5 灰度窗口变换................................................ 33 实验1.6 灰度拉伸.................................................... 35 实验1.7 直方图...................................................... 38 实验1.8 灰度均衡.................................................... 40 实验二 图像的几何变换................................................... 43 实验2.1 图像平移.................................................... 43 实验2.2 图像的垂直镜像变换.......................................... 45 实验2.3 图像的水平镜像变换.......................................... 47 实验2.4 图像的缩放.................................................. 49 实验2.5 图像的旋转.................................................. 51 实验三 图像的增强....................................................... 54 实验3.1 图像的平滑(平均模板)...................................... 54 实验3.2 图像的平滑(高斯模板)...................................... 56 实验3.3 3*3 均值滤波................................................ 58 实验3.4 3*3 中值滤波................................................ 61 实验3.5 图像的锐化(梯度锐化)...................................... 64 实验3.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值