paradoxfx

【原创】TI C2833x编程环境介绍---(3)什么是COFF?

0
阅读(2701)

这次写博客离上次有点长,快3周了,理一下思路,继续我们的COFF,这一次可以把它写完。前面提到了,COFF工具主要是用来方便模块化编程的,为了达到更好的可移植性性,尽量做到使每个模块是与硬件“独立”的,比如可以在多个单独的.H头文件中定义所有的硬件寄存器等等。又例如,可以用汇编文件单独写一个延时程序,比如C28xus_delay,利用汇编程序执行快的优点完成精确的延时,并提供接口程序,这样在调用它的c程序里面送入延时的参数,比如1μs,2μs等等。各个相对独立的小源程序、头文件组合起来,就是一个完整的、更大更复杂的工程,也方便对各个子模块的验证(只要在调试时构建合适的源信号,在C语言编程并结合FPU浮点库的情况下是很方便的)。在工程很庞大,文件数量很多的时候,还可以进行多人的协同配合调速了。当然这在做产品的过程中会多一些,我们个人自己做些简单的电机调速还不需要这么复杂的步骤。此外,在发生器件升级的情况下,一些子程序模块甚至完全不需要进行任何修改,比如从C2833x升级到C2834x的情况下,那些Clarke变换、Park变换、Datalog之类的与硬件无关的程序完全不需要进行改动了(这几个程序前面的博文有提到)。

COFF还涉及到另外一个概念,即增量编译。各个源程序编译成各自的.obj文件,然后进行链接,生成.out文件下载到芯片中。在源文件较多较大的时候,如果全部编译一遍是很费时间的。此时用增量编译,只对修改的源程序重新生成obj文件然后链接,自然会更省时间。 CCS5.0出来也有一段时间了,下次来个CCS软件的总结了。