项目简介
本项目基于MPLAB X IDE开发,展示了如何利用Cyclic Redundancy Check Memory Scan (CRCSCAN)外设对Flash内存进行CRC操作,以及使用Nonvolatile Memory Controller (NVMCTRL)外设在运行时对Flash内存进行读写操作。项目提供了CRC16和CRC32两个固件项目。
项目的主要特性和功能
- 利用CRCSCAN外设周期性对Flash内存进行CRC扫描,计算整个Flash的CRC校验和并与预计算的校验和对比。
- 可通过NVMCTRL外设修改Flash内存中的数据,修改后会使后续CRC扫描失败。
- 在数据可视化工具的终端窗口显示CRC扫描结果,同时通过AVR128DA48 Curiosity Nano板的板载LED(LED0)指示扫描结果。
- 支持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
操作步骤
- 硬件连接:使用标准Micro B USB电缆将AVR128DA48 Curiosity Nano板连接到主机(PC)。
- 打开数据可视化工具:打开Standalone Data Visualizer,选择AVR DA nano板连接的虚拟COM端口,点击“Connect”。也可以打开MPLAB X IDE中的MPLAB Data Visualizer插件扩展。
- 打开项目:在MPLAB X IDE中打开crc16/crc32项目(点击“File”菜单,然后点击“Open Project”)。
- 清理项目:右键点击项目名称,选择“Clean”。
- 编译并烧录:点击“Make and Program Device”。
- 查看结果:编程完成后,终端窗口将开始显示消息,扫描在8秒后开始,结果将打印在终端上。
- 修改数据:按下开关(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】