存储器加速模块配置寄存器详解-FlashCFG
需积分: 30 152 浏览量
更新于2024-08-06
收藏 13.01MB PDF 举报
本文档主要介绍了LPC17XX系列微控制器中的存储器加速模块配置寄存器(FLASHCFG)的相关知识,以及如何通过这个寄存器来调整存储器的访问性能。存储器加速模块用于提高Flash内存的读取速度,尤其是在执行对时间要求较高的代码时,能够提供更高效的运行环境。
在LPC17XX系列微控制器中,存储器加速模块配置寄存器(FLASHCFG)位于地址0x400F C000,复位值为0x507A。该寄存器包含7个配置位,其中16位的FETCHCFG和32位的DATACFG用于决定指令取指和数据访问的缓冲方式,位4的ACCEL用于开启或关闭加速功能,位5的 PREFEN 控制预取指操作。
FETCHCFG(位1:0):
- 00:Flash中的指令取指不使用缓冲,每次CPU执行时都会直接从Flash读取,可能导致较慢的访问速度。
- 01:使用一个缓冲区处理所有指令取指,提高取指效率。
- 10:所有缓冲区可用于指令取指缓冲,进一步提升性能。
- 11:保留,不推荐使用。
DATACFG(位3:2):
- 00:Flash数据访问不使用缓冲,每次CPU请求数据时会直接读取Flash,可能影响速度。
- 01:使用一个缓冲区处理所有数据访问,降低延迟。
- 10:所有缓冲区可用于数据访问缓冲,增强数据读取速度。
- 11:保留,不应设置为此值。
ACCEL(位4):
- 0:禁用Flash加速,每次CPU读取Flash时会按照FlASHTIM+1个时钟周期执行,适合对实时性要求较低的场景。
- 1:启用Flash加速,结合其他FLASHCFG配置位可以显著提升操作速度,适用于需要高性能的代码段。
PREFEN(位5):
- 0:不执行预取指,即不预先读取下一个指令。
- 1:如果FETCHCFG字段不是00,系统会自动预读取紧跟当前执行地址的Flash行,有助于连续指令的快速执行。
改变存储器加速模块的操作模式会使得加速器内的所有内容失效,需要重新执行Flash读操作以确保与CPU操作同步。用户可以根据应用需求通过编程修改这些寄存器位,优化存储器访问性能,平衡速度与预测性。LPC17XX系列微控制器的设计旨在提供灵活的配置选项,以满足不同应用场景的需求。
137 浏览量
149 浏览量
1962 浏览量
点击了解资源详情
152 浏览量
113 浏览量
2021-06-30 上传
147 浏览量
141 浏览量
Big黄勇
- 粉丝: 66
- 资源: 3905
最新资源
- go:Golang演示仓库
- dotfiles:这是我的个人档案
- mondrian3.x+mysql5.7所需要的材料.zip
- 电信设备-基于负性光刻胶和掩膜移动曝光工艺的微透镜阵列制备方法.zip
- rom-fmp:用于rom-rb数据映射和持久性gem的ruby filemaker适配器
- Optinvent Chat & webRTC Videoconf-crx插件
- testtest
- SysEx Librarian For Mac_v1.4
- 折纸模拟器
- SQLite-wrapper:一个围绕 SQLite 的小而简单的 C++ 包装器
- phpTCadmin-开源
- DatingApp_2
- Video Downloader for Tiktok-crx插件
- postgresql-11.3-1-windows-x64.zip
- 高效搭建企业saas产品服务官网figma&sketch&adobe_xd网页模板素材.zip
- 点