keyboard 发表于 2025-1-21 10:51

HC32L110.h寄存器结构体定义勘误

本帖最后由 keyboard 于 2025-1-21 10:54 编辑

HC32L110,使用高级定时器时发现偏移地址0x70开始的四个寄存器(STFLR、HSTAR、HSTPR、HCELR)结构体定义有误,导致后续寄存器(其中包括中断标志IFR)偏移地址错误。
文件路径:HC32L110_DDL_Rev1.3.1\mcu\common\hc32l110.h
typedef struct
{
    __IO uint32_t CMAF                      : 1;
    __IO uint32_t CMBF                      : 1;
    __IO uint32_t CMCF                      : 1;
    __IO uint32_t CMDF                      : 1;
    uint32_t RESERVED4                      : 2;
    __IO uint32_t OVFF                      : 1;
    __IO uint32_t UDFF                      : 1;
    __IO uint32_t DTEF                      : 1;
    uint32_t RESERVED9                      :12; -----> 应为13
    __IO uint32_t VPERNUM                   : 3;
    uint32_t RESERVED24                     : 7; ----> 应为6
    __IO uint32_t RSV                     : 1; ------> 此行删除
    __IO uint32_t DIRF                      : 1;
} stc_adt_stflr_field_t;

由于位域总数超过了32,导致后续寄存器偏移量会顺延。


地瓜patch 发表于 2025-1-21 21:11

高手,厉害

申小林一号 发表于 2025-1-22 09:03

看看

keyboard 发表于 2025-1-22 20:51

地瓜patch 发表于 2025-1-21 21:11
高手,厉害

更新已下载,谢谢!

wyde518 发表于 2025-1-23 09:57

本帖最后由 wyde518 于 2025-1-23 10:17 编辑

好像1.32版这是把 RSV去掉了

一点点0321 发表于 2025-4-30 22:28

由于位域总长度超过32位,寄存器偏移量会计算错误,影响到后续寄存器的访问。

han0097 发表于 2025-7-26 21:51

wyde518 发表于 2025-1-23 09:57
好像1.32版这是把 RSV去掉了

你的意思是没问题了?

jf101 发表于 2025-7-31 17:10

寄存器结构体定义
页: [1]
查看完整版本: HC32L110.h寄存器结构体定义勘误