杰发科技AC7801——读取Flash数据做CRC校验

查看Keil的编译结果发现总共6160个字节。计算结果如下,

代码如下

#include "ac780x_crc.h"
#include "ac780x.h"
#include "ac780x_debugout.h"
#include "string.h"
#include "ac780x_eflash.h"#define TestSize 1024 ///< 4K
#define TestAddressStart 0x08000000
uint8_t Data[9000]; // 共6140 Bytesuint32_t tmpResult = 0;                   /* CRC计算结果 */
uint32_t tmpCRCType = CRC_PROTOCOL_32BIT; /* CRC 支持16位和32位长度多项式 */
/*** @prototype main(void)** @param[in] void* @return	 void** @brief  	 main entry.*			 main函数.*/int main(void)
{CRC_ConfigType CRCConfig;memset(&CRCConfig, 0, sizeof(CRCConfig));CRCConfig.crcProtocolType = (CRC_ProtocolType)tmpCRCType;uint32_t CRCSeed = 0;InitDebug(); // Initialize debug UART 1// printf("AC7801: CRC_Demo\r\n");// if (tmpCRCType > 1)// {//     printf("tmpCRCType: 0: CRC-CCITT; 1: CRC-32! \r\n");//     return -1;// }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, TestSize);EFLASH_Read(TestAddressStart + TestSize * 5, (uint32_t *)Data + 256 * 5, TestSize);EFLASH_Read(TestAddressStart + TestSize * 6, (uint32_t *)Data + 256 * 6, 20);EFLASH_LockCtrl();printf("0x8000000  ");unsigned i = 0;while (i < 6160){printf("%02x", Data[i]);i++;if (i % 16 == 0){printf("\r\n0x%7x  ", 0x8000000 + i);}}printf("\r\n");// CRCDataLength = strlen((char *)CRCMsg); // Length of dataif (tmpCRCType == CRC_PROTOCOL_32BIT) // CRC32 configuration{CRCConfig.poly = 0x4C11DB7; // CRC-32 Poly: 0x4C11DB7CRCSeed = 0xFFFFFFFF;       // CRC-CCITT seed: 0xFFFFFFFFCRCConfig.finalXOR = ENABLE;CRCConfig.readTransposeType = CRC_READ_TRANSPOSE_BITS_BYTES;CRCConfig.writeBytesNumOnce = CRC_WRITE_1_BYTE_ONCE;CRCConfig.writeTransposeType = CRC_WRITE_TRANSPOSE_BITS;}// else // CRC16 configuration// {//     CRCConfig.poly = 0x1021;     // CRC-CCITT Poly: 0x1021//     CRCSeed = 0xFFFF;            // CRC-CCITT seed: 0xFFFF//     CRCConfig.finalXOR = ENABLE; // disable final xor//     CRCConfig.readTransposeType = CRC_READ_TRANSPOSE_NONE;//     CRCConfig.writeTransposeType = CRC_WRITE_TRANSPOSE_BITS_BYTES;// }CRC_Init(&CRCConfig);// if (CRCConfig.crcProtocolType == CRC_PROTOCOL_16BIT)// {//     tmpResult = CRC_Check(CRCSeed, &CRCMsg[0], CRCDataLength);//     printf("CRC-CCITT, Poly:0x%X\r\n", CRCConfig.poly);// }// else{tmpResult = CRC_Check(CRCSeed, &Data[0], 6156);printf("CRC-32, Poly:0x%X\r\n", CRCConfig.poly);}printf("CRC result is: 0x%X\r\n", tmpResult);while (1);
}

发现去掉Flash内容后四位的值都是正确的,加上后四位值就不对了,这个据说是Flash的CRC值,但是跟计算出来的去掉4位的值不同。后续有空再慢慢研究。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/755771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html5cssjs代码 026 canvas示例

html5&css&js代码 026 canvas示例 一、代码二、解释 这段HTML代码定义了一个页面&#xff0c;其中包含一个容器和一个canvas元素。通过JavaScript代码&#xff0c;使用canvas绘制了一个矩形、一个填充了颜色的矩形、一个文本以及一个圆形。 一、代码 <!DOCTYPE ht…

nodejs基于vue超市信息管理系统flask-django-php

互联网的快速发展&#xff0c;使世界各地的各种组织的管理方式发生了根本性的变化&#xff0c;我国政府、企业等组织在上个世纪90年代就已开始考虑使用互联网来管理信息。由于以前的种种因素&#xff0c;比如网络的普及率不高&#xff0c;用户对它的认知度不够&#xff0c;以及…

Zenlayer如何将万台设备监控从Zabbix迁移到Flashcat

作为全球首家以超连接为核心的云服务商&#xff0c;Zenlayer 致力于将云计算、内容服务和边缘技术融合&#xff0c;为客户提供全面的解决方案。通过构建可靠的网络架构和高效的数据传输&#xff0c;Zenlayer 帮助客户实现更快速、更可靠的连接&#xff0c;提升用户体验和业务效…

局域网内监控别人电脑屏幕

想要在局域网内可以监控他人的屏幕的方法&#xff0c;无疑是使用一款&#xff0c;屏幕监控软件了。 什么是局域网屏幕监控软件&#xff1f; 局域网屏幕监控软件是一种专门用于监控局域网内电脑屏幕活动的软件工具。它通常集成在局域网监控系统中&#xff0c;能够实时捕捉和记…

使用Java JDBC连接数据库

在Java应用程序中&#xff0c;与数据库交互是一个常见的任务。Java数据库连接&#xff08;JDBC&#xff09;是一种用于在Java应用程序和数据库之间建立连接并执行SQL查询的标准API。通过JDBC&#xff0c;您可以轻松地执行各种数据库操作&#xff0c;如插入、更新、删除和查询数…

2024蓝桥杯每日一题(递归)

备战2024年蓝桥杯 -- 每日一题 Python大学A组 试题一&#xff1a;有序分数 试题二&#xff1a;正则问题 试题三&#xff1a;带分数 试题四&#xff1a;约数之和 试题五&#xff1a;分形之城 试题一&#xff1a;有序分数 【题目描述】 【输入格…

AI换脸软件rope最新更新的蓝宝石中文版下载

rope换脸软件蓝宝石版下载地址&#xff1a;点击下载 最近AI软件非常的火爆&#xff0c;今天就给大家带来一个可以AI替换人脸的工具rope&#xff0c;得益于机器学习技术的不断发展&#xff0c;rope经过深度神经网络的无数次迭代优化&#xff0c;最终得出的模型可以自动学习和识…

Linux调试器-gdb的使用

. 个人主页&#xff1a;晓风飞 专栏&#xff1a;数据结构|Linux|C语言 路漫漫其修远兮&#xff0c;吾将上下而求索 文章目录 gdb简单基础指令Linux调试器-gdb使用背景调试准备工作写一个简单的myprocess.c程序makefile程序debug模式运行修改后的Makefile程序 调试(gdb)listruni…

Excalidraw:绘制图形的新利器

title: Excalidraw&#xff1a;绘制图形的新利器 date: 2024/3/19 17:18:08 updated: 2024/3/19 17:18:08 tags: 绘图工具多人协作数据安全简洁设计浏览器访问Docker部署插件扩展 摘要&#xff1a; Excalidraw是一款简洁设计、直观易用的绘图应用&#xff0c;用户可以通过它创…

【IJCAI】CostFormer即插即用的MVS高效代价体聚合Transformer,FaceChain团队出品

一、论文题目&#xff1a; CostFormer: Cost Transformer for Cost Aggregation in Multi-view Stereo&#xff0c;https://arxiv.org/abs/2305.10320 二、论文简介&#xff1a; 多视角立体是三维重建的一种重要实现方式&#xff0c;该方式会从一系列同一场景但不同视角的二维…

解析JS加密解密中的生成器构造

前言 之前JS解密的客户&#xff0c;有一部分代码里是有生成器构造出来代码&#xff0c;一些基础比较薄弱的客户以及技术就看起来比较费劲看不懂了&#xff0c;这里特意写一篇文章为这部分客户服务。尽量言简意赅&#xff0c;以下是示例代码&#xff1a; function YV(YD) {ret…

【动态规划】【 数位dp】2827. 范围中美丽整数的数目

本文涉及知识点 数位dp 动态规划汇总 LeetCode2827. 范围中美丽整数的数目 给你正整数 low &#xff0c;high 和 k 。 如果一个数满足以下两个条件&#xff0c;那么它是 美丽的 &#xff1a; 偶数数位的数目与奇数数位的数目相同。 这个整数可以被 k 整除。 请你返回范围 [l…

仿懂车帝的二手车交易平台功能介绍

二手车交易平台app是一款功能丰富的二手车交易平台&#xff0c;以下是其主要功能介绍&#xff1a; 二手车信息展示&#xff1a;APP首页展示各类二手车信息&#xff0c;包括车型、品牌、价格等&#xff0c;用户可以轻松浏览并选择自己感兴趣的车辆。搜索与筛选功能&#xff1a;…

哈希技术解析:从哈希函数到哈希桶迭代器的全面指南

文章目录 引言一、哈希表与哈希函数1、哈希表的基本原理2、哈希函数的作用与特点3、哈希冲突的处理方法 二、哈希桶及其迭代器1、 哈希桶a.定义哈希桶结构b.哈希函数c.哈希桶的插入、查找、删除 2、 哈希桶的迭代器a.类型定义与成员变量b.构造函数c.解引用与比较操作d.递增操作…

Liunx进程间通信

进程间通信 进程间通信进程间通信的基本概念进程间通信的目的 管道匿名管道进程池 命名管道 system V进程间通信system V进程间通信基本概念system V共享内存共享内存和管道的对比 system V 信号量信号量同步和互斥 进程间通信 进程间通信的基本概念 进程间通信就是在不同进程…

6-LINUX-- C 程序的编译与调试

一.环境搭建 1.gcc的安装 1>.切换到管理员模式 sudo su ----> 输入密码 2>.apt install gcc //C语言的编译环境 3>.apt install g //c编译环境的搭建 4>.install update //软件升级 2.gcc分步编译链接 &#xff08;1&#xff09;预编译 gcc -E…

计算机生物科技在基因编辑中的应用及其前景

一、引言 基因编辑&#xff0c;作为一种能够精准修改生物体基因组的技术&#xff0c;近年来受到了广泛的关注。 而计算机生物科技作为连接计算机科学与生物学的桥梁&#xff0c;为基因编辑技术的快速发展提供了强大的支持。通过利用计算机算法和数据分析方法&#xff0c;研究人…

Dashe Media全球新闻稿发布协助您实现传播目标-海外媒体宣发

亚太区新闻稿发布网络 Dashe Media 是唯一一家于亚太区拥有专有记者网络和网上新闻媒体发布网络的全球新闻通讯社 Dashe Media 在该地区的 26 个国家拥有 200,000 名记者和编辑数据库&#xff0c;涵盖 500 个新闻类别、68,000 个新闻媒体和 1,500 个在线新闻媒体合作伙伴&…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Refresh)

可以进行页面下拉操作并显示刷新动效的容器组件。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 从API version 11开始&#xff0c;Refresh子组件会跟随手势下拉而下移…

HarmonyOS 通知意图

之前的文章 我们讲了 harmonyos 中的 基础和进度条通知 那么 今天 我们来说说 任何给通知添加意图 通知意图 简单说 就是 当我们点击某个通知 如下图 然后 就会拉起某个 应用 就例如说 我们某个微信好友发消息给我们 我们 点击系统通知 可以直接跳到你们的聊天界面 好 回到…