错误 #3413
ARM板卡上,RLC AM的pollReTxTmr定时器启动时,协议栈CRASH,并报bus error,X86上无此问题。
描述
ARM板卡上,RLC AM的pollReTxTmr定时器启动时,协议栈CRASH,并报bus error,X86上无此问题。此代码为原始STE1.0代码,原代码在X86平台上运行无此问题(UU测试定会启动该代码),STE3.0 TRUNK最新代码在X86上验证,亦无此问题
历史记录
由 王 艳芳 更新于 12 天 之前
- 计划完成日期 被设置为 2025-05-28
- 状态 从 新建 变更为 已解决
- 开始日期 从 2025-05-28 变更为 2025-05-27
- % 完成 从 0 变更为 100
- 预期时间 被设置为 8.00 小时
【问题原因】多次尝试后,问题定位为pollReTxTmr数据结构的起始地址未对齐。ARM 架构对内存访问的对齐要求比 x86 更严格。如果定时器结构体(struct rte_timer)的地址未按 CPU 要求对齐(如 4 字节或 8 字节对齐),会触发总线错误。原pollReTxTmr为wnRlcAmTxEnt结构体的一个变量,该结构体按字节排列,所以导致定时器地址不满足CPU要求。
【解决方案】修改pollReTxTmr的内存分配方式为动态申请内存