Skip to content

Commit d1f801a

Browse files
committed
Add support for all radio drivers
1 parent e199890 commit d1f801a

File tree

2 files changed

+105
-14
lines changed

2 files changed

+105
-14
lines changed

as-lib/README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,9 @@ This directory is provided to allow LoRaMac-node to be built as a static library
1212
- LORAMAC_SECURE_ELEMENT Name of the secure element, defaults to SOFT_SE
1313
- LORAMAC_SECURE_ELEMENT_PRE_PROVISIONED Whether the secure element is pre-provisioned (default ON)
1414
- LORAMAC_SOFT_SE_AES_DEC_PREKEYED Whether the SOFT SE secure elements AES support is DEC Prekeyed (default ON)
15-
- LORAMAC_RADIO Name of the radio driver, defaults to SX1276
15+
- LORAMAC_RADIO Name of the radio driver, defaults to sx1272
16+
- LORAMAC_USE_RADIO_DEBUG Enable Radio Debug GPIO's (default OFF)
17+
18+
## TODO
19+
20+
- Submodule update (for LR1110 radio and ATECC608A secure element)

as-lib/radio/CMakeLists.txt

Lines changed: 99 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,107 @@ cmake_minimum_required(VERSION 3.23)
33
project(loramac-radio C)
44

55
if (NOT TARGET ${PROJECT_NAME})
6-
6+
7+
set(LORAMAC_RADIO_LIST sx1272 sx1276 sx126x lr1110)
8+
set(LORAMAC_RADIO sx1272 CACHE STRING "Default radio is sx1272")
9+
set_property(CACHE LORAMAC_RADIO PROPERTY STRINGS ${LORAMAC_RADIO_LIST})
10+
set_property(CACHE LORAMAC_RADIO PROPERTY ADVANCED)
11+
712
add_library(${PROJECT_NAME} STATIC)
8-
9-
target_sources(
10-
${PROJECT_NAME}
11-
PUBLIC
12-
${LORAMAC_SOURCE_DIR}/radio/radio.h
13-
${LORAMAC_SOURCE_DIR}/radio/sx1276/sx1276.h
14-
${LORAMAC_SOURCE_DIR}/radio/sx1276/sx1276Regs-Fsk.h
15-
${LORAMAC_SOURCE_DIR}/radio/sx1276/sx1276Regs-LoRa.h
1613

17-
PRIVATE
18-
${LORAMAC_SOURCE_DIR}/radio/sx1276/sx1276.c
19-
)
20-
14+
if (${LORAMAC_RADIO} MATCHES lr1110)
15+
target_sources(
16+
${PROJECT_NAME}
17+
PUBLIC
18+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110.h
19+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_bootloader.h
20+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_bootloader_types.h
21+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_crypto_engine.h
22+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_crypto_engine_types.h
23+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_driver_version.h
24+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_gnss.h
25+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_gnss_types.h
26+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_radio.h
27+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_radio_types.h
28+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_regmem.h
29+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_system.h
30+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_system_types.h
31+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_wifi.h
32+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_wifi_types.h
33+
34+
PRIVATE
35+
${LORAMAC_SOURCE_DIR}/radio/lr1110/radio.c
36+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_bootloader.c
37+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_crypto_engine.c
38+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_driver_version.c
39+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_gnss.c
40+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_radio.c
41+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_regmem.c
42+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_system.c
43+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src/lr1110_wifi.c
44+
)
45+
target_include_directories(
46+
${PROJECT_NAME}
47+
PUBLIC
48+
${LORAMAC_SOURCE_DIR}/radio/lr1110
49+
${LORAMAC_SOURCE_DIR}/radio/lr1110/lr1110_driver/src
50+
51+
)
52+
elseif (${LORAMAC_RADIO} MATCHES sx126x)
53+
target_sources(
54+
${PROJECT_NAME}
55+
PUBLIC
56+
${LORAMAC_SOURCE_DIR}/radio/sx126x/sx126x.h
57+
58+
PRIVATE
59+
${LORAMAC_SOURCE_DIR}/radio/sx126x/radio.c
60+
${LORAMAC_SOURCE_DIR}/radio/sx126x/sx126x.c
61+
)
62+
target_include_directories(
63+
${PROJECT_NAME}
64+
PUBLIC
65+
${LORAMAC_SOURCE_DIR}/radio/sx126x
66+
)
67+
elseif (${LORAMAC_RADIO} MATCHES sx1272)
68+
target_sources(
69+
${PROJECT_NAME}
70+
PUBLIC
71+
${LORAMAC_SOURCE_DIR}/radio/sx1272/sx1272.h
72+
${LORAMAC_SOURCE_DIR}/radio/sx1272/sx1272Regs-Fsk.h
73+
${LORAMAC_SOURCE_DIR}/radio/sx1272/sx1272Regs-LoRa.h
74+
75+
PRIVATE
76+
${LORAMAC_SOURCE_DIR}/radio/sx1272/sx1272.c
77+
)
78+
target_include_directories(
79+
${PROJECT_NAME}
80+
PUBLIC
81+
${LORAMAC_SOURCE_DIR}/radio/sx1272
82+
)
83+
elseif (${LORAMAC_RADIO} MATCHES sx1276)
84+
target_sources(
85+
${PROJECT_NAME}
86+
PUBLIC
87+
${LORAMAC_SOURCE_DIR}/radio/radio.h
88+
${LORAMAC_SOURCE_DIR}/radio/sx1276/sx1276.h
89+
${LORAMAC_SOURCE_DIR}/radio/sx1276/sx1276Regs-Fsk.h
90+
${LORAMAC_SOURCE_DIR}/radio/sx1276/sx1276Regs-LoRa.h
91+
92+
PRIVATE
93+
${LORAMAC_SOURCE_DIR}/radio/sx1276/sx1276.c
94+
)
95+
target_include_directories(
96+
${PROJECT_NAME}
97+
PUBLIC
98+
${LORAMAC_SOURCE_DIR}/radio/sx1276
99+
)
100+
else()
101+
message(FATAL_ERROR "Unsupported radio driver selected...")
102+
endif()
103+
104+
option(LORAMAC_USE_RADIO_DEBUG "Enable Radio Debug GPIO's" OFF)
105+
target_compile_definitions(${PROJECT_NAME} PUBLIC $<$<BOOL:${LORAMAC_USE_RADIO_DEBUG}>:USE_RADIO_DEBUG>)
106+
21107
target_include_directories(
22108
${PROJECT_NAME}
23109
PUBLIC

0 commit comments

Comments
 (0)