Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of SDFileSystem by
CRC7.cpp
00001 /* SD/MMC File System Library 00002 * Copyright (c) 2014 Neil Thiessen 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 #include "CRC7.h" 00018 00019 namespace 00020 { 00021 const char m_CRC7Table[] = { 00022 0x00, 0x09, 0x12, 0x1B, 0x24, 0x2D, 0x36, 0x3F, 00023 0x48, 0x41, 0x5A, 0x53, 0x6C, 0x65, 0x7E, 0x77, 00024 0x19, 0x10, 0x0B, 0x02, 0x3D, 0x34, 0x2F, 0x26, 00025 0x51, 0x58, 0x43, 0x4A, 0x75, 0x7C, 0x67, 0x6E, 00026 0x32, 0x3B, 0x20, 0x29, 0x16, 0x1F, 0x04, 0x0D, 00027 0x7A, 0x73, 0x68, 0x61, 0x5E, 0x57, 0x4C, 0x45, 00028 0x2B, 0x22, 0x39, 0x30, 0x0F, 0x06, 0x1D, 0x14, 00029 0x63, 0x6A, 0x71, 0x78, 0x47, 0x4E, 0x55, 0x5C, 00030 0x64, 0x6D, 0x76, 0x7F, 0x40, 0x49, 0x52, 0x5B, 00031 0x2C, 0x25, 0x3E, 0x37, 0x08, 0x01, 0x1A, 0x13, 00032 0x7D, 0x74, 0x6F, 0x66, 0x59, 0x50, 0x4B, 0x42, 00033 0x35, 0x3C, 0x27, 0x2E, 0x11, 0x18, 0x03, 0x0A, 00034 0x56, 0x5F, 0x44, 0x4D, 0x72, 0x7B, 0x60, 0x69, 00035 0x1E, 0x17, 0x0C, 0x05, 0x3A, 0x33, 0x28, 0x21, 00036 0x4F, 0x46, 0x5D, 0x54, 0x6B, 0x62, 0x79, 0x70, 00037 0x07, 0x0E, 0x15, 0x1C, 0x23, 0x2A, 0x31, 0x38, 00038 0x41, 0x48, 0x53, 0x5A, 0x65, 0x6C, 0x77, 0x7E, 00039 0x09, 0x00, 0x1B, 0x12, 0x2D, 0x24, 0x3F, 0x36, 00040 0x58, 0x51, 0x4A, 0x43, 0x7C, 0x75, 0x6E, 0x67, 00041 0x10, 0x19, 0x02, 0x0B, 0x34, 0x3D, 0x26, 0x2F, 00042 0x73, 0x7A, 0x61, 0x68, 0x57, 0x5E, 0x45, 0x4C, 00043 0x3B, 0x32, 0x29, 0x20, 0x1F, 0x16, 0x0D, 0x04, 00044 0x6A, 0x63, 0x78, 0x71, 0x4E, 0x47, 0x5C, 0x55, 00045 0x22, 0x2B, 0x30, 0x39, 0x06, 0x0F, 0x14, 0x1D, 00046 0x25, 0x2C, 0x37, 0x3E, 0x01, 0x08, 0x13, 0x1A, 00047 0x6D, 0x64, 0x7F, 0x76, 0x49, 0x40, 0x5B, 0x52, 00048 0x3C, 0x35, 0x2E, 0x27, 0x18, 0x11, 0x0A, 0x03, 00049 0x74, 0x7D, 0x66, 0x6F, 0x50, 0x59, 0x42, 0x4B, 00050 0x17, 0x1E, 0x05, 0x0C, 0x33, 0x3A, 0x21, 0x28, 00051 0x5F, 0x56, 0x4D, 0x44, 0x7B, 0x72, 0x69, 0x60, 00052 0x0E, 0x07, 0x1C, 0x15, 0x2A, 0x23, 0x38, 0x31, 00053 0x46, 0x4F, 0x54, 0x5D, 0x62, 0x6B, 0x70, 0x79 00054 }; 00055 } 00056 00057 char CRC7(const char* data, int length) 00058 { 00059 //Calculate the CRC7 checksum for the specified data block 00060 char crc = 0; 00061 for (int i = 0; i < length; i++) { 00062 crc = m_CRC7Table[(crc << 1) ^ data[i]]; 00063 } 00064 00065 //Return the calculated checksum 00066 return crc; 00067 }
Generated on Wed Jul 13 2022 11:53:38 by
1.7.2
