我准备移植一个算法,从PC上面到DSP。
PC程序中数据的输入输出都是用文件IO。首先我考虑将这些文件IO保留,直接在Visual DSP++5.0中编译运行,是没有错误的。但是在执行程序的时候出现了bug,就发生在文件IO函数里面。而在PC上是没有错误的。
我觉得可能是环境不同,编译出来的结果还是有差别,可能导致出错?不知道对不对?同时,我考虑到实际运行在DSP上的程序,文件IO是不能使用的,所以不准备调试这个错误,而是直接将这部分代码去掉。
这样就涉及一个问题,DSP中数据的输入和输出问题。虽然在实际系统中,可以通过一系列接口将数据写到DSP的存储器,如SDRAM。但是在调试时,这么做我觉得太麻烦而且可能不知道错误产生在哪儿?
我觉得比较理想的方式就只是采用仿真器直接在DSP上调试。借助IDE,开始时读入应该是一种方式我觉得。但是上面我提到了,文件IO出错了,而我也不想花时间调试这些函数(实际是没用的)。同时这种方式还是要做实际使用调试一步。
所以我想有没有其他方式,可以把数据加载到存储器中。比如SDRAM,跟实际使用的时候一致。以上是我的想法,可能不准确。请问这种情况下,一般采用哪种调试方式较好?
答:
调试方法有很多,不过要看具体情况。您这块的问题我建议您还是先把IO的错误解决,不要觉得以后没用就跳过去了。建立好的调试方法,能够极大的加快后期的开发进度,如果您此处跳过,那么以后就面临后期调试手段单一,更加加大后期调试的难度。我们一般调试部分占研发部分的30%以上,也就是说,很多程序为了调试和验证,要开发很多无关的代码,这个是避免不了的。
DSP部分的IO操作如果接上仿真器,那么是和PC上完全相同的,只是访问速度慢一些而已。