杰发科技AC7801——Flash数据读取

0. 简介

因为需要对Flash做CRC校验,第一步先把flash数据读出来。

1. 代码

代码如下所示

#include "ac780x_eflash.h"
#include "string.h"
#define TestSize 1024 ///< 4K
#define TestAddressStart 0x08000000
uint8_t Data[7000];
int main(void)
{
	unsigned int i = 0;
	InitDebug();
	EFLASH_UnlockCtrl();
	EFLASH_Read(TestAddressStart, (uint32_t *)Data, TestSize);
	EFLASH_Read(TestAddressStart + TestSize, (uint32_t *)Data + 256, TestSize);
	EFLASH_Read(TestAddressStart + TestSize * 2, (uint32_t *)Data + 256 * 2, TestSize);
	EFLASH_Read(TestAddressStart + TestSize * 3, (uint32_t *)Data + 256 * 3, TestSize);
	EFLASH_Read(TestAddressStart + TestSize * 4, (uint32_t *)Data + 256 * 4, 304);
	EFLASH_LockCtrl();
	printf("0x8000000  ");
	while (i < TestSize * 5 + 304)
	{
		printf("%02x", Data[i]);
		i++;
		if (i % 16 == 0)
		{
			printf("\r\n0x%7x  ", 0x8000000 + i);
		}
	}

	while (1)
	{
	}
}

2. 注意点

每次读取数据不要太多,太多会导致程序无法运行,这里测试到1024即可,后续请读着自行测试。

缓存数组尽可能放大一点,否则程序无法执行,我开到64000发现无法运行就放到了7000。

因为地址被强转为32位,所以每次增加首地址需要加256,即256*4=1024。

最后不足1024个数从ATCLinkTool查看总共数据,减去第72行的(uint32_t *)Data + 256 * 4即可。

最后4位是CRC,所以减去这4位用来计算FLASH的CRC值

相关推荐

  1. 科技AC7801——支持的纠错功能

    2024-03-20 13:08:06       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-20 13:08:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-20 13:08:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-20 13:08:06       82 阅读
  4. Python语言-面向对象

    2024-03-20 13:08:06       91 阅读

热门阅读

  1. 各种排序算法原理

    2024-03-20 13:08:06       37 阅读
  2. Git修改提交 --amend

    2024-03-20 13:08:06       33 阅读
  3. im-system学习

    2024-03-20 13:08:06       35 阅读
  4. openssl3.2 - exp - aes-128-cbc

    2024-03-20 13:08:06       30 阅读
  5. Spring Boot + Vue 实现文件导入导出功能

    2024-03-20 13:08:06       41 阅读