Skip to content

Commit 63f5c97

Browse files
Configuration of user trim moved to targets.json
1 parent eaf7265 commit 63f5c97

File tree

2 files changed

+51
-17
lines changed

2 files changed

+51
-17
lines changed

targets/targets.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2327,6 +2327,32 @@
23272327
"inherits": ["Target"],
23282328
"core": "Cortex-M3",
23292329
"extra_labels": ["ONSEMI"],
2330+
"config": {
2331+
"mac-addr-low": {
2332+
"help": "Lower 32 bits of the MAC extended address",
2333+
"value": "0x12345678"
2334+
},
2335+
"mac-addr-high": {
2336+
"help": "Higher 32 bits of the MAC extended address",
2337+
"value": "0xACDE4800"
2338+
},
2339+
"32KHz-clk-trim": {
2340+
"help": "32KHz clock trim",
2341+
"value": "0x3A"
2342+
},
2343+
"32MHz-clk-trim": {
2344+
"help": "32MHz clock trim",
2345+
"value": "0x16"
2346+
},
2347+
"rssi-trim": {
2348+
"help": "RSSI trim",
2349+
"value": "0x3D"
2350+
},
2351+
"txtune-trim": {
2352+
"help": "TX tune trim",
2353+
"value": "0x12"
2354+
}
2355+
},
23302356
"post_binary_hook": {"function": "NCS36510TargetCode.ncs36510_addfib"},
23312357
"macros": ["CM3", "CPU_NCS36510", "TARGET_NCS36510", "LOAD_ADDRESS=0x3000"],
23322358
"supported_toolchains": ["GCC_ARM", "ARM", "IAR"],

tools/add_fib.py

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@
1515
import itertools
1616
import binascii
1717
import intelhex
18-
import json
19-
18+
from tools.config import Config
2019

2120
FIB_BASE = 0x2000
2221
FLASH_BASE = 0x3000
@@ -155,21 +154,30 @@ def add_fib_at_start(arginput):
155154
for i in range(fib_start + dummy_fib_size + fib_size, trim_area_start):
156155
output_hex_file[i] = 0xFF
157156

158-
# add trim data from json
159-
with open('./mbed-os/targets/TARGET_ONSEMI/TARGET_NCS36510/ncs36510_user_trim.json') as json_data:
160-
trimdata = json.load(json_data)
161-
mac_addr_low = int(trimdata["mac-addr-low"], 16)
162-
mac_addr_high = int(trimdata["mac-addr-high"], 16)
163-
clk_32k_trim = int(trimdata["32KHz-clk-trim"], 16)
164-
clk_32m_trim = int(trimdata["32MHz-clk-trim"], 16)
165-
rssi_trim = int(trimdata["rssi-trim"], 16)
166-
txtune = int(trimdata["txtune-trim"], 16)
157+
# Read in configuration data from the config parameter in targets.json
158+
configData = Config('NCS36510')
159+
paramData = configData.get_target_config_data()
160+
for v in paramData.values():
161+
if (v.name == "target.mac-addr-high"):
162+
mac_addr_high = int(v.value, 16)
163+
elif (v.name == "target.mac-addr-low"):
164+
mac_addr_low = int(v.value,16)
165+
elif (v.name == "target.32KHz-clk-trim"):
166+
clk_32k_trim = int(v.value,16)
167+
elif (v.name == "target.32MHz-clk-trim"):
168+
clk_32m_trim = int(v.value,16)
169+
elif (v.name == "target.rssi-trim"):
170+
rssi = int(v.value,16)
171+
elif (v.name == "target.txtune-trim"):
172+
txtune = int(v.value,16)
173+
else:
174+
print("Not a valid param")
167175

168176
output_hex_file[trim_area_start + 0] = mac_addr_low & 0xFF
169177
output_hex_file[trim_area_start + 1] = (mac_addr_low >> 8) & 0xFF
170178
output_hex_file[trim_area_start + 2] = (mac_addr_low >> 16) & 0xFF
171179
output_hex_file[trim_area_start + 3] = (mac_addr_low >> 24) & 0xFF
172-
180+
173181
output_hex_file[trim_area_start + 4] = mac_addr_high & 0xFF
174182
output_hex_file[trim_area_start + 5] = (mac_addr_high >> 8) & 0xFF
175183
output_hex_file[trim_area_start + 6] = (mac_addr_high >> 16) & 0xFF
@@ -185,16 +193,16 @@ def add_fib_at_start(arginput):
185193
output_hex_file[trim_area_start + 14] = (clk_32m_trim >> 16) & 0xFF
186194
output_hex_file[trim_area_start + 15] = (clk_32m_trim >> 24) & 0xFF
187195

188-
output_hex_file[trim_area_start + 16] = rssi_trim & 0xFF
189-
output_hex_file[trim_area_start + 17] = (rssi_trim >> 8) & 0xFF
190-
output_hex_file[trim_area_start + 18] = (rssi_trim >> 16) & 0xFF
191-
output_hex_file[trim_area_start + 19] = (rssi_trim >> 24) & 0xFF
196+
output_hex_file[trim_area_start + 16] = rssi & 0xFF
197+
output_hex_file[trim_area_start + 17] = (rssi >> 8) & 0xFF
198+
output_hex_file[trim_area_start + 18] = (rssi >> 16) & 0xFF
199+
output_hex_file[trim_area_start + 19] = (rssi >> 24) & 0xFF
192200

193201
output_hex_file[trim_area_start + 20] = txtune & 0xFF
194202
output_hex_file[trim_area_start + 21] = (txtune >> 8) & 0xFF
195203
output_hex_file[trim_area_start + 22] = (txtune >> 16) & 0xFF
196204
output_hex_file[trim_area_start + 23] = (txtune >> 24) & 0xFF
197-
205+
198206
# pad the rest of the area with 0xFF
199207
for i in range(trim_area_start + trim_size, user_code_start):
200208
output_hex_file[i] = 0xFF

0 commit comments

Comments
 (0)