STM32
直播中

陈键

7年用户 1004经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

FLM下载算法FlashDevice成员参数定义的超时时间如何计算?



  • #ifdef STM32F10x_128
  • struct FlashDevice const FlashDevice  =  {
  •    FLASH_DRV_VERS,             // Driver Version, do not modify!
  •    "STM32F10x Med-density Flash", // Device Name (128kB/64kB/32kB)
  •    ONCHIP,                     // Device Type
  •    0x08000000,                 // Device Start Address
  •    0x00020000,                 // Device Size in Bytes (128kB)
  •    1024,                       // Programming Page Size
  •    0,                          // Reserved, must be 0
  •    0xFF,                       // Initial Content of Erased Memory
  •    100,                        // Program Page Timeout 100 mSec
  •    500,                        // Erase Sector Timeout 500 mSec

  • // Specify Size and Address of Sectors
  •    0x0400, 0x000000,           // Sector Size 1kB (128 Sectors)
  •    SECTOR_END
  • };
  • #endif

复制代码


100, // Program Page Timeout 100 mSec

500, // Erase Sector Timeout 500 mSec

1、这个超时时间是根据程序大小比如32K,页大小1K,调用32次函数ProgramPage或EraseSector函数的总时间吗?
2、这个时间和SW时钟有关系吗?



回帖(1)

王飞

2024-3-19 17:46:10
FLM下载算法FlashDevice成员参数定义的超时时间是通过以下计算得到的:

1. 首先,需要知道FLASH的编程时间和擦除时间。这些时间取决于芯片和具体操作。

2. 其次,根据芯片的FLASH编程和擦除时间,可以计算出FLASH的最大编程和擦除等待时间。

3. 然后,根据下载速度和数据大小,可以计算出下载时间。

4. 最后,根据FLASH的最大编程和擦除等待时间和下载时间,可以确定超时时间。

由于没有提供具体的代码或更多的信息,以上是一种通用的计算超时时间的方法。具体的实现可能因芯片和需求而有所不同。请参考芯片的数据手册或相关的文档,查找有关具体超时时间的信息。
举报

更多回帖

×
20
完善资料,
赚取积分