Bluenet  5.7.0
Bluenet, firmware for nRF52 smart home devices
Loading...
Searching...
No Matches
cs_BoardMap.h
Go to the documentation of this file.
1/*
2 * Author: Crownstone Team
3 * Copyright: Crownstone (https://crownstone.rocks)
4 * Date: Feb 21, 2022
5 * License: LGPLv3+, Apache License 2.0, and/or MIT (triple-licensed)
6 */
7
8#pragma once
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14#include <cfg/cs_Boards.h>
15#include <cfg/cs_DeviceTypes.h>
17#include <stdint.h>
18
19static cs_uicr_data_t mapBoardToUicrData(uint32_t boardVersion) {
20 cs_uicr_data_t data = {
21 .board = boardVersion,
22 .productRegionFamily = {.asInt = 0xFFFFFFFF},
23 .majorMinorPatch = {.asInt = 0xFFFFFFFF},
24 .productionDateHousing = {.asInt = 0xFFFFFFFF},
25 };
26 switch (boardVersion) {
27 case ACR01B1A: {
37 break;
38 }
39 case ACR01B1B: {
49 break;
50 }
51 case ACR01B1C: {
61 break;
62 }
63 case ACR01B1D: {
73 break;
74 }
75 case ACR01B1E: {
85 break;
86 }
87 case ACR01B10B: {
97 break;
98 }
99 case ACR01B10D: {
109 break;
110 }
111 case ACR01B13B: {
121 break;
122 }
123 case ACR01B15A: {
133 break;
134 }
135 case ACR01B2A: {
145 break;
146 }
147 case ACR01B2B: {
157 break;
158 }
159 case ACR01B2C: {
169 break;
170 }
171 case ACR01B2E: {
181 break;
182 }
183 case ACR01B2G: {
193 break;
194 }
195 case ACR01B11A: {
205 break;
206 }
207 case GUIDESTONE: {
217 break;
218 }
219 case CS_USB_DONGLE: {
229 break;
230 }
231 case CR01R02v4: {
241 break;
242 }
243 case PCA10036:
244 case PCA10040:
245 case PCA10056:
246 case PCA10100: {
250 data.majorMinorPatch.fields.major = 0xFF;
251 data.majorMinorPatch.fields.minor = 0xFF;
252 data.majorMinorPatch.fields.patch = 0xFF;
256 break;
257 }
258 }
259 return data;
260}
261
262#ifdef __cplusplus
263}
264#endif
static cs_uicr_data_t mapBoardToUicrData(uint32_t boardVersion)
Definition: cs_BoardMap.h:19
#define ACR01B13B
Definition: cs_Boards.h:64
#define CS_USB_DONGLE
Definition: cs_Boards.h:49
#define ACR01B2G
Definition: cs_Boards.h:84
#define PCA10100
Definition: cs_Boards.h:41
#define GUIDESTONE
Definition: cs_Boards.h:46
#define ACR01B2E
Definition: cs_Boards.h:81
#define ACR01B1A
Definition: cs_Boards.h:54
#define ACR01B1B
Definition: cs_Boards.h:56
#define ACR01B1D
Definition: cs_Boards.h:59
#define ACR01B1C
Definition: cs_Boards.h:58
#define ACR01B15A
Definition: cs_Boards.h:65
#define ACR01B2B
Definition: cs_Boards.h:73
#define PCA10040
Definition: cs_Boards.h:39
#define ACR01B2C
Definition: cs_Boards.h:76
#define ACR01B2A
Definition: cs_Boards.h:70
#define ACR01B1E
Definition: cs_Boards.h:60
#define ACR01B11A
Definition: cs_Boards.h:87
#define ACR01B10D
Definition: cs_Boards.h:62
#define CR01R02v4
Definition: cs_Boards.h:92
#define ACR01B10B
Definition: cs_Boards.h:61
#define PCA10036
We use part of the UICR to store information about the hardware board.
Definition: cs_Boards.h:37
#define PCA10056
Definition: cs_Boards.h:43
#define PRODUCT_CROWNSTONE_BUILTIN_ZERO
Definition: cs_DeviceTypes.h:13
#define PRODUCT_CROWNSTONE_BUILTIN_ONE
Definition: cs_DeviceTypes.h:16
#define PRODUCT_CROWNSTONE_PLUG_ONE
Definition: cs_DeviceTypes.h:19
#define PRODUCT_CROWNSTONE_PLUG_ZERO
Definition: cs_DeviceTypes.h:12
#define PRODUCT_CROWNSTONE_OUTLET
Definition: cs_DeviceTypes.h:20
#define PRODUCT_CROWNSTONE_USB_DONGLE
Definition: cs_DeviceTypes.h:15
#define PRODUCT_DEV_BOARD
Definition: cs_DeviceTypes.h:11
#define PRODUCT_CROWNSTONE_BUILTIN_TWO
Definition: cs_DeviceTypes.h:18
#define PRODUCT_GUIDESTONE
Definition: cs_DeviceTypes.h:14
Struct with all the Crownstone fields in UICR.
Definition: cs_UicrPacket.h:20
uint8_t productFamily
Definition: cs_UicrPacket.h:27
uint8_t major
Definition: cs_UicrPacket.h:37
uint32_t board
Definition: cs_UicrPacket.h:21
struct cs_uicr_data_t::@35::@38 fields
uint8_t region
Definition: cs_UicrPacket.h:26
uint8_t productType
Definition: cs_UicrPacket.h:25
uint8_t housing
Definition: cs_UicrPacket.h:45
uint8_t patch
Definition: cs_UicrPacket.h:35
uint8_t year
Definition: cs_UicrPacket.h:47
union cs_uicr_data_t::@35 productRegionFamily
union cs_uicr_data_t::@37 productionDateHousing
uint8_t week
Definition: cs_UicrPacket.h:46
uint8_t minor
Definition: cs_UicrPacket.h:36
union cs_uicr_data_t::@36 majorMinorPatch