#申请原创# 写在前面:聚沃科技SDK使用GD固件库基础上开发了MCU外设驱动的中间层以及板级外设的驱动,相关例程调用驱动函数实现,用户在基于聚沃的SDK做产品开发时,可以很方便的适配新的硬件,直接调用相关驱动接口开发上层应用即可,类似STM32的hal库,弥补了原厂这一块的空缺,并且在驱动中做了很多容错性处理,总结了应用中常见一些问题,可靠性比原厂demo例程更好,可在裸机、RTOS等不同开发框架下稳定运行,能很好的缩短软件开发周期。 本文主要针对SDK如何重定义硬件接口和外设参数进行说明,方便让大家快速灵活使用聚沃科技SDK。 软件架构简介 聚沃科技SDK框架如下图所示,底层驱动为官方提供的外设库,聚沃科技实现了抽象层驱动包括MCU_Driver和BSP_Driver,其中MCU_Driver为MCU底层外设驱动,调用底层驱动进行再次封装,BSP_Driver为板级资源驱动,调用MCU_Driver进行再次封装,便于应用层调用,应用层及应用层驱动为上层应用,包括主函数文件以及相关上层驱动。该例程架构经过多层封装便于读者开发中直接使用。 主要功能介绍: • driver_public.c 该文件主要会初始化延时模块、系统tick中断、配套例程的LCD和串口打印,不同系列之间也会根据芯片特点做一些必要性初始化,比如H7的SDK中还做了cache的使能、中断向量表到SRAM的copy和偏移、基础MPU的配置。 在mian函数开始调用driver_init即可,产品开发中不需要LCD和串口打印可配置LCD_DEBUG为0或直接删除对应代码: 提供了机器周期延时、us延时、ma延时函数,采用了仅查询方式实现,支持函数重入、ROTS下调用等。 提供了定时任务函数指针可方便增加一些简单的定时任务,配置时间值并指向函数即可自动调用执行: • driver_public.h 测试例程功能时,在该头文件中可以选择LCD打印信息,并选择对应的屏幕类型,例程结果会显示在LCD上,不使用LCD时LCD_DEBUG配置0即可; 该文件中预留了分散加载的宏定义,可以方便的指定变量、函数位置,需要配合工程配置以及SCT文件使用: • driver_xx.c\bsp_xx.c中定义接口和参数 在驱动文件上方提供了注册接口或参数的示例,可参考修改即可: ○ 普通GPIO: GPIO_DEF括号内内容分别是:注册名称、PORT、PIN、GPIO模式、默认电平、IO中断回调函数;需要增加或者修改可以复制模版后修改名称和参数。 调用驱动时将注册名称指针传输调用: ○ UART、SPI、I2C等: 定义USART时参考模版分别定义TX、RX、DMA通道,USART波特率和模式,如没有使用DMA任意填写参数; 通信类外设有三个模式:MODE_POLL、MODE_DMA、MODE_INT可选,根据需要选择配置,也可以应用中修改结构体参数并重初始化来灵活变更模式。 本教程由GD32 MCU方案商聚沃科技原创发布,了解更多GD32 MCU教程以及开发板资料,关注聚沃科技官网 GD32MCU技术交流群:859440462
|