ZHCZ030A March   2024  – April 2025 AM67 , AM67A , TDA4AEN-Q1 , TDA4VEN-Q1

 

  1.   1
  2. 1受影响的模块
  3. 2命名规则、封装编号法和修订版本标识
    1. 2.1 器件和开发支持工具命名规则
    2. 2.2 支持的器件
    3. 2.3 封装编号法和修订版本标识
  4. 3器件修订版本 1.0 使用说明和公告
    1. 3.1 器件修订版本 1.0 使用说明
      1.      i2134
    2. 3.2 器件修订版本 1.0 公告
      1.      i2049
      2.      i2062
      3.      i2097
      4.      i2120
      5.      i2137
      6.      i2160
      7.      i2189
      8.      i2190
      9.      i2196
      10.      i2199
      11.      i2208
      12.      i2242
      13.      i2243
      14.      i2249
      15.      i2253
      16.      i2278
      17.      i2279
      18.      i2310
      19.      i2311
      20.      i2312
      21.      i2326
      22.      i2330
      23.      i2351
      24.      i2362
      25.      i2366
      26.      i2372
      27.      i2383
      28.      i2399
      29.      i2401
      30.      i2407
      31.      i2409
      32.      i2410
      33.      i2419
      34.      i2424
      35.      i2431
      36.      i2436
      37.      i2457
      38.      i2478
  5.   商标
  6. 4修订历史记录

i2399

C7x:CPU NLC 模块在中断时未清除状态

详细信息:

在以下情况下将会发生数据损坏:

  1. 一个应用程序正在运行,并涉及任务切换。在这种情况下,至少有 2 个任务可能使用 NLC。
  2. 当为任务 A 提供中断时,发出了一条 NLCINIT,然后是 TICK。此操作最终会设置 NLC 模块中的一些内部状态,说明我们需要在下一条 TICK 时将 ILCNT_INIT 值重新加载到 ILCNT,因为它计算出的转发用例已刷新。在接到中断时,该状态未被正确清除。
  3. ISR 执行任务切换并切换到任务 B,任务 B 也在运行 NLC 代码。要返回到的 NLC 代码需要继续进行,并且其 ILCNT_INIT 值与原任务中的 NLC 循环不同。
  4. 从 ISR 返回后,下一条 TICK 会因状态损坏最终将 ILCNT 设置为错误的值 (ILCNT_INIT - 2)。

此时 ILCNT 已损坏,NLC 循环将执行错误次数的迭代,从而导致数据损坏。

权变措施:

在保存上下文的过程中,在 ISR 中发出 NLCINIT(参数无关紧要,随后无需发出 TICK/BNL)。权变措施不会影响性能。