9)闪存、SRAM、外设的SRAM、APB1、APB2和AHB外设均可作为访问的源和目标。10)可编程的数据传输最大数目为65536
9)闪存、SRAM、外设的SRAM、APB1、APB2和AHB 外设均可作为访问的源和目标。 10)可编程的数据传输最大数目为65536
ICodeNFlashFlashDCode接口控制器Cortex-M3介核心系统NSRAMLDMA1DMA通道1N复位和时钟控制(RCC)通道2个N桥1→通道7桥2WAAPB2APB1仲裁器个DMA请求ADC1GPIOCDACSP13/12SPWRSPI2/12SADC2GPIODAHB从设备BKPIWDGUSARTIGPIOECAN1WWDGSPHEXTICAN2TIMIRTCAFIO12C2TIM7DMA2GPIOA通道1I2C1TIM6GPIOBUART5TIM5★通道2UART4TIM4DMA请求TIM3USART3USART2TIM2通道5VWA仲裁器个AHB从设备17以太网MACUSBOTGFS图10-1DMA的功能框图
图10-1 DMA的功能框图 Cortex-M3 核心 Flash 接口控制器 ICode DCode 仲裁器 AHB从设备 通道7 通道1 通道2 DMA1 仲裁器 AHB从设备 通道5 通道1 通道2 DMA2 以太网MAC USB OTG FS ADC1 ADC2 复位和时钟 控制(RCC) 桥2 桥1 Flash SRAM 系统 DMA 总线矩阵 DMA DMA DMA请求 DMA请求 APB2 APB1 USART1 USART2 USART3 UART4 UART5 SPI1 TIM1 GPIOA GPIOB GPIOC GPIOD GPIOE EXTI AFIO DAC PWR BKP CAN1 CAN2 I2C2 I2C1 SPI3/I2S SPI2/I2S IWDG WWDG RTC TIM6 TIM7 TIM5 TIM4 TIM3 TIM2
10.2 DMA的功能描述DMA控制器和Cortex-M3核心共享系统数据总线,执行直接存储器数据传输。当CPU和DMA同时访问相同的目标(RAM或外设)时,DMA请求会暂停CPU访问系统总线若干个周期,总线仲裁器执行循环调度,以保证CPU至少可以得到一半的系统总线(存储器或外设)使用时间
10.2 DMA的功能描述 DMA控制器和Cortex-M3核心共享系统数据总线,执行 直接存储器数据传输。当CPU和DMA同时访问相同的目标( RAM或外设)时,DMA请求会暂停CPU访问系统总线若干个 周期,总线仲裁器执行循环调度,以保证CPU至少可以得到 一半的系统总线(存储器或外设)使用时间
10.2.1DMA处理发生一个事件后,外设向DMA控制器发送一个请求信号。DMA控制器根据通道的优先权处理请求。当DMA控制器开始访问发出请求的外设时,DMA控制器立即发送给外设一个应答信号。当从DMA控制器得到应答信号时,外设立即释放请求。一旦外设释放请求,DMA控制器同时撤销应答信号。如果有更多的请求,外设可以在下一个周期启动请求。总之,每次DMA传送由3个操作组成:1)从外设数据寄存器或者从当前外设/存储器地址寄存器指示的存储器地址读取数据,第一次传输时的开始地址是DMACPARx或DMACMARx寄存器指定的外设基地址或存储器单元
发生一个事件后,外设向DMA控制器发送一个请求信号 。DMA控制器根据通道的优先权处理请求。当DMA控制器开 始访问发出请求的外设时,DMA控制器立即发送给外设一个 应答信号。当从DMA控制器得到应答信号时,外设立即释放 请求。一旦外设释放请求,DMA控制器同时撤销应答信号。 如果有更多的请求,外设可以在下一个周期启动请求。 总之,每次DMA传送由3个操作组成: 1)从外设数据寄存器或者从当前外设/存储器地址寄存 器指示的存储器地址读取数据,第一次传输时的开始地址是 DMA_CPARx或DMA_CMARx寄存器指定的外设基地址或存 储器单元。 10.2.1 DMA处理
2)将读取的数据保存到外设数据寄存器或者当前外设/存储器地址寄存器指示的存储器地址,第一次传输时的开始地址是DMACPARx或DMACMARx寄存器指定的外设基地址或存储器单元。3)执行一次DMACNDTRx寄存器的递减操作,该寄存器包含未完成的操作数目
2)将读取的数据保存到外设数据寄存器或者当前外设/ 存储器地址寄存器指示的存储器地址,第一次传输时的开始 地址是DMA_CPARx或DMA_CMARx寄存器指定的外设基地 址或存储器单元。 3)执行一次DMA_CNDTRx寄存器的递减操作,该寄存 器包含未完成的操作数目