aboutsummaryrefslogtreecommitdiff
path: root/Kconfig
blob: 83080bb1747fa8706560941c65362d181a52d76c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
mainmenu "AVR-IOE configuration"

config IOEROOT
	string
	option env="IOEROOT"
source "$IOEROOT/include/mcu/Kconfig"

config F_CPU
	int "CPU frequency in kHz (F_CPU)"
	default 16000

# Toolchain #####################################################################

menu "Compilation options"

config GNUTOOLCHAIN_PREFIX
	string "GNU Toolchain prefix"
	default "avr-"

config CONFCFLAGS
	string "Compilation CFlags"
	default "-Os -ffunction-sections -fdata-sections -fshort-enums -Wall"

endmenu

# Error handling ################################################################

config CONFIG_ERRORS
	bool "Errors support"
	default y

if CONFIG_ERRORS

menu "Errors handling"

config CONFIG_EH_RESTART
	bool "Restart MCU on error detection"
	default y

config CONFIG_EH_MEMORY
	bool "(TODO) Write error code and possible stack trase to EEPROM"
	default n

config CONFIG_EH_LED
	bool "Signal error detection by LED"
	depends on CONFIG_IOPORTS
	default n

config CONFIG_EH_LED_IOPIN
	string "Error detection led output pin"
	depends on CONFIG_EH_LED
	default "IO_B0"
	---help---
	Specifies IO pin which will be pulled up on error detection.
	This string should be valid IO port (for example "IO_B0") or pair of group
	mask divided by comma (for example "IO_B, _BV(0)").

config CONFIG_EH_USART
	bool "Send error informations by UART"
	depends on CONFIG_USART && CONFIG_USART_OUTPUT_BUFFER
	default n

endmenu

config CONFIG_CHECK_ARGUMENTS
	bool "Check arguments for all functions in library"
	default n

endif

# IO Ports ######################################################################

config MCUSUPPORT_IOPORTS
	bool
	default n

config CONFIG_IOPORTS
	bool "Input/Output ports"
	default y
	depends on MCUSUPPORT_IOPORTS

config MCUSUPPORT_PCINT0
	bool
	default n
config MCUSUPPORT_PCINT1
	bool
	default n
config MCUSUPPORT_PCINT2
	bool
	default n

config CONFIG_IOPORTS_PCINT
	bool "Input/Output ports change interrupts"
	depends on CONFIG_IOPORTS
	depends on MCUSUPPORT_PCINT0 || MCUSUPPORT_PCINT1 || MCUSUPPORT_PCINT2

# SPI ###########################################################################

config MCUSUPPORT_SPI
	bool
	default n

config CONFIG_SPI
	bool "SPI (Serial peripheral interface)"
	depends on MCUSUPPORT_SPI

# USART #########################################################################
config MCUSUPPORT_USART
	bool
	default n

menuconfig CONFIG_USART
	bool "USART (Universal synchronous/asynchronous transceiver)"
	depends on MCUSUPPORT_USART

if CONFIG_USART

config CONFIG_USART_BAUD
	int "Baudrate"
	default 115200

choice USART_PARITY_C
	prompt "Parity"
config USART_PARITY_C_NONE
	bool "None"
config USART_PARITY_C_ODD
	bool "Odd"
config USART_PARITY_C_EVEN
	bool "Even"
endchoice
config CONFIG_USART_PARITY
	string
	default "USART_PARITY_NONE" if USART_PARITY_C_NONE
	default "USART_PARITY_ODD" if USART_PARITY_C_ODD
	default "USART_PARITY_EVEN" if USART_PARITY_C_EVEN

config CONFIG_USART_DATABITS
	int "Data bits"
	default 8
	range 5 8

choice USART_STOPBIT_C
	prompt "Stop bit"
config USART_STOPBIT_C_SINGLE
	bool "Single"
config USART_STOPBIT_C_DOUBLE
	bool "Double"
endchoice
config CONFIG_USART_STOPBIT
	string
	default "USART_STOPBIT_SINGLE" if USART_STOPBIT_C_SINGLE
	default "USART_STOPBIT_DOUBLE" if USART_STOPBIT_C_DOUBLE

config CONFIG_USART_OUTPUT_BUFFER
	bool "Use output buffer"
	default n

config CONFIG_USART_OUTBUFFER_SIZE
	int "Output buffer size in bytes." if CONFIG_USART_OUTPUT_BUFFER
	default 0 if ! CONFIG_USART_OUTPUT_BUFFER
	range 1 512000 if CONFIG_USART_OUTPUT_BUFFER
	default 32

choice USART_OUTBUFFER_MODE_C
	prompt "Output buffer replacement policy" if CONFIG_USART_OUTPUT_BUFFER
config USART_OUTBUFFER_MODE_C_BLOCK
	bool "Block"
config USART_OUTBUFFER_MODE_C_OVERWRITE
	bool "Overwrite"
config USART_OUTBUFFER_MODE_C_DROP
	bool "Drop"
endchoice
config CONFIG_USART_OUTBUFFER_MODE
	int
	default 1 if USART_OUTBUFFER_MODE_C_OVERWRITE
	default 2 if USART_OUTBUFFER_MODE_C_DROP
	default 0

config CONFIG_USART_INPUT_BUFFER
	bool "Use input buffer"

config CONFIG_USART_INBUFFER_SIZE
	int "Input buffer size in bytes." if CONFIG_USART_INPUT_BUFFER
	default 0 if ! CONFIG_USART_INPUT_BUFFER
	range 1 512000 if CONFIG_USART_INPUT_BUFFER
	default 32

choice USART_INBUFFER_MODE_C
	prompt "Input buffer replacement policy" if CONFIG_USART_INPUT_BUFFER
config USART_INBUFFER_MODE_C_BLOCK
	bool "Block"
config USART_INBUFFER_MODE_C_OVERWRITE
	bool "Overwrite"
config USART_INBUFFER_MODE_C_DROP
	bool "Drop"
endchoice
config CONFIG_USART_INBUFFER_MODE
	int
	default 1 if USART_INBUFFER_MODE_C_OVERWRITE
	default 2 if USART_INBUFFER_MODE_C_DROP
	default 0

config CONFIG_USART_OUTFILE
	bool "STD FILE support for output"
	depends on CONFIG_USART_OUTPUT_BUFFER

config CONFIG_USART_INFILE
	bool "STD FILE support for input"
	depends on CONFIG_USART_INPUT_BUFFER

endif

# Timers ########################################################################

config CONFIG_TIMERS
	bool "Timers"