写在前面:聚沃科技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可选,根据需要选择配置,也可以应用中修改结构体参数并重初始化来灵活变更模式。
聚沃科技开发板资料下载
http://www.gd32bbs.com/cms/kaifaban.html
GD32MCU技术交流群:859440462
发表评论 取消回复