数据DCache:
这个没什么技巧可说,只要是开了Cache,勾上TOOL的这个地方即可:
指令ICache:
之前搞RTX5,uCOS-III和ThreadX的时候没有遇到过这种问题。搞uCOS-II,出现了这么个问题,主要是因为uCOS-II有个debug文件,里面记录了部分系统信息
而且这些信息是存储到Flash里面,不是RAM里面。如果Flash开启了指令Cache,H7-TOOL通过SWD访问,也会有影响。
针对这个问题,可以采用数据Cache相同的方式处理,不过实际测试发现,Trace初始化阶段,每次访问都是对的,所以仅需初始化阶段访问一次即可。这样就Lua代码实现就简洁很多了
[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
|