Add CRC8 calculation subsystem to quantum (#12641)
* Intended usage is data validation in split transport code.
* Default space efficient algorithm.
* Opt-in fast table based algorithmn with #define CRC8_USE_TABLE switch.
* Define switches for size and speed optimized versions, the default is size
  optimized by using uint_least8_t as datatype for calculations.
  * #define CRC8_OPTIMIZE_SPEED uses uint_fast8_t as datatype for
    calculations, this only affects 32-bit Archs like ARM and RISC-V.
* Placeholder crc_init() function for hardware backed crc calculation,
  not implemented yet.
			
			
This commit is contained in:
		
							parent
							
								
									67fa2568fe
								
							
						
					
					
						commit
						ef92c9ee2c
					
				
					 4 changed files with 115 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -103,6 +103,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
#ifdef EEPROM_DRIVER
 | 
			
		||||
#    include "eeprom_driver.h"
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(CRC_ENABLE)
 | 
			
		||||
#    include "crc.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
static uint32_t last_input_modification_time = 0;
 | 
			
		||||
uint32_t        last_input_activity_time(void) { return last_input_modification_time; }
 | 
			
		||||
| 
						 | 
				
			
			@ -300,6 +303,9 @@ void keyboard_init(void) {
 | 
			
		|||
    timer_init();
 | 
			
		||||
    sync_timer_init();
 | 
			
		||||
    matrix_init();
 | 
			
		||||
#if defined(CRC_ENABLE)
 | 
			
		||||
    crc_init();
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef VIA_ENABLE
 | 
			
		||||
    via_init();
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue