GD32的BSP架构主要分为三个部分:libraries、tools和具体的Boards,其中libraries包含了GD32的通用库,包括每个系列的Firmware Library以及适配RT-Thread的drivers;tools是生成工程的Python脚本工具;另外就是Boards文件,当然这里的Boards有很多,我这里值列举了GD32407V-START。 这里先谈谈libraries和tools的构建,然后在后文单独...
GD32的BSP架构主要分为三个部分:libraries、tools和具体的Boards,其中libraries包含了GD32的通用库,包括每个系列的HAL以及适配RT-Thread的drivers;tools是生成工程的Python脚本工具;另外就是Boards文件,当然这里的Boards有很多,我这里值列举了GD32407V-START。 这里先谈谈libraries和tools的构建,然后在后文单独讨论具体板...
关于gd32450z-eval 里面怎么用gd32_uart 我还没弄明白 第三节:总结 修改了以后,编译、下载 串口输出有了,那我成功第一步了。 下一步: 学习RT THREAD 内核 和驱动框架 2. 学习下GD32F30x 那个编程手册:时钟,中断,定时器,DMA,I2C,其它的再说吧 3. 整个东西玩玩 ...
注:只分配了 UART0 的 DMA 通道,如果其它的也需要开启 DMA 请自行修改 `struct gd32_uart uarts` 数组变量分配 DMA 通道。 注:还有一点,rt-studio 里下载的 GD32F4 firmware 库版本是很多年前的,现在已经改动过好几次了。笔者使用的 `gd32f4xx_usart.h` 版本是 “2020-09-30, V2.1.0, firmware for...
基础模板:首先看看RT-Thread代码仓库中已有的BSP已存在GD的多款芯片,Cortex-M3内核,Cortex-M4内核,RISC-V内核。而我要移植的是Cortex-M4内核。在原有的BSP中,gd32450z-eval就是一个Cortex-M4内核,所以只需要把它复制一份,并修改文件名为:gd32350r-eval。这样就有一个基础的工程。然后就开始增删改查,完成最终...
在具体移植GD32407V-START的BSP之前,先做好GD32的BSP架构。BSP 框架结构如下图所示: 在这里插入图片描述 GD32的BSP架构主要分为三个部分:libraries、tools和具体的Boards,其中libraries包含了GD32的通用库,包括每个系列的HAL以及适配RT-Thread的drivers;tools是生成工程的Python脚本工具;另外就是Boards文件,当然这里的...
设备驱动层:这层就是具体的驱动设备了,这层需要具体到IO设备,进行相应的适配。这层需要实现的几个option有configure, control, putc, getc, dma_transmit等操作方法。这些方法的实现都需要调用具体设备(如STM32,GD32)的HAL库实现。供给中间层调用。 这样设计的好处是什么尼?
该例程包含了: 1、DMA_UART >>3路 ,IDLE空闲中断的方式; 2、DMA_ADC(定时器触发方式) >> 1路,使用的ADC0,独立方式 3、编码器EC11,AB信号的那种,正交译码器,编码器,GD32官方库函数方式,没有使用中断 4、在MDK里面使用了RT-Thread Nano 3.1.5 的core,除了main线程之外暂时就开了一个线程 ...
主要调用stm32_control并启用UART_IT_TXE中断。中断发生后,根据UART_IT_TXE和RXNE标志处理发送和接收过程,如读取环形缓冲区、清除中断标志、通知上层发送完成或数据接收。总的来说,RT-Thread的串口框架通过分层设计和抽象,简化了开发者对串口设备的操作,并通过中断机制高效地处理数据传输。
在使用GD32F3系列微控制器进行串口DMA操作时,如果在bsp里的drv_dma.h文件中遇到"dma_subperipheral_...