StarrismNE 发表于 2025-2-20 14:21

在 BOOT 区域与用户 FLASH 区域之间的函数跳转理论上有 1us 的延时?

请问这个1us的延时是怎么计算出来的?是因为boot和flash的存储类型不一样吗?还有就是理论1us,那实际会不会高很多呢?

WCHTech2 发表于 2025-2-25 16:25

您好,1us是仿真得到的,是在主频48M、1等待下的仿真结果,实际跳转时间和主频以及flash等待时间直接关联,和存储类型无关。对于003、641系列,同条件下跳转时间是固定的,但是放到BOOT区域执行的函数,每次去取址都会额外增加两次的跳转时间,建议尽可能将初始化函数放在BOOT区域运行,而产品功能类程序,或者频繁调用的程序正常放在FLASH中,避免因为运行速度影响产品功能,其他00x系列不需要考虑跳转时间问题

guijial511 发表于 2025-3-3 22:05

这个延时理论上和主频有关系才对

huquanz711 发表于 2025-3-4 07:44

这个延时一般情况下没什么影响吧

Betty996 发表于 2025-3-18 14:19

在嵌入式系统中,Boot 区域 和 用户 Flash 区域 之间的 函数跳转 可能会引入一定的延时,但这个延时通常非常短(如你提到的 1us)。

Carina卡 发表于 2025-3-18 17:31

从 Boot 区域跳转到用户 Flash 区域时,CPU 需要从新的地址读取指令,这会导致 Flash 访问延迟。

across往事 发表于 2025-3-18 22:05

跳转操作会导致 CPU 的指令流水线刷新,重新从目标地址开始取指和执行。

vevive 发表于 2025-3-19 08:55

如果芯片有指令缓存(ICache),跳转可能导致缓存未命中,从而增加延时。

Whosheart 发表于 2025-3-19 10:32

假设 CPU 主频为 48MHz,一个时钟周期约为 20.83ns。Flash 存储器的访问时间通常为几十个时钟周期(例如 50 个周期),即约 1us。

Augenstern星星 发表于 2025-3-19 18:20

流水线刷新和重新取指可能需要几十个时钟周期。跳转操作的总延时可能在 1us 左右。

limerenceforu 发表于 2025-3-19 23:13

Boot 区域和用户 Flash 区域在物理上是相同的 Flash 存储器,访问延迟和性能特性一致。

MercuryStar 发表于 2025-3-20 10:16

一般来说,Boot 区域和用户 Flash 区域位于不同的地址空间,跳转时需要切换地址。

alkaidnext 发表于 2025-3-20 13:09

理论上的 1us 延时是基于理想情况的计算,假设 Flash 访问时间和流水线刷新时间固定。实际延时可能会受到以下因素的影响:Flash 等待状态:如果 Flash 访问需要插入等待状态(Wait States),延时会增加。缓存命中率:如果指令缓存未命中,延时会增加。

Charlene沙 发表于 2025-3-20 19:00

在实际应用中,跳转延时通常在 1us 到几 us 之间,具体取决于芯片的设计和系统状态。
页: [1]
查看完整版本: 在 BOOT 区域与用户 FLASH 区域之间的函数跳转理论上有 1us 的延时?