S32K144 的Cache

在s32k144中,有4KB的指令和数据缓存--cache。

当cache使能后可以将CM4F访问的指令和数据保存在cache中,每次内核取指令时会优先读取cache中是否存在,若存在直接取值,若不存在 则再去Pflash 或ram中取值。提高了cpu内核的工作效率

S32K144cache是通过LMEM(Local memory controller)模块进行配置的。LMEM负责地址和数据总线的解码,并将其传输到ARM内核。cache是LMEM的子模块,它是一块高速内存,存储了部分地址信息和相关数据。cache的目的是减少内存的平均访问时间,一般情况下是自我管理自动更新的。\[2\] 要配置S32K144cache,可以通过配置LMEM的寄存器来实现。在代码中,可以使用LMEM->PCCCR寄存器来配置cache控制寄存器。例如,可以使用以下代码来启用cache并清除way0和way1的内容: ``` void McuCacheConfig(void) { // Enable Cache // Flush and enable I cache and write buffer LMEM->PCCCR = LMEM_PCCCR_ENCACHE_MASK // Cache enabled | LMEM_PCCCR_INVW1_MASK // clear way1 | LMEM_PCCCR_INVW0_MASK // clear way0 | LMEM_PCCCR_GO_MASK; //直接初始化cache } ``` 这样就可以配置S32K144cache了。\[1\]另外,S32K144的时钟可以通过使用S32DDS中提供的clock manager模块进行可视化配置。可以按照以下步骤进行配置:1. 在processor expert中选择添加clock_manager组件;2. 在Clock Config中增加configurations;3. 在界面中配置各个参数;4. 配置完成后,在Generated_Code/clockMan1.c中生成配置好的结构体;5. 在主函数中使用CLOCK_SYS_Init()和CLOCK_SYS_UpdateConfiguration()函数来初始化和使能时钟。例如: ``` CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT, g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT); CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_AGREEMENT); ``` 这样就可以完成S32K144的时钟配置了。\[3\] #### 引用[.reference_title] - *1* *2* *3* [s32k144基础](https://blog.csdn.net/weixin_43626341/article/details/115022876)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值