当前位置: 首页 > article >正文

杰发科技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值


http://www.kler.cn/a/274640.html

相关文章:

  • 进程与线程以及如何查看
  • C# winform 字符串通过枚举类型转成int类型的数据
  • Flask内存马学习
  • 计算机基础 试题
  • AlipayHK支付宝HK接入-商户收款(PHP)
  • 【大模型】GraphRAG技术原理
  • 静态页面负载均衡
  • 【NLP笔记】Transformer
  • 多数据源 - dynamic-datasource | 集成 HikariCP 连接池
  • 安卓面试题多线程 96-100
  • es 集群安全认证
  • 【SpringSecurity】十三、基于Session实现授权认证
  • 使用OpenRewrite自动做框架升级比如Spring Boot
  • Siloed No More: How AI-Driven Tech Stack Consolidation Boosts Revenue
  • C# 使用OpenCvSharp4将Bitmap合成为MP4视频的环境
  • O2OA红头文件流转与O2OA版式公文编辑器基本使用
  • java基础-Test03:图书管理系统 超详细注释
  • vue-router(v4.0) 基础3
  • Panasonic松下PLC如何数据采集?如何实现快速接入IIOT云平台?
  • fs方法举例
  • 蓝桥杯day4刷题日记
  • 算法笔记p335堆
  • 景联文科技:提供通用多模态数据,助力AI多模态领域实现飞跃式发展
  • CMU 10-414/714: Deep Learning Systems --hw3
  • HTML、XHTML和HTML5 的区别是什么?
  • 《优化接口设计的思路》系列:第九篇—用好缓存,让你的接口速度飞起来