2579|6

1942

帖子

2

TA的资源

版主

楼主
 

【AT-START-F403A测评】Part6:片上Flash性能测试 [复制链接]

 

1.介绍

上一篇讲了Flash的Demo,这一篇来讲一下【AT-START-F403A】的性能,了解Flash的性能之后还是比较好,为以后在这个芯片上开发时对Flash读写时间的把握,所以还是要来一贴特意写一下的!

2.Flash内存

首先查看芯片手册,可以看到板载的主控是1024K字节的,这个大小还是非常够用的,基本上应用开发都是足够的。

然后看一下Flash的地址主要存在哪一块,可以看到1024K字节可以存到【0x080FFFFF】地址上,所以到时候开项目时分配地址就可以存到这个范围,当然需要看一下程序存在哪一块了。

讲工程生成好的HEX文件,通过HEX文件查看器,我这里选择了【STM32 ST-LINK Utility】软件来查看代码分配的地址,可以看到,目前代码只到存到了【0x08002A40】地址,所以从【0x08002A40】地址后面都是可以存数据的,那么我还是直接用例程中的地址来存数据。

修改例程中的代码,有个不检测Flash写入数据函数【FLASH_Write_NoCheck】需要在flash.H文件中添加声明才不会报错。

#define TEST_BUFEER_SIZE          65536/4
#define TEST_FLASH_ADDRESS_START  (0x8000000+1024*522)
/* Private typedef -----------------------------------------------------------*/
typedef enum {FAILED = 0, PASSED = !FAILED} TestStatus;

u16 BufferWrite[TEST_BUFEER_SIZE];   
u16 BufferRead[TEST_BUFEER_SIZE];  
u32 Index=0;
TestStatus Buffercmp(uint16_t* pBuffer1, uint16_t* pBuffer2, uint16_t BufferLength);

int main(void)
{

  Delay_init();
  UART_Print_Init(115200);	
  AT32_LEDn_Init(LED2);				
  AT32_LEDn_Init(LED3);			
	printf("Flash Demo Start!\r\n");

  //Fill BufferWrite data to test
  for(Index=0;Index<TEST_BUFEER_SIZE;Index++)
  {
    BufferWrite[Index]=Index;
  }
		Delay_ms(1000);
		printf("Write Start!\r\n");
    FLASH_Write(TEST_FLASH_ADDRESS_START,BufferWrite,TEST_BUFEER_SIZE);		//Write data to flash
		printf("Write Success!\r\n");
	
		Delay_ms(1000);
		printf("Write NoCheck Start!\r\n");
    FLASH_Write_NoCheck(TEST_FLASH_ADDRESS_START,BufferWrite,TEST_BUFEER_SIZE);		//Write data to flash
		printf("Write NoCheck Success!\r\n");
	
		Delay_ms(1000);
		printf("Read Start!\r\n");
    FLASH_Read(TEST_FLASH_ADDRESS_START,BufferRead,TEST_BUFEER_SIZE);   	//read data from flash
		printf("Read Success!\r\n");

  if(Buffercmp(BufferWrite,BufferRead,TEST_BUFEER_SIZE)==PASSED)        //Compare the buffer
  {
    AT32_LEDn_ON(LED2);
    AT32_LEDn_OFF(LED3);    
  }
  else
  {
    AT32_LEDn_OFF(LED2);
    AT32_LEDn_ON(LED3);  
  }

  while(1)
  {

  }
}

然后连续按下三次复位键,打印出来的内容如下,写入的字节数为【32769】可以看到写入Flash时校验时间将近670ms,而未校验写入Flash时间只需要不到20ms,读取Flash数据时间极小。

需要校验写入Flash的速度为48.9字节/S。

不需要校验写入Flash的速度为1638.4字节/S。

3.结论

可以看出来,写Flash最花时间是在校验上,如果可以自己写一个文件管理系统,那么就可以减少Flash写入的时间,从而达到数据管理最高效!

最新回复

雅特力AT-START-F403A测评 汇总贴:https://bbs.eeworld.com.cn/thread-1143018-1-1.html   详情 回复 发表于 2020-12-21 14:37
点赞 关注
 
 

回复
举报

1万

帖子

2853

TA的资源

管理员

来自 7楼
 

雅特力AT-START-F403A测评

汇总贴:https://bbs.eeworld.com.cn/thread-1143018-1-1.html

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

沙发
 

谢谢分享,测量的时间很精确啊。

点评

用芯片自己的定时器会更精确呢!  详情 回复 发表于 2020-12-14 21:23
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

1942

帖子

2

TA的资源

版主

板凳
 
freebsder 发表于 2020-12-14 20:54 谢谢分享,测量的时间很精确啊。

用芯片自己的定时器会更精确呢!

点评

flash写毕竟是偶发操作,能符合手册给的指标的80%我觉得就够了。写flash快3,5ms不影响使用。  详情 回复 发表于 2020-12-15 18:19
 
 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

4
 
w494143467 发表于 2020-12-14 21:23 用芯片自己的定时器会更精确呢!

flash写毕竟是偶发操作,能符合手册给的指标的80%我觉得就够了。写flash快3,5ms不影响使用。

点评

也是哈!  详情 回复 发表于 2020-12-15 20:31
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

1942

帖子

2

TA的资源

版主

5
 
freebsder 发表于 2020-12-15 18:19 flash写毕竟是偶发操作,能符合手册给的指标的80%我觉得就够了。写flash快3,5ms不影响使用。

也是哈!

点评

读速度可以试试和手册比较。  详情 回复 发表于 2020-12-16 21:14
 
 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

6
 

读速度可以试试和手册比较。

个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表