ZHCZ052C March   2023  – October 2025 AM62A1-Q1 , AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1

 

  1.   1
  2. 1使用说明和公告模型
    1. 1.1 支持的器件
  3. 2器件使用说明和公告
    1. 2.1 器件使用说明
      1.      i2351
      2.      i2330
      3.      i2372
      4.      i2424
    2. 2.2 器件公告
      1.      i2049
      2.      i2062
      3.      i2087
      4.      i2097
      5.      i2134
      6.      i2189
      7.      i2196
      8.      i2199
      9.      i2208
      10.      i2249
      11.      i2278
      12.      i2279
      13.      i2310
      14.      i2311
      15.      i2312
      16.      i2366
      17.      i2371
      18.      i2120
      19.      i2137
      20.      i2190
      21.      i2253
      22.      i2373
      23.      i2383
      24.      i2401
      25.      i2407
      26.      i2409
      27.      i2410
      28.      i2376
      29.      i2399
      30.      i2413
      31.      i2414
      32.      i2419
      33.      i2420
      34.      i2421
      35.      i2422
      36.      i2423
      37.      i2431
      38.      i2435
      39.      i2160
      40.      i2436
      41.      i2482
      42.      i2464
      43.      i2487
      44.      i2493
  4.   商标
  5.   修订历史记录

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)。权变措施不会影响性能。