打印

GD32新版固件库中,不再提供外设的寄存器描述

[复制链接]
2671|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
le062|  楼主 | 2018-8-18 23:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 le062 于 2018-8-19 09:08 编辑

GD32新版固件库中,不再提供外设的寄存器描述,反而使用一系列的宏定义。
个人感觉是一种倒退,对于驱动开发效率有所影响。
示例:
老版本GPIO:
typedef struct
{
    __IO uint32_t CTLR;        /*!< GPIO port mode register,                       Address offset: 0x00      */
    __IO uint16_t OMODE;       /*!< GPIO port output type register,                Address offset: 0x04      */
    uint16_t RESERVED0;        /*!< Reserved,                                                      0x06      */
    __IO uint32_t OSPD;        /*!< GPIO port output speed register,               Address offset: 0x08      */
    __IO uint32_t PUPD;        /*!< GPIO port pull-up/pull-down register,          Address offset: 0x0C      */
    __IO uint16_t DIR;         /*!< GPIO port input data register,                 Address offset: 0x10      */
    uint16_t RESERVED1;        /*!< Reserved,                                                      0x12      */
    __IO uint16_t DOR;         /*!< GPIO port output data register,                Address offset: 0x14      */
    uint16_t RESERVED2;        /*!< Reserved,                                                      0x16      */
    __IO uint32_t BOR;         /*!< GPIO port bit set/reset registerBSRR,          Address offset: 0x18      */
    __IO uint32_t LOCKR;       /*!< GPIO port configuration lock register,         Address offset: 0x1C      */
    __IO uint32_t AFS[2];      /*!< GPIO alternate function HIGH register,         Address offset: 0x20-0x24 */
    __IO uint16_t BCR;         /*!< GPIO bit reset register,                       Address offset: 0x28      */
    uint16_t RESERVED3;        /*!< Reserved,                                                      0x2A      */
}GPIO_TypeDef;
#define GPIOA                 ((GPIO_TypeDef *)GPIOA_BASE)
#define GPIOB                 ((GPIO_TypeDef *)GPIOB_BASE)
#define GPIOC                 ((GPIO_TypeDef *)GPIOC_BASE)
#define GPIOD                 ((GPIO_TypeDef *)GPIOD_BASE)
#define GPIOF                 ((GPIO_TypeDef *)GPIOF_BASE)



新版本GPIO:
/* GPIOx(x=A,B,C,D,F) definitions */
#define GPIOA                      (GPIO_BASE + 0x00000000U)
#define GPIOB                      (GPIO_BASE + 0x00000400U)
#define GPIOC                      (GPIO_BASE + 0x00000800U)
#define GPIOD                      (GPIO_BASE + 0x00000C00U)
#define GPIOF                      (GPIO_BASE + 0x00001400U)

/* registers definitions */
#define GPIO_CTL(gpiox)            REG32((gpiox) + 0x00U)    /*!< GPIO port control register */
#define GPIO_OMODE(gpiox)          REG32((gpiox) + 0x04U)    /*!< GPIO port output mode register */
#define GPIO_OSPD0(gpiox)          REG32((gpiox) + 0x08U)    /*!< GPIO port output speed register 0 */
#define GPIO_PUD(gpiox)            REG32((gpiox) + 0x0CU)    /*!< GPIO port pull-up/pull-down register */
#define GPIO_ISTAT(gpiox)          REG32((gpiox) + 0x10U)    /*!< GPIO port input status register */
#define GPIO_OCTL(gpiox)           REG32((gpiox) + 0x14U)    /*!< GPIO port output control register */
#define GPIO_BOP(gpiox)            REG32((gpiox) + 0x18U)    /*!< GPIO port bit operation register */
#define GPIO_LOCK(gpiox)           REG32((gpiox) + 0x1CU)    /*!< GPIO port configuration lock register */
#define GPIO_AFSEL0(gpiox)         REG32((gpiox) + 0x20U)    /*!< GPIO alternate function selected register 0 */
#define GPIO_AFSEL1(gpiox)         REG32((gpiox) + 0x24U)    /*!< GPIO alternate function selected register 1 */
#define GPIO_BC(gpiox)             REG32((gpiox) + 0x28U)    /*!< GPIO bit clear register */
#define GPIO_TG(gpiox)             REG32((gpiox) + 0x2CU)    /*!< GPIO port bit toggle register */
#define GPIO_OSPD1(gpiox)          REG32((gpiox) + 0x3CU)    /*!< GPIO port output speed register 1 */



沙发
xyz549040622| | 2018-8-19 17:04 | 只看该作者
我觉得新版本更规范了。

使用特权

评论回复
板凳
angerbird| | 2018-8-23 21:15 | 只看该作者
这代码里面描述还是很详细的呀

使用特权

评论回复
地板
HKingS| | 2018-8-28 14:00 | 只看该作者
厂家就是这样,进进退退,就比如ST的多种库一样,总是各种修改。

使用特权

评论回复
5
jiangjiayu| | 2021-4-8 15:49 | 只看该作者
我也在找老版本,新版本的执行效率感觉变低了

使用特权

评论回复
6
caigang13| | 2021-4-8 18:46 | 只看该作者
看起来确实不便利

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

435

帖子

4

粉丝