硬汉嵌入式论坛

 找回密码
 立即注册
查看: 407|回复: 0
收起左侧

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

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2023-7-4 04:22:45 | 显示全部楼层 |阅读模式
数据DCache:

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

下载 (4).png

指令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


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 02:59 , Processed in 0.237888 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表