以下是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 |