0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何测试函数的正确与否呢

通信工程师专辑 来源:通信工程师专辑 作者:了凡三训 2022-11-03 09:52 次阅读

上堂课讲到了测试函数的内容,如何测试呢?要通过写测试文件来检验函数的正确与否。这样的方法不仅在MATLAB中有效,对于c、verilog等语言都有效。

一起来学习测试程序吧。真正的干货!本程序还附带了字节转换的内容。

为什么有这段?当年在研发卫星地球站的时候,需要和ARM中的结果进行比对。于是留下了这段代码!

%*********** 函数测试程序 ************%

%%%% File: test_function_crc_itu.m %%%%

%% date: 2010-04-07 author: 算法工匠 %%

%%% 程序说明

% 测试函数function_crc_itu结果和存储表法是否一致。

% 函数按照ITU定义的生成多项式 G(x) = x^16 + x^12 + x^5 + 1

%%********** 程序主体 **********%%

data_binary = randint(1,100);

% 矩阵运算函数

crc_result = function_crc_itu(data_binary);

% 比特运算函数

crc_result1 = function_crc_itu_v1(data_binary);

% 用于查表法计算的等效检验。

% 在计算机中使用字节的概念。

%%%%% 字节转换

for i = 1:length(data_binary)/4

% 高位进寄存器

data_16(i) = 2^3*data_binary((i-1)*4+1) + 2^2*data_binary((i-1)*4+2) + 2*data_binary((i-1)*4+3) + data_binary((i-1)*4+4) ;

end

for i = 1:4

% 寄存器0是高位

result_16(i) = 2^3*crc_result((i-1)*4+1) + 2^2*crc_result((i-1)*4+2) + 2*crc_result((i-1)*4+3) + crc_result((i-1)*4+4) ;

end

%%%% 文本存储

data_hex = dec2hex(data_16);

fid = fopen('data_hex.txt', 'wt');

fprintf(fid, '%s ', data_hex);

fclose(fid);

result_hex = dec2hex(result_16);

fid = fopen('result_hex.txt', 'wt');

fprintf(fid, '%s ', result_hex);

fclose(fid);

%%% 结论

% 测试结果表明函数正确。

% function_crc_itu_v1适合在FPGA中使用。

% 2016-11-17

本程序中测试的函数不是上堂课给出的CRC生成函数,需要同学们自己改动相关语句来完成上堂课所写的函数的测试。自己动手,丰衣足食。不能老是靠老师扶着走。调完程序后还要干什么呢?写报告。软件测试报告或者仿真报告是必须要写的。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5032

    浏览量

    117746
  • ITU
    ITU
    +关注

    关注

    1

    文章

    25

    浏览量

    14745
  • Verilog语言
    +关注

    关注

    0

    文章

    113

    浏览量

    8160

原文标题:计算机通信与网络v2 实验课程(6)

文章出处:【微信号:gh_30373fc74387,微信公众号:通信工程师专辑】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C语言main函数正确写法

    大家好,我是嵌入式老林,从事嵌入式软件开发多年,今天分享的内容是C语言main函数正确写法,希望能对你有所帮助
    发表于 07-11 11:51 439次阅读
    C语言main<b class='flag-5'>函数</b>的<b class='flag-5'>正确</b>写法

    STM32中断相应函数不能持续吗?

    在main.c中的测试函数可以使DAC芯片正常输出多路幅值不同的方波电压,将其放到中断it.c文件中,发现只是输出直线型电压,而非方波,请问中断相应函数不能持续吗?譬如,使用中断函数来达到使LED灯闪烁
    发表于 04-08 07:05

    关于使用Keil C编写函数指针的疑惑

    TaskArr[2] = {NULL};int TEST_ab()//测试函数{printf("ab\n");return 0;}int TEST_cd()//测试函数
    发表于 09-03 12:41

    请问像CPU、DMA、HTU的MPU功能,有没有什么人为加入故障的方法来测试一下MPU功能的好用与否

    本帖最后由 一只耳朵怪 于 2018-5-25 17:26 编辑 您好,像CPU、DMA、HTU的MPU功能,有没有什么人为加入故障的方法来测试一下MPU功能的好用与否
    发表于 05-25 07:18

    STM32F407VET6驱动LCD1602显示,通过usmart测试函数执行

    STM32F407VET6驱动LCD1602显示,通过usmart测试函数执行
    发表于 09-16 13:31

    如何去测试CAN接口通讯功能的正确

    如何去测试CAN接口通讯功能的正确?怎样去设计驱动控制板的CAN通讯接口部分
    发表于 11-09 07:30

    为什么使用printf()函数去调试STM32串口却无法接收正确数据

    为什么使用printf()函数去调试STM32串口无法接收正确数据?如何去解决这个问题
    发表于 11-30 07:15

    如何对printf()函数或scanf()函数进行重定向

    怎样用串口来测试代码的正确与否?如何对printf()函数或scanf()函数进行重定向
    发表于 11-30 07:41

    如何对FLASH读写成功与否进行测试

    如何对FLASH读写成功与否进行测试
    发表于 02-17 06:47

    Finsh自定义命令测试完循环执行的函数后能够退出回到终端界面吗

    大家好!我们经常会用Finsh自定义一些测试函数,比如下面这样的:void test_led(){led_on();}MSH_CMD_EXPORT
    发表于 07-26 11:18

    函数信号的产生与测试

    函数信号的产生与测试 一、           实验目的 1、通过实验掌握函数
    发表于 05-10 00:21 1074次阅读
    <b class='flag-5'>函数</b>信号的产生与<b class='flag-5'>测试</b>

    Linux内核模块间函数调用正确方法

    模块之间发生调用关系是常有的事情,下面以两个模块A、B,B使用A模块提供的函数为例,讲解正确使用的方法。
    发表于 04-28 17:00 2158次阅读

    WINCC使用系统函数和运行系统脚本

    如果 HMI 设备支持用户自定义函数,可以将系统函数与用户自定义函数代码中的指令和条件结合使用。这样,便可以根据特定的系统状态来执行自定义函数。此外,还可以计算系统
    的头像 发表于 03-18 10:22 3658次阅读
    WINCC使用系统<b class='flag-5'>函数</b>和运行系统脚本

    如何正确区分Java中super函数用法

    Java中super函数有很多方法,在使用的时候我们应该如何正确区分? 2 方法 三种用法: 访问父类的方法。 调用父类构造方法。 访问父类中的隐藏成员变量。
    的头像 发表于 02-21 15:08 362次阅读

    if嵌套函数正确输入方法为

    输入方法是在if语句内部创建一个新的函数。这个函数可以是一个匿名函数或者是一个有名称的函数,具体取决于你的需求和偏好。下面是一个if嵌套函数
    的头像 发表于 11-30 16:50 611次阅读