Add compiler_support.h (#25274)
				
					
				
			This commit is contained in:
		
							parent
							
								
									fa24b0fcce
								
							
						
					
					
						commit
						955809bd5a
					
				
					 36 changed files with 142 additions and 81 deletions
				
			
		| 
						 | 
				
			
			@ -22,6 +22,8 @@
 | 
			
		|||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "compiler_support.h"
 | 
			
		||||
 | 
			
		||||
#ifndef I2C_SLAVE_REG_COUNT
 | 
			
		||||
 | 
			
		||||
#    if defined(USE_I2C) && defined(SPLIT_COMMON_TRANSACTIONS)
 | 
			
		||||
| 
						 | 
				
			
			@ -33,7 +35,7 @@
 | 
			
		|||
 | 
			
		||||
#endif // I2C_SLAVE_REG_COUNT
 | 
			
		||||
 | 
			
		||||
_Static_assert(I2C_SLAVE_REG_COUNT < 256, "I2C target registers must be single byte");
 | 
			
		||||
STATIC_ASSERT(I2C_SLAVE_REG_COUNT < 256, "I2C target registers must be single byte");
 | 
			
		||||
 | 
			
		||||
extern volatile uint8_t i2c_slave_reg[I2C_SLAVE_REG_COUNT];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,6 +16,8 @@
 | 
			
		|||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <avr/io.h>
 | 
			
		||||
 | 
			
		||||
#include "compiler_support.h"
 | 
			
		||||
#include "pin_defs.h"
 | 
			
		||||
 | 
			
		||||
typedef uint8_t pin_t;
 | 
			
		||||
| 
						 | 
				
			
			@ -24,9 +26,9 @@ typedef uint8_t pin_t;
 | 
			
		|||
 | 
			
		||||
#define gpio_set_pin_input(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) &= ~_BV((pin)&0xF))
 | 
			
		||||
#define gpio_set_pin_input_high(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) |= _BV((pin)&0xF))
 | 
			
		||||
#define gpio_set_pin_input_low(pin) _Static_assert(0, "GPIO pulldowns in input mode are not available on AVR")
 | 
			
		||||
#define gpio_set_pin_input_low(pin) STATIC_ASSERT(0, "GPIO pulldowns in input mode are not available on AVR")
 | 
			
		||||
#define gpio_set_pin_output_push_pull(pin) (DDRx_ADDRESS(pin) |= _BV((pin)&0xF))
 | 
			
		||||
#define gpio_set_pin_output_open_drain(pin) _Static_assert(0, "Open-drain outputs are not available on AVR")
 | 
			
		||||
#define gpio_set_pin_output_open_drain(pin) STATIC_ASSERT(0, "Open-drain outputs are not available on AVR")
 | 
			
		||||
#define gpio_set_pin_output(pin) gpio_set_pin_output_push_pull(pin)
 | 
			
		||||
 | 
			
		||||
#define gpio_write_pin_high(pin) (PORTx_ADDRESS(pin) |= _BV((pin)&0xF))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue