上堂課講到了測(cè)試函數(shù)的內(nèi)容,如何測(cè)試呢?要通過(guò)寫測(cè)試文件來(lái)檢驗(yàn)函數(shù)的正確與否。這樣的方法不僅在MATLAB中有效,對(duì)于c、verilog等語(yǔ)言都有效。
一起來(lái)學(xué)習(xí)測(cè)試程序吧。真正的干貨!本程序還附帶了字節(jié)轉(zhuǎn)換的內(nèi)容。
為什么有這段?當(dāng)年在研發(fā)衛(wèi)星地球站的時(shí)候,需要和ARM中的結(jié)果進(jìn)行比對(duì)。于是留下了這段代碼!
%*********** 函數(shù)測(cè)試程序 ************%
%%%% File: test_function_crc_itu.m %%%%
%% date: 2010-04-07 author: 算法工匠 %%
%%% 程序說(shuō)明
% 測(cè)試函數(shù)function_crc_itu結(jié)果和存儲(chǔ)表法是否一致。
% 函數(shù)按照ITU定義的生成多項(xiàng)式 G(x) = x^16 + x^12 + x^5 + 1
%%********** 程序主體 **********%%
data_binary = randint(1,100);
% 矩陣運(yùn)算函數(shù)
crc_result = function_crc_itu(data_binary);
% 比特運(yùn)算函數(shù)
crc_result1 = function_crc_itu_v1(data_binary);
% 用于查表法計(jì)算的等效檢驗(yàn)。
% 在計(jì)算機(jī)中使用字節(jié)的概念。
%%%%% 字節(jié)轉(zhuǎn)換
for i = 1:length(data_binary)/4
% 高位進(jìn)寄存器
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
%%%% 文本存儲(chǔ)
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);
%%% 結(jié)論
% 測(cè)試結(jié)果表明函數(shù)正確。
% function_crc_itu_v1適合在FPGA中使用。
% 2016-11-17
本程序中測(cè)試的函數(shù)不是上堂課給出的CRC生成函數(shù),需要同學(xué)們自己改動(dòng)相關(guān)語(yǔ)句來(lái)完成上堂課所寫的函數(shù)的測(cè)試。自己動(dòng)手,豐衣足食。不能老是靠老師扶著走。調(diào)完程序后還要干什么呢?寫報(bào)告。軟件測(cè)試報(bào)告或者仿真報(bào)告是必須要寫的。
審核編輯:劉清
-
寄存器
+關(guān)注
關(guān)注
31文章
5495瀏覽量
127787 -
ITU
+關(guān)注
關(guān)注
1文章
26瀏覽量
15154 -
Verilog語(yǔ)言
+關(guān)注
關(guān)注
0文章
113瀏覽量
8682
原文標(biāo)題:計(jì)算機(jī)通信與網(wǎng)絡(luò)v2 實(shí)驗(yàn)課程(6)
文章出處:【微信號(hào):gh_30373fc74387,微信公眾號(hào):通信工程師專輯】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
C語(yǔ)言main函數(shù)的正確寫法

請(qǐng)問(wèn)像CPU、DMA、HTU的MPU功能,有沒(méi)有什么人為加入故障的方法來(lái)測(cè)試一下MPU功能的好用與否呢?
STM32F407VET6驅(qū)動(dòng)LCD1602顯示,通過(guò)usmart測(cè)試函數(shù)執(zhí)行
如何去測(cè)試CAN接口通訊功能的正確性呢
為什么使用printf()函數(shù)去調(diào)試STM32串口卻無(wú)法接收正確數(shù)據(jù)呢
如何對(duì)printf()函數(shù)或scanf()函數(shù)進(jìn)行重定向呢
Finsh自定義命令測(cè)試完循環(huán)執(zhí)行的函數(shù)后能夠退出回到終端界面嗎
函數(shù)信號(hào)的產(chǎn)生與測(cè)試

Linux內(nèi)核模塊間函數(shù)調(diào)用正確方法
WINCC使用系統(tǒng)函數(shù)和運(yùn)行系統(tǒng)腳本

德索fakra連接器怎么測(cè)試才能知道它穩(wěn)定與否

評(píng)論