Skyward boardcore
Loading...
Searching...
No Matches
stm32f767xx_mappings.cpp
Go to the documentation of this file.
1/* Copyright (c) 2025 Skyward Experimental Rocketry
2 * Author: Fabrizio Monti
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 * THE SOFTWARE.
21 */
22
23#include "../DMADefs.h"
24
25namespace Boardcore
26{
27
28namespace DMADefs
29{
30const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
32
43 // MEM-TO-MEM (only dma2 can perform mem-to-mem copy)
47 // {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str3,
48 // Channel::CHANNEL0}},
50 // {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str5,
51 // Channel::CHANNEL0}},
53 // {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str7,
54 // Channel::CHANNEL0}},
55
56 // SPI
57 // {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str5,
58 // Channel::CHANNEL3}},
59 // {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str3,
60 // Channel::CHANNEL3}},
63
65 {Peripherals::PE_SPI2_TX, {DMAStreamId::DMA1_Str6, Channel::CHANNEL9}},
66 {Peripherals::PE_SPI2_RX, {DMAStreamId::DMA1_Str1, Channel::CHANNEL9}},
68
73
76 {Peripherals::PE_SPI4_TX, {DMAStreamId::DMA2_Str2, Channel::CHANNEL9}},
78 // {Peripherals::PE_SPI4_RX, {DMAStreamId::DMA2_Str3,
79 // Channel::CHANNEL5}},
80
83 // {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str3,
84 // Channel::CHANNEL2}},
85 // {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str5,
86 // Channel::CHANNEL7}},
87 // {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str5,
88 // Channel::CHANNEL9}},
89
90 // {Peripherals::PE_SPI6_TX, {DMAStreamId::DMA2_Str5,
91 // Channel::CHANNEL1}},
93
94 // {Peripherals::PE_QUADSPI, {DMAStreamId::DMA2_Str7,
95 // Channel::CHANNEL3}},
96 {Peripherals::PE_QUADSPI, {DMAStreamId::DMA2_Str2, Channel::CHANNEL11}},
97
98 // UART & USART
99 // {Peripherals::PE_USART1_TX,
100 // {DMAStreamId::DMA2_Str7, Channel::CHANNEL4}},
103 // {Peripherals::PE_USART1_RX,
104 // {DMAStreamId::DMA2_Str5, Channel::CHANNEL4}},
105
110
117
120
123
126
129
132 // {Peripherals::PE_USART6_TX,
133 // {DMAStreamId::DMA2_Str7, Channel::CHANNEL5}},
138
139 // I2C
144
146 {Peripherals::PE_I2C2_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL8}},
149
151 {Peripherals::PE_I2C3_TX, {DMAStreamId::DMA1_Str0, Channel::CHANNEL8}},
154
155 {Peripherals::PE_I2C4_TX, {DMAStreamId::DMA1_Str6, Channel::CHANNEL8}},
157 {Peripherals::PE_I2C4_RX, {DMAStreamId::DMA1_Str1, Channel::CHANNEL8}},
158
159 // TIMERS
160 // {Peripherals::PE_TIM1_UP, {DMAStreamId::DMA2_Str5,
161 // Channel::CHANNEL6}},
169 // {Peripherals::PE_TIM1_CH1, {DMAStreamId::DMA2_Str3,
170 // Channel::CHANNEL6}},
176
184
192
197
209
211
214
216 // {Peripherals::PE_TIM8_TRIG,
217 // {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
218 // {Peripherals::PE_TIM8_COM, {DMAStreamId::DMA2_Str7,
219 // Channel::CHANNEL7}},
223 // {Peripherals::PE_TIM8_CH2, {DMAStreamId::DMA2_Str3,
224 // Channel::CHANNEL7}},
227 // {Peripherals::PE_TIM8_CH4, {DMAStreamId::DMA2_Str7,
228 // Channel::CHANNEL7}},
229
230 // Others
233
236
238 // {Peripherals::PE_ADC2, {DMAStreamId::DMA2_Str3, Channel::CHANNEL1}},
239
242
244 {Peripherals::PE_SAI1_A, {DMAStreamId::DMA2_Str6, Channel::CHANNEL10}},
245 // {Peripherals::PE_SAI1_A, {DMAStreamId::DMA2_Str3,
246 // Channel::CHANNEL0}},
248 {Peripherals::PE_SAI2_A, {DMAStreamId::DMA2_Str2, Channel::CHANNEL10}},
249
250 // {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str5,
251 // Channel::CHANNEL0}},
253 {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str0, Channel::CHANNEL10}},
254 // {Peripherals::PE_SAI2_B, {DMAStreamId::DMA2_Str7,
255 // Channel::CHANNEL0}},
257 {Peripherals::PE_SAI2_B, {DMAStreamId::DMA2_Str1, Channel::CHANNEL10}},
258
260 // {Peripherals::PE_DCMI, {DMAStreamId::DMA2_Str7, Channel::CHANNEL1}},
261
262 // {Peripherals::PE_SDMMC1, {DMAStreamId::DMA2_Str3,
263 // Channel::CHANNEL4}},
265 {Peripherals::PE_SDMMC2, {DMAStreamId::DMA2_Str0, Channel::CHANNEL11}},
266 // {Peripherals::PE_SDMMC2, {DMAStreamId::DMA2_Str5,
267 // Channel::CHANNEL11}},
268
269 // {Peripherals::PE_CRYP_OUT, {DMAStreamId::DMA2_Str5,
270 // Channel::CHANNEL2}},
272
273 // {Peripherals::PE_HASH_IN, {DMAStreamId::DMA2_Str7,
274 // Channel::CHANNEL2}},
275
280
282 {DMAStreamId::DMA2_Str0, Channel::CHANNEL8}},
284 {DMAStreamId::DMA2_Str4, Channel::CHANNEL8}},
286 {DMAStreamId::DMA2_Str1, Channel::CHANNEL8}},
287 // {Peripherals::PE_DFSDM1_FLT1,
288 // {DMAStreamId::DMA2_Str5, Channel::CHANNEL8}},
290 {DMAStreamId::DMA2_Str2, Channel::CHANNEL8}},
292 {DMAStreamId::DMA2_Str6, Channel::CHANNEL8}},
293 // {Peripherals::PE_DFSDM1_FLT3, {DMAStreamId::DMA2_Str3,
294 // Channel::CHANNEL8}},
295 // {Peripherals::PE_DFSDM1_FLT3,
296 // {DMAStreamId::DMA2_Str7, Channel::CHANNEL8}},
297
298 {Peripherals::PE_JPEG_IN, {DMAStreamId::DMA2_Str0, Channel::CHANNEL9}},
299 // {Peripherals::PE_JPEG_IN, {DMAStreamId::DMA2_Str3,
300 // Channel::CHANNEL9}}
301 {Peripherals::PE_JPEG_OUT, {DMAStreamId::DMA2_Str1, Channel::CHANNEL9}},
302 {Peripherals::PE_JPEG_OUT, {DMAStreamId::DMA2_Str4, Channel::CHANNEL9}},
303};
304
305} // namespace DMADefs
306
307} // namespace Boardcore
const std::multimap< Peripherals, std::pair< DMAStreamId, Channel > > mapPeripherals
Maps the peripherals to the dma streams (and the corresponding channel) that are connected with.
This file includes all the types the logdecoder script will decode.