打印

MSPM0MSPM0G3507小练-计算 CRC 校验和

[复制链接]
531|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xyz549040622|  楼主 | 2023-4-12 23:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xyz549040622 于 2023-4-13 20:21 编辑

任务 1 的目的是使用 CRC 代码对 MSPM0 LaunchPad 进行编程,并验证 CRC 模块是否正常工作。 实际上,无法直观明确地确定 CRC 是否正常工作,因此,可以将得到的校验和与在线 CRC 计算器得出的结果进行比较。 以下代码示例中提供了预期输出,并将 CRC 输出与之进行了比较。 对于该任务,无需修改代码示例。
1.将 crc_calculate_checksum 从 TI Resource Explorer 导入 CCS。

  • 点击右上角的 Import 2.对 LaunchPad 进行编程。
  • 代码概要功能描述
    此程序计算数组的校验和,并将数组与预期结果进行比较,以验证 crc 模块。

    #include "ti_msp_dl_config.h"

    #define CRC_NUM_OF_WORDS (3)
    #define CRC_EXPECTED_RESULT (0x91A5D23B)

    uint32_t gData32[CRC_NUM_OF_WORDS] = {0x3B4A5812, 0x0C74FECA, 0x0000842F};
    const uint32_t gCrcSeed            = CRC_SEED;

    int main(void)
    {
        volatile uint32_t crcChecksum;
        volatile bool crcChecksumMatch __attribute__((unused));

        SYSCFG_DL_init();

        crcChecksum =
            DL_CRC_calculateBlock32(CRC, gCrcSeed, &gData32[0], CRC_NUM_OF_WORDS);

        if (CRC_EXPECTED_RESULT == crcChecksum) {
            crcChecksumMatch = true;
        } else {
            crcChecksumMatch = false;
        }

        /* Stop the debugger to verify crcChecksumMatch == true */
        __BKPT(0);

        while (1) {
            __WFI();
        }
    }
此程序包含以下几个步骤:
  • 初始化系统配置:重置相关模块并启用 SYSCFG_DL_init() 中的电源。GPIO 和 CRC 模块通过重置功能设置为默认值。
    SYSCONFIG_WEAK void SYSCFG_DL_initPower(void)
    {
    DL_GPIO_reset(GPIOA);
    DL_GPIO_reset(GPIOB);
    DL_CRC_reset(CRC);

    DL_GPIO_enablePower(GPIOA);
    DL_GPIO_enablePower(GPIOB);
    DL_CRC_enablePower(CRC);
    delay_cycles(POWER_STARTUP_DELAY);
    }

  • 执行 CRC_32 计算并检查结果
    crcChecksum =
    DL_CRC_calculateBlock32(CRC, gCrcSeed, &gData32[0], CRC_NUM_OF_WORDS);

    if (CRC_EXPECTED_RESULT == crcChecksum) {
    crcChecksumMatch = true;
    } else {
    crcChecksumMatch = false;
    }




使用特权

评论回复

相关帖子

沙发
chenjun89| | 2023-4-13 07:40 | 只看该作者
CRC常用校验算法

使用特权

评论回复
板凳
qcliu| | 2023-5-4 14:49 | 只看该作者
请问 如何使用 CRC 代码对 MSPM0 LaunchPad 进行编程呢?

使用特权

评论回复
地板
drer| | 2023-5-4 15:45 | 只看该作者
crc校验算法有很多种,我们如何知道对方采用的是哪种呢

使用特权

评论回复
5
coshi| | 2023-5-4 16:20 | 只看该作者
drer 发表于 2023-5-4 15:45
crc校验算法有很多种,我们如何知道对方采用的是哪种呢

我都是在网上用crc的计算器进行比对

使用特权

评论回复
6
tpgf| | 2023-5-4 16:47 | 只看该作者
crc校验还需要查表吗 还是只有一个算法就可以了

使用特权

评论回复
7
kxsi| | 2023-5-5 07:55 | 只看该作者
tpgf 发表于 2023-5-4 16:47
crc校验还需要查表吗 还是只有一个算法就可以了

感觉应该是一种算法 然后得到的校验码就需要查表了吧

使用特权

评论回复
8
wiba| | 2023-5-5 09:06 | 只看该作者
有的单片机是不是会有专用的crc计算的模块啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群: 嵌入式系统arm初学者 224636155←← +→→点击-->小 i 精品课全集,21ic公开课~~←←→→点击-->小 i 精品课全集,给你全方位的技能策划~~←←

2759

主题

19243

帖子

104

粉丝