littlebot
Published on 2025-04-11 / 1 Visits
0

【源码】基于MPLAB X IDE的Flash内存CRC扫描系统

项目简介

本项目基于MPLAB X IDE开发,展示了如何利用Cyclic Redundancy Check Memory Scan (CRCSCAN)外设对Flash内存进行CRC操作,以及使用Nonvolatile Memory Controller (NVMCTRL)外设在运行时对Flash内存进行读写操作。项目提供了CRC16和CRC32两个固件项目。

项目的主要特性和功能

  1. 利用CRCSCAN外设周期性对Flash内存进行CRC扫描,计算整个Flash的CRC校验和并与预计算的校验和对比。
  2. 可通过NVMCTRL外设修改Flash内存中的数据,修改后会使后续CRC扫描失败。
  3. 在数据可视化工具的终端窗口显示CRC扫描结果,同时通过AVR128DA48 Curiosity Nano板的板载LED(LED0)指示扫描结果。
  4. 支持CRC16 - CCITT和CRC32(IEEE 802.3)两种CRC多项式选项。

安装使用步骤

前提条件

用户已下载本项目的源码文件,且安装了以下软件: - MPLAB® X IDE v6.05或更高版本 - MPLAB® XC8 Compiler v2.41或更高版本 - MPLAB® Code Configurator (MCC) v5.3.0或更高版本 - MPLAB® Code Configurator (MCC) Core v5.5.0 - Microchip AVR - Dx Device Support 2.3.272或更高版本 - Standalone Data Visualizer v2.20.674 - CRCSCAN Driver v4.0.5 - NVMCTRL Driver v7.0.0 - UART Driver v1.8.0 - RTC Driver v4.2.4

操作步骤

  1. 硬件连接:使用标准Micro B USB电缆将AVR128DA48 Curiosity Nano板连接到主机(PC)。
  2. 打开数据可视化工具:打开Standalone Data Visualizer,选择AVR DA nano板连接的虚拟COM端口,点击“Connect”。也可以打开MPLAB X IDE中的MPLAB Data Visualizer插件扩展。
  3. 打开项目:在MPLAB X IDE中打开crc16/crc32项目(点击“File”菜单,然后点击“Open Project”)。
  4. 清理项目:右键点击项目名称,选择“Clean”。
  5. 编译并烧录:点击“Make and Program Device”。
  6. 查看结果:编程完成后,终端窗口将开始显示消息,扫描在8秒后开始,结果将打印在终端上。
  7. 修改数据:按下开关(SW0)将Flash内存中位置“0x1FC01”的一个字节更改为0x00,后续的CRC扫描将失败,Curiosity nano板上的LED0将亮起。再次按下开关将数据改回0xFF,后续扫描将成功,LED熄灭。

使用CRC32的更改

若要使用CRC32,需对项目进行以下更改: 1. 取消注释#define CRC32(main.c/->line 44)。 2. 将SYSCFG0 fuse(mcc_geenerated_files/system/src/config_bits.c/->line 44)更改为.SYSCFG0 = CRCSEL_CRC32_gc | CRCSRC_NOCRC_gc | RSTPINCFG_GPIO_gc,。 3. 更改后构建命令(项目名称 -> Properties -> Conf -> Building -> Execute this line after build)为"hexmate" ${ImagePath} -o${ImagePath} -FILL=0xFFFF@0x0000:0x1FFFB -CK=0x0000-0x1FFFB@0x1FFFC+0xFFFFFFFFw-4g-5p0x04C11DB7,并将hexmate工具的路径添加到系统环境变量中。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】