娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

一、測試條件

硬件: STM32L432KC 
主頻: 80MHz 
編譯器: IAR 8.20.1 
編譯選項(xiàng): High Speed no size constraints 
CRC 生成多項(xiàng)式: 0x782f

二、測試方法

軟件提前生成CRC表,用于查詢。分別使用軟件CRC算法和硬件CRC外設(shè)對一個(gè)緩存進(jìn)行計(jì)算,目的是從該緩存中找到同步頭。同步頭共11字節(jié),前兩個(gè)字節(jié)為后九個(gè)字節(jié)的CRC校驗(yàn)值。通過迭代算法依次對11字節(jié)進(jìn)行計(jì)算和比較,當(dāng)找到同步頭后返回同步頭偏移量。通過時(shí)間比較兩者之間的速度。

三、測試結(jié)果

迭代24464次后,從緩存中找到同步頭。 
不開啟編譯時(shí)間優(yōu)化時(shí),軟件算法用時(shí)238ms,硬件CRC用時(shí)220ms。 
這里寫圖片描述

開啟編譯時(shí)間優(yōu)化后,軟件算法用時(shí)159ms,硬件CRC用時(shí)186ms。 
這里寫圖片描述

四、附測試代碼

#include "user_crc.h"

#include "stm32l4xx_hal.h"


#define SOFT_CRC  1

#define HARD_CRC  2


CRC_HandleTypeDef   CrcHandle;

uint16_t crc_tab[256];


void crc_init()

{

    /*##-1- Configure the CRC peripheral #######################################*/

    CrcHandle.Instance = CRC;


    /* The default polynomial is not used. It is required to defined it in CrcHandle.Init.GeneratingPolynomial*/    

    CrcHandle.Init.DefaultPolynomialUse      = DEFAULT_POLYNOMIAL_DISABLE;


    /* Set the value of the polynomial */

    CrcHandle.Init.GeneratingPolynomial      = CRC_POLYNOMIAL_16B;


    /* The user-defined generating polynomial generates a

         16-bit long CRC */

    CrcHandle.Init.CRCLength                 = CRC_POLYLENGTH_16B;


    /* The default init value is used */

    CrcHandle.Init.DefaultInitValueUse       = DEFAULT_INIT_VALUE_DISABLE;


    /* The input data are not inverted */

    CrcHandle.Init.InputDataInversionMode    = CRC_INPUTDATA_INVERSION_NONE;


    /* The output data are not inverted */

    CrcHandle.Init.OutputDataInversionMode   = CRC_OUTPUTDATA_INVERSION_DISABLE;


    /* The input data are 8-bit long */

    CrcHandle.InputDataFormat                = CRC_INPUTDATA_FORMAT_BYTES;


    if (HAL_CRC_Init(&CrcHandle) != HAL_OK)

    {

        /* Initialization Error */

        Error_Handler();

    }

}


void crc_buildTab(uint16_t gen_polynom)

{

    for(int value = 0; value < 256; value++) 

    {

        uint16_t crc = value << 8;


        for(int i = 0; i < 8; i++) 

        {

            if(crc & 0x8000)

                crc = (crc << 1) ^ gen_polynom;

            else

                crc = crc << 1;

        }


        crc_tab[value] = crc;

    }


}


uint16_t soft_crc_calc(const uint8_t *data, uint16_t len) 

{

    uint16_t crc = 0x0000;


    for(uint16_t offset = 0; offset < len; offset++)

    {

        crc = (crc << 8) ^ crc_tab[(crc >> 8) ^ data[offset]];

    }


    return crc;

}


uint16_t hard_crc_calc(const uint8_t *data, uint16_t len)

{

    uint16_t crc = 0x0000;


    crc = HAL_CRC_Calculate(&CrcHandle, (uint32_t *)data, len);


    return crc;

}


uint16_t find_sync_word(uint8_t *data, uint32_t data_len, uint8_t crc_type)

{

    uint8_t *ptr;

    uint16_t crc_stored,crc_calced;


    ptr = data;


    for(uint32_t i=0; i

    {

        crc_stored = ptr[0]<<8 | ptr[1];

        if(crc_type == SOFT_CRC)

        {

            crc_calced = soft_crc_calc((uint8_t *)&ptr[2], 9);

        }

        else if(crc_type == HARD_CRC)

        {

            crc_calced = hard_crc_calc((uint8_t *)&ptr[2], 9);

        }


        if( (crc_stored != 0x0000) && (crc_stored == crc_calced) )

        {

            printf("crc check ok! crc1 = 0x%04x,crc2 = 0x%04x\n", crc_stored,crc_calced);

            return i;

        }


        ptr++;

    }


    return 0xffff;

}



void crc_test()

{

    uint32_t tick1,tick2;

    uint32_t find_cnt = 0;

    uint16_t gen_polynom = 0x782f;


    crc_init();

    crc_buildTab(gen_polynom);


    tick1 = HAL_GetTick();

    find_cnt = find_sync_word((uint8_t *)superFrameBuf, sizeof(superFrameBuf), SOFT_CRC);

    tick2 = HAL_GetTick();

    printf("use soft_crc find sync word after %d iteration, use time %d\n", find_cnt, tick2 - tick1);


    printf("\n");


    tick1 = HAL_GetTick();

    find_cnt = find_sync_word((uint8_t *)superFrameBuf, sizeof(superFrameBuf), HARD_CRC);

    tick2 = HAL_GetTick();

    printf("use hard_crc find sync word after %d iteration, use time %d\n", find_cnt, tick2 - tick1);


}


關(guān)鍵字:STM32  硬件CRC  軟件CRC 引用地址:STM32 硬件CRC和軟件CRC速度比較

上一篇:對于STM32軟件復(fù)位
下一篇:STM32 無法通過 %f 打印浮點(diǎn)數(shù)

推薦閱讀

  我們從2G時(shí)代一路走來,如今5G已經(jīng)即將進(jìn)行商用,恍然間才發(fā)現(xiàn),原來時(shí)光匆匆流過,技術(shù)卻從未停歇。5G的啟用,預(yù)示著新時(shí)代的到來,但與此同時(shí),老舊的設(shè)備也到了更新?lián)Q代的時(shí)機(jī)。而在移動(dòng)運(yùn)營商龍頭的爭奪,也在這一刻產(chǎn)生了懸念。下面就隨網(wǎng)絡(luò)通信小編一起來了解一下相關(guān)內(nèi)容吧。  移動(dòng)運(yùn)營商的“三國時(shí)代”  從1999年中國移動(dòng)成立開始,中國的...
擁有高技術(shù)含量、高附加值、高溢價(jià)的產(chǎn)品定義能力,將成為超高端空調(diào)市場頭部陣營深度發(fā)酵的產(chǎn)物。 奧維云網(wǎng)最新發(fā)布的空調(diào)零售市場數(shù)據(jù)顯示:2019年前14周,2萬+以上的柜機(jī)市場,以及7000+以上掛機(jī)市場,在低價(jià)、低迷混亂的空調(diào)市場上掀起一輪消費(fèi)新熱潮。其中,以美的為首的本土企業(yè)已占據(jù)主導(dǎo)地位,其AIR空間站系列產(chǎn)品零售量、零售額則雙雙占據(jù)掛機(jī)700...
蘋果分析師郭明錤在與投資者分享的一份報(bào)告中表示,蘋果即將推出的5G iPhone可能會(huì)推遲生產(chǎn)。 5G iPhone存在延遲風(fēng)險(xiǎn) 此前郭明錤曾暗示2020年的5G iPhone 12將支持包括毫米波(mmWave)在內(nèi)的整個(gè)5G頻譜。而毫米波iPhone的生產(chǎn)可能會(huì)推遲。毫米波iPhone潛在順延的原因?yàn)锳iP (Antenna in package) 在4月初設(shè)計(jì)改變與測試實(shí)驗(yàn)室暫停驗(yàn)證服務(wù)。蘋...
MSP430 系列單片機(jī)是德州儀器(TI)公司推出的一款16位超低功耗單片機(jī)。它能夠在1.8~3.6 V電壓、1 MHz頻率的條件下運(yùn)行,耗電電流在0.1~400μA。在運(yùn)算速度上,MSP430系列單片機(jī)能在8 MHz晶振的驅(qū)動(dòng)下,實(shí)現(xiàn)125 ns的指令周期。16位的數(shù)據(jù)寬度、125 ns的指令周期以及多功能的硬件乘法器相配合,能實(shí)現(xiàn)數(shù)字信號處理的某些算法(如FFT等)。在整合方面,M...

史海拾趣

問答坊 | AI 解惑

號外!EAGLE出中文版了!!

EAGLE官方網(wǎng)站發(fā)布中文版本了,安裝后的手冊和用戶指南也是中文的,終于不用看讓人頭大的英文了。 這次出的是中文Beta版,下載地址http://www.cadsoft.de/betatest.htm。…

查看全部問答∨

請教N(yùn)and Flash問題(Wince 5.0 + Pxa310)

我在wince 5 + Pxa310下面用的是二合一的存儲芯片nand+sdram,Nand容量是256M的,進(jìn)入系統(tǒng)之后,當(dāng)我往Nand里面拷貝文件,快要把Nand塞滿的時(shí)候,系統(tǒng)就會(huì)死機(jī),這個(gè)時(shí)候如果斷電重新開機(jī)或者復(fù)位開機(jī),連Eboot也跑不起來了,查原因發(fā)現(xiàn)是Nand的rel ...…

查看全部問答∨

這些二極管參數(shù)是什么意思?

MODEL MR821 D ( + IS = 5.989e-09 + RS = 0.00477 + CJO = 1.139e-10 + VJ = 0.7174 + TT = 3.25e-08 + M = 0.2698 + BV = 100 + N = 2 + EG = 1.11 + XTI = 3 + KF = 0 + AF = 1 + FC = 0.5 + IBV = 0.0001 + TNOM ...…

查看全部問答∨

求救:在UP-NETARM2410-S實(shí)驗(yàn)箱中燒寫WINCE內(nèi)核為什么燒不進(jìn)去?

各位大俠,我是個(gè)菜鳥,剛開始學(xué)習(xí)嵌入式,我用的是北京博創(chuàng)興業(yè)科技有限公司的實(shí)驗(yàn)箱UP-NETARM2410-S,不過帶的資料書是關(guān)于LINUX的,有個(gè)PDF文件是關(guān)于WINCE的,不過寫的不詳細(xì)。我現(xiàn)在根據(jù)資料把2410loader.bin,tocblock1,eboot.nb0利用超級終端 ...…

查看全部問答∨

EXTI總是不能發(fā)生中斷,可能還是配置錯(cuò)誤。。。

采用PC12作為外部中斷線輸入引腳,連接到EXTI_Line0,如下配置:1〉在RCC中使能了PC port2〉在NVIC中使能了EXTI_Line0中斷   //使能EXTI 0通道    NVIC_InitStructure.NVIC_IRQChannel &nb ...…

查看全部問答∨

STM8的哪款24M的CPU有ADC1功能?

STM8的哪款24M的CPU有ADC1功能?與STM8S105 44pin管腳兼容 目的是在應(yīng)用中需要用到掃描各路AD功能,謝謝!…

查看全部問答∨

Mindspeed推出基于多核ARM Cortex-A CPU的高性能通信處理器

本帖最后由 jameswangsynnex 于 2015-3-3 20:02 編輯 敏訊科技有限公司(Mindspeed Technologies, Inc.,NASDAQ股票市場代碼:MSPD)已宣布:推出基于多核ARM? Cortex?-A CPU的Comcerto?2000系列通信處理器。通過將軟件定義聯(lián)網(wǎng)(SDN)帶到網(wǎng)絡(luò)的 ...…

查看全部問答∨

收到 “富士通工業(yè)控制板”

東西是昨天收到的,因同時(shí)昨天也收到了剛買的相機(jī),所以,沒有馬上打開這個(gè)包裹。   1、細(xì)心包裝,使寄給的零件免受委曲           可以看出,ltbytyn花了很大功夫       2、所寄 ...…

查看全部問答∨

孕婦胎動(dòng)檢測儀

老婆懷孕了,到了32周了,醫(yī)生建議每天數(shù)胎動(dòng),我突然想到可以用這個(gè)來做個(gè)胎動(dòng)監(jiān)測,這樣就可以24小時(shí)監(jiān)測了。因?yàn)槠綍r(shí)孕婦都要做其它事情,不會(huì)一直在監(jiān)視胎動(dòng),有了這個(gè)是不是就很方便了。而且手機(jī)隨時(shí)可以看,不過傳感器是個(gè)問題,還有就是無線 ...…

查看全部問答∨

女工程師分享 多燈串LED電流均衡技術(shù)

美國國辦女工程師分享 多燈串LED電流均衡技術(shù) 如何利用LM3466智能LED驅(qū)動(dòng)器去均衡多燈串的LED電流,即使LED出現(xiàn)故障也可維持均勻的照明效果。LM3466可讓您使用一個(gè)電源去建立高效、可靠和高品質(zhì) 的LED照明。LM3466 的特色包括:*.設(shè)計(jì)簡單易用,可 ...…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 灵台县| 武山县| 佛山市| 清镇市| 平陆县| 开鲁县| 石门县| 蓬安县| 清原| 高邮市| 永福县| 和静县| 台安县| 金山区| 婺源县| 长寿区| 日土县| 容城县| 台安县| 克拉玛依市| 绥芬河市| 新化县| 壤塘县| 昂仁县| 临泽县| 桑植县| 长兴县| 临泉县| 嘉善县| 奈曼旗| 拉萨市| 盐亭县| 光山县| 云浮市| 金门县| 利川市| 盐津县| 咸丰县| 吉木萨尔县| 洪江市| 万安县|