[DSP编程] 如何用DSP模拟lattice的JTAG下载程序?

[复制链接]
88|1
 楼主 | 2019-3-11 22:55 | 显示全部楼层 |阅读模式
本帖最后由 hmf1235789 于 2019-3-11 22:58 编辑

我现有一块DSP+CPLD的板子,DSP是28335,cpld是lattice的LAMXO640。CPLD的JTAG端口直接连接到了DSP的GPIO,并且JTAG没有预留出来,所以我猜测CPLD的程序是通过DSP下载进去的,那么DSP就要模拟JTAG才能实现。我查找资料,找到lattice的官方嵌入式编程手册《Programming Tools User Guide》,了解到可以通过
JTAG Full VME Embedded;
JTAG Slim VME Embedded;
Slave SPI Embedded;
I2C Embedded;
sysCONFIG Embedded;
这几种方式进行编程,其中能实现的可能有JTAG Full VME Embedded和JTAG Slim VME Embedded,查看安装目录下embedded_source提供的源码,发现vmembedded类型要读取lattice的嵌入式系统.VME文件,但是DSP是不支持文件IO的,所以用JTAG Full VME Embedded方法行不通。
  1.     if ( cRetCode < 0 ) {

  2.         /***************************************************************
  3.         *
  4.         * VME file version failed to match the supported versions.
  5.         *
  6.         ***************************************************************/

  7.         fclose( g_pVMEFile );
  8.         g_pVMEFile = NULL;
  9.         return VME_VERSION_FAILURE;
  10.     }
复制代码
接着我想用JTAG Slim VME Embedded方法,使用其中的slim_vme_8051程序进行移植,此方法要求用Deployment Tool工具将lattice的.xcf配置文件生成HEX(.C)文件,我按照步骤生成了.c文件




得到了impl1_algo.c算法文件和impl1_data.c数据文件


通过查看源代码slim_pro.c发现生成的算法数组和数据数组是对应的
  1. xdata const unsigned char g_pucAlgoArray[]= {0};
  2. xdata const unsigned char g_pucDataArray[]= {0};
  3. xdata const int g_iAlgoSize = 0;
  4. xdata const int g_iDataSize = 0;
复制代码
但是调试程序的时候发现出错,在解析算法数组的时候发现前面部分数组的元素都符合程序的解析,直到g_pucAlgoArray[ 483 ] 数组出现多个连续的0xFF便出错

在slim_pro.c里面连续多个0xFF是错误的,根本不能解析数组。

请问一下:
1、我用slim_vme_8051的程序移植到28335的DSP上能否实现?
2、将.VME文件转换得到的.C算法文件是正确的还是错误的?为什么根本解析不了?
3、有没有其他方式能实现DSP模拟JTAG,通过GPIO下载程序到CPLD,读取CPLD的文件是像Lattice一样转换成数组还是通过串口下载进去,如果DSP没有预留串口只有CAN接口能实现吗?
望有经验的人或做过的人能提供思路或解答,万分感谢!




| 2019-3-11 23:19 | 显示全部楼层
DSP模拟FPGA的不好处理吧    FPGA模拟DSP的还比较好处理
但是最好别用JTAG    因时序等比较复杂   看看有没有其他串行方式
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /2 下一条

快速回复 返回顶部 返回列表