背景
我正在构建一个基于TM4C的测试夹具,用于使TI基于mmWave的平台的某些功能实现自动化。 测试装置(TM4C)和mmWave设备之间的主要通信是UART。 因此,在我深入了解之前,我想验证几个有关TivaWare,DriverLib以及与TI-RTOS的关系的假设。
这是一个非常广泛的主题,因此为了缩小范围,这个问题的重点将是与UART具体相关。
思考过程
在较高的层面上,我看到有三个图书馆在发挥作用;
- TivaWare SDK (DriverLib):例如 C:\ti\tivaware_c_series_2_1_4_178\driverlib
- TI-RTOS-TivaC (DriverLib为RTOS重建)。 例如: C:2.1 \tirtos_tivac_2_16_00_08\products\TivaWare_C_Series-Tiv.1.71b\driverlib
- TI-RTOS驱动程序。 例如: C:\tirtos_tivac_2_16_00_08\products\tidrivers_tivac_2_16_00_08\packages\ti\drivers
问题:
正确的说法是,TivaWare的标准DriverLib库不是线程安全的。 因此,在符合线程安全的TI-RTOS-TivaC中提供了驱动程序子集。 这些驱动程序可在 \ti\drivers中找到,例如 ti\drivers\UART.h?
就DriverLib而言,2.1 开发人员可能应该使用tos_tivac (C:\tirtos_tivac_2_16_00_08\products\TivaWare_C_Serie-C1.71b\driverlib)中的捆绑版本,而不是直接进入 C:\tivaware? 我必须将TI-RTOS中的DriverLib版本与标准TivaWare DriverLib进行比较,以了解是否有任何差异。
总之,在TI-RTOS中为TM4C开发应用程序时,允许使用哪些驱动程序。 您应该只尝试专门使用RTOS驱动程序的子集,还是直接使用DriverLib驱动程序可以? 另外,沿着相同的行,您是否通常省略ROM_或MAP_指令,因为RTOS可能已经在内部映射了这些指令?
示例:
为了让事情完整地循环,我想最好的例子是。
假设您正在利用DMA来促进UART上的串行通信。 DriverLib的UDMA实现中提供的一个选项是通过UDMA_MODE_Pingpong设置ping-pong风格的控制模式,同时使用主 缓冲区和次缓冲区进行存储。
但是,TIVA的TI-RTOS在其UARTivaDMA驱动程序中没有此类功能,因此您可能是独自使用的情况?
我想,一旦我了解了什么可以使用和不可以使用的基本概念,那么剩下的拼图就应该就位了。
谢谢!