CC2530的两个串口能同时使用DMA来实现吗
时间:10-02
整理:3721RD
点击:
我的协议栈版本是2.5.1a,实现要点是怎样的
HAL的代码是全开源的,你可以随便修改。从硬件来说CC2530的两个串口是等效的,因此用DMA是没有问题的。
不过协议栈现有的代码并不提供对于双DMA的支持。一般如果需要使用双串口的话,建议一个DMA,另一个ISR。
双DMA需要对代码做大修改,要点如下:
1.CC2530有5个DMA控制器,一个串口需要两个(收一个,发一个)。需要为多出来的串口,重新选择两个DMA控制器。这样加密模块就没有DMA可用了。
2.所有的串口DMA驱动所使用的全局变量,都由一份变为两份,即由一个变量,变成一个两个元素的数组。改动的难度不大,但是改的地方非常多。
我曾经改过一次,花了一个下午的时间。但是后来发现可以1 DMA + 1 ISR之后,就没有继续了。