2395839_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2395839_zh-CN

2395839_zh-CN

[S32K3] [RTD 7.0.1]BCTU模块中的三个问题
我在 RTD 代码版本S32K3_RTD_7_0_1_D2602_ASR_REL_4_9_REV_0000_20260206中发现了 BCTU 模块的三个问题。具体问题如下:
 
问题 1:在文件Adc_TS_T40D34M70I1R0/src/Bctu_Ip.c 的第 1558 行,当前代码使用按位或赋值: BctuBasePtr->FIFOERR |= FifoWatermarkMask;应修改为直接赋值: BctuBasePtr->FIFOERR = FifoWatermarkMask;
 
问题 2:在文件Adc_TS_T40D34M70I1R0/src/Bctu_Ip.c的第 567 行和第 568 行中,现有代码包含不正确的位移操作。原始代码如下所示:
ClrMask |= ((u32Mask & (BCTU_IP_STATUS_FIFO1_OVR_ERR << (Index * 2u))) != 0U) ?(BCTU_FIFOERR_OVR_ERR_FIFO1_MASK << Index) : 0U;
ClrMask |= ((u32Mask & (BCTU_IP_STATUS_FIFO1_UNDR_ERR << (Index * 2u))) != 0U) ?(BCTU_FIFOERR_UNDR_ERR_FIFO1_MASK << 索引) : 0U;
这两行代码应按如下方式修改为正确的换行逻辑:
ClrMask |= ((u32Mask & (BCTU_IP_STATUS_FIFO1_OVR_ERR << Index)) != 0U) ?(BCTU_FIFOERR_OVR_ERR_FIFO1_MASK << (索引 * 2u)) : 0U;
ClrMask |= ((u32Mask & (BCTU_IP_STATUS_FIFO1_UNDR_ERR << Index)) != 0U) ?(BCTU_FIFOERR_UNDR_ERR_FIFO1_MASK << (索引 * 2u)) : 0U;
 
问题 3: MCAL/SDK 代码生成工具与 BCTU 模块的静态源代码之间存在类型不一致对齐问题。在 MCAL 生成的代码( Adc_TS_T40D34M70I1R0/generate_PB/Adc_RegOperations.m中,第 2397 行),头文件和 C 文件中定义的数组统一采用uint32类型。在 SDK 生成的代码中,头文件和 C 文件中的类型定义不一致: eclipse/mcu_data/components/PlatformSDK_S32K3/Bctu_Ip/Bctu_Ip_PBcfg.h中的数组类型(第 249 行)根据BctuFifoDmaRawData选项是否启用,在uint16uint32之间切换,而eclipse/mcu_data/components/PlatformSDK_S32K3/Bctu_Ip/Bctu_Ip_PBcfg.c中的相应数组(第 317 行)固定为uint32类型。在静态代码( Adc_TS_T40D34M70I1R0/src/Bctu_Ip.c中,第 1629 行),传输长度(2 字节或 4 字节)是根据BctuFifoDmaRawData配置动态确定的。当取消选中BctuFifoDmaRawData选项时,会出现以下所有异常问题:
1.对于 SDK 项目:头文件和 C 文件之间数组类型不匹配会导致直接编译失败
2. 对于 MCAL 项目:虽然编译可以成功,但固定的 uint32 数组定义导致一半的内存空间被浪费。此外,每个 uint32 数据单元包含两个 ADC 结果,需要在数据解析期间手动拆分高 uint16 值和低 uint16 值。
以上三个错误存在于官方版本S32K3_RTD_7_0_1_D2602_ASR_REL_4_9_REV_0000_20260206中。我们希望恩智浦软件工程师能在下一个 RTD 版本中修复这些 BCTU 模块缺陷。
Re: [S32K3] [RTD 7.0.1] Three Issues in the BCTU Module

您好@chenwilsoft

您的问题已提交至内部论坛,正在等待设计团队的确认。

Tags (1)
No ratings
Version history
Last update:
14 hours ago
Updated by: