因仑“3+1”工程特种兵精英论坛

标题: luminary 官方论坛上的有人给出的crc16源码,很经典 [打印本页]

作者: liliuyang    时间: 2016-4-18 21:57
标题: luminary 官方论坛上的有人给出的crc16源码,很经典
以下是luminary 上的的crc16源码,采用的编译环境是rvmdk,稍微改下可以在iar以及gcc上编译
不过stm32有硬件的crc,这个就不需要了。luminary新出的几个9b,9700以及9l和5000系列的几个新出的片子上都有crc,不过是烧在rom里面的。

    AREA    |.text|, CODE, READONLY, ALIGN=2
    THUMB

    GLOBAL    get_crc16


    PRESERVE8 {TRUE}

;|----------------------------------------------|
;|    U16 get_crc16(U16 crc, U8 ch)        |
;|                        |
;|    Pol. : x^16 + x^15 + x^2 + 1        |
;|    crc = current crc value            |
;|    ch  = new data              |
;|    return value = new crc             |
;|----------------------------------------------|
get_crc16
    eor    r1,r0
    mov    r1,r1, LSL #24
    mov    r0,r0, LSR #8
    eor    r1,r1, ROR #31
    eor    r0,r1, ROR #18
    eor    r1,r1, LSL #2
    eors    r1,r1, LSL #4
    ldrmi    r1,=0xc001
    eormi    r0,r1
    bx    lr


    END






欢迎光临 因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4