可以利用在线硬件仿真,在写数据前后设置断点,前后时间一减就出来了;也可以利用定时器时间戳来实现,道理一样
你可以写一个测试代码
1擦出flash
2开启定时器计数,
3写入一个字节
4停止计数
5读取计数,换算成时间
注意测试时候不要用其他中断,可以多写几个数计算写平均值
一般是按读写一个页来说的,STM32的Flash一般是按页来操作的,不是按字节,所以,测量时,最好是写一个比较大的数据,使用IO反转的方式测量时间
大约是在30us左右
一般对flash来说,写数据分两种情况
1. 是已经初始化后写,
2. 是敷写,就是已有数据,需要用新数据改写
因为flash特性,2比1 的时间多很多(要页操作,对一个页面内的数据都要经过 读取出来,擦除页面,改写个别位置,重新写入)。
所以对flash来说,最好有一定的管理方案,方便更新个别变量值。
看怎么写,因为写flash涉及到将器件的flash解锁,然后写入,然后要再上锁,执行上下锁的时间也要算进去,所以连续写很多个字节,然后平均一个字节的时间,与只写一个字节的时间,是不一样的,后者要长
然后计时可以用一个定时器,或者用MDK-ARM自带的那个看程序运行时间的功能