This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

底层驱动程序基于API(soft drive mode)的写法与基于bit field的写法的异同

Other Parts Discussed in Thread: CONTROLSUITE

你好!我以前使用的处理器是DSP28335,对于寄存器的访问是采用bit field的寻址方式,即结构体加共用体,TI的参考设计中给了一些外设模块初始化的程序,使用时间长了,感觉很方便。

最近开发项目中,开始使用处理器DSP28377s,通过阅读TRM手册,该芯片的ADC采样,CAN模块的底层驱动原理与DSP28335的ADC与CAN差别不小,所以在写项目程序的时候,发现最新处理器TI给的例程中寄存器的访问都采用的是API(soft drive mode), 本来想打算程序继续采用bit field的方式来编写,无奈发现有的底层外设TI根本就没有给参考设计,比如说CAN模块,导致一些底层驱动设计缺乏经验。在此想请教一下TI的工程师:

API的方式和bit field 的方式寻址寄存器到底有什么区别,bit field方式编写的函数效率更高一些;从TI给的例程中是不是以后寻址的发展方式趋向于API,TI要逐渐淘汰bit field方式,期望TI的工程师能够详细阐述一下这两种原理,谢谢!

  • 位域方式的写法不会淘汰,现在controlSUITE里面大部分例程都是位域方式。

    至于API的写法,个人认为,主要是针对一些复杂的外设,如USB, CAN, 这些模块是从其他芯片集成过来的,有现成维护好的API直接使用。

    ERIC