1:在C64的DSP开发中,由于模块比较复杂,看到一大堆的文件。开始由于没有清楚理解头文件的概念,总是出现包含错误。
2:结构体:在结构化的设计中一般都要使用到结构体。
3:内存分配:在DSP开发过程中,一般不建议使用动态内存分配。一个模块或是算法中需要多少内存,又上层主调度进行管理和分配。如果上层为模块或是算法传入一块连续的内存空间,只要进行强制类型转换就可以了。
4:自动测试:在开发过程中经常要进行一些验证测试,比如找到一个Bug测试条件改变了,这就要求重新进行测试。如果是手工测试的化,工作量大,而且容易出错,人都有这样的特性。做的次数多了就容易麻木。因此一套自动测试的工具就很有必要了。
5:C语言编译开关:在不同的模式或是条件下执行不同的代码,可以用编译开关把程序分开,方便进行验证和测试,但编译开关不能设置太多,太多了容易出乱子。
6:数据结构:由于当时所做的项目中经常涉及到数据处理和消息处理,因此,模块间通常使用邮箱进行数据传递,又模块A写入,由模块B进行读取。在DSP处理过程中经常用到各类型型的数据结构。
7:浮点定点化运算:
很多算法的原型是浮点的,而我们通常使用的是定点DSP。因此在重算法原型到DSP的实现过程需要经过浮点数定点化运算。在浮点数进行定点化的运算过程成中要注意精度和可能出现溢出的情况。
8:CCS工具应用。
9:JTAG仿真:在JTAG仿真中要关闭打印输出,否则可能引起难以定位的问题。
10:C程序优化:在性能达不到要求的情况下,可能要进行一些性能上的优化。为了方便移植,大型的程序使用的是C语言,因此有可能对C进行一些优化。
|