eric2013 发表于 2023-7-4 04:22:45

关于H7-TOOL的RTOS Trace更好的处理指令ICache和数据DCache问题

数据DCache:

这个没什么技巧可说,只要是开了Cache,勾上TOOL的这个地方即可:



指令ICache:

之前搞RTX5,uCOS-III和ThreadX的时候没有遇到过这种问题。搞uCOS-II,出现了这么个问题,主要是因为uCOS-II有个debug文件,里面记录了部分系统信息

而且这些信息是存储到Flash里面,不是RAM里面。如果Flash开启了指令Cache,H7-TOOL通过SWD访问,也会有影响。

针对这个问题,可以采用数据Cache相同的方式处理,不过实际测试发现,Trace初始化阶段,每次访问都是对的,所以仅需初始化阶段访问一次即可。这样就Lua代码实现就简洁很多了

      OSVersionNbr = pg_read16(OSVersionNbr)
      OSEventMax = pg_read16(OSEventMax)
      OSEventSize = pg_read16(OSEventSize)
      OSLowestPrio = pg_read16(OSLowestPrio)
      OSEventNameEn = pg_read16(OSEventNameEn)

      OSFlagMax = pg_read16(OSFlagMax)
      OSFlagGrpSize = pg_read16(OSFlagGrpSize)
      OSFlagNameEn = pg_read16(OSFlagNameEn)
      OSFlagWidth = pg_read16(OSFlagWidth)

      if(OSLowestPrio <= 63) then
                OS_EVENT_TBL_SIZE = OSLowestPrio//8 + 1
      else
                OS_EVENT_TBL_SIZE = OSLowestPrio//16 + 1
      end

页: [1]
查看完整版本: 关于H7-TOOL的RTOS Trace更好的处理指令ICache和数据DCache问题