存储器加速模块配置寄存器详解-FlashCFG

需积分: 30 41 下载量 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系列微控制器的设计旨在提供灵活的配置选项,以满足不同应用场景的需求。