Skip to content

Commit 4f134fb

Browse files
authored
Targets: Fixes R9M linking issue (ExpressLRS#277)
1 parent debcab3 commit 4f134fb

5 files changed

Lines changed: 6 additions & 294 deletions

File tree

src/platformio.ini

Lines changed: 3 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -40,19 +40,7 @@ lib_deps =
4040
https://github.com/PaoloP74/extEEPROM.git
4141

4242
[env:Frsky_TX_R9M_via_stock_BL]
43-
44-
board = bluepill_f103c8
45-
build_unflags = -Os
46-
build_flags =
47-
-D TARGET_R9M_TX
48-
-D PLATFORM_STM32
49-
-D HSE_VALUE=12000000U
50-
-O2
51-
-DVECT_TAB_OFFSET=0x4000U
52-
board_build.ldscript = variants/R9M_stock_ldscript.ld
53-
board_build.flash_offset = 0x4000
54-
src_filter = ${env:Frsky_TX_R9M_via_STLINK.src_filter}
55-
lib_deps = ${env:Frsky_TX_R9M_via_STLINK.lib_deps}
43+
extends = env:Frsky_TX_R9M_via_STLINK
5644

5745
[env:Frsky_TX_R9M_via_WIFI]
5846
@@ -67,37 +55,10 @@ src_filter = ${env:Frsky_TX_R9M_via_STLINK.src_filter}
6755
lib_deps = ${env:Frsky_TX_R9M_via_STLINK.lib_deps}
6856

6957
[env:Frsky_TX_R9M_LITE_via_STLINK]
70-
71-
board = bluepill_f103c8
72-
build_unflags = -Os
73-
build_flags =
74-
-D TARGET_R9M_LITE_TX
75-
-D PLATFORM_STM32
76-
-D HSE_VALUE=12000000U
77-
-O2
78-
-DVECT_TAB_OFFSET=0x4000U
79-
board_build.ldscript = variants/R9M_ldscript.ld
80-
board_build.flash_offset = 0x4000
81-
upload_flags =
82-
BOOTLOADER=bootloader/r9m_bootloader.bin
83-
VECT_OFFSET=0x4000
84-
src_filter = ${env:Frsky_TX_R9M_via_STLINK.src_filter}
85-
lib_deps = ${env:Frsky_TX_R9M_via_STLINK.lib_deps}
58+
extends = env:Frsky_TX_R9M_via_STLINK
8659

8760
[env:Frsky_TX_R9M_LITE_via_stock_BL]
88-
89-
board = bluepill_f103c8
90-
build_unflags = -Os
91-
build_flags =
92-
-D TARGET_R9M_LITE_TX
93-
-D PLATFORM_STM32
94-
-D HSE_VALUE=12000000U
95-
-O2
96-
-DVECT_TAB_OFFSET=0x4000U
97-
board_build.ldscript = variants/R9M_stock_ldscript.ld
98-
board_build.flash_offset = 0x4000
99-
src_filter = ${env:Frsky_TX_R9M_LITE_via_STLINK.src_filter}
100-
lib_deps = ${env:Frsky_TX_R9M_LITE_via_STLINK.lib_deps}
61+
extends = env:Frsky_TX_R9M_via_STLINK
10162

10263
[env:Frsky_TX_R9M_LITE_PRO_via_STLINK]
10364

src/python/build_env_setup.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,11 @@
1111
target_name = env['PIOENV'].upper()
1212
print("STM ENv: '%s'" % target_name)
1313
if "_R9M_" in target_name:
14+
env.AddPostAction("buildprog", [opentx.gen_elrs])
1415
if "WIFI" in target_name:
1516
env.Replace(UPLOADCMD=upload_via_esp8266_backpack.on_upload)
1617
else:
17-
env.AddPostAction("buildprog", [opentx.gen_elrs, opentx.gen_frsky])
18-
if "STOCK" not in target_name:
19-
env.Replace(UPLOADCMD=stlink.on_upload)
18+
env.Replace(UPLOADCMD=stlink.on_upload)
2019
elif "_STLINK" in target_name:
2120
env.Replace(UPLOADCMD=stlink.on_upload)
2221
elif "_BETAFLIGHTPASSTHROUGH" in target_name:

src/python/opentx.py

Lines changed: 0 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,7 @@
22
import sys
33

44

5-
def gen_multi_bin(source, target, env):
6-
target_bin = target[0]
7-
bin_path = os.path.dirname(target_bin.rstr())
8-
bin_target = os.path.join(bin_path, 'elrs.opentx.bin')
9-
with open(bin_target, "wb+") as _out:
10-
_out.write(target_bin.get_contents())
11-
# append version information (24bytes) to end of the bin file
12-
_out.write("multi-x00000b81-01030073".encode('utf-8'))
13-
_out.close()
14-
sys.stdout.write("Copy %s to SD card and choose flash external multi" % bin_target)
15-
sys.stdout.flush()
16-
17-
185
def gen_elrs(source, target, env):
19-
#if not "_stock" in env['PIOENV']:
20-
# return
216
source_bin = source[0]
227
sys.stdout.write("Source bin: %s \n" % source_bin)
238
bin_path = os.path.dirname(source_bin.rstr())
@@ -31,48 +16,3 @@ def gen_elrs(source, target, env):
3116
sys.stdout.write("=====================================================================================================================================\n")
3217
sys.stdout.write("\n")
3318
sys.stdout.flush()
34-
35-
36-
def gen_frsky(source, target, env):
37-
if "_stock" in env['PIOENV']:
38-
return
39-
sys.stdout.write("\n")
40-
sys.stdout.write("\n")
41-
sys.stdout.write("Building flashable .frk file...\n")
42-
target_bin = source[0] # target[0]
43-
sys.stdout.write("Source bin: %s \n" % target_bin)
44-
bin_path = os.path.dirname(target_bin.rstr())
45-
bin_target = os.path.join(bin_path, 'elrs.frk')
46-
with open(bin_target, "wb+") as _out:
47-
bin_content = target_bin.get_contents()
48-
# append FrSky header (16bytes)
49-
'''
50-
struct FrSkyFirmwareInformation_no_pack {
51-
uint32_t fourcc; = 0x4B535246
52-
uint8_t headerVersion; = 1
53-
uint8_t firmwareVersionMajor;
54-
uint8_t firmwareVersionMinor;
55-
uint8_t firmwareVersionRevision;
56-
uint32_t size; == len(bin_content)
57-
uint8_t productFamily;
58-
uint8_t productId;
59-
uint16_t crc;
60-
};
61-
'''
62-
sys.stdout.write("Bin size: %u \n" % len(bin_content))
63-
_out.write(b"\x46\x52\x53\x4B") # fourcc
64-
_out.write(b"\x01") # header version
65-
_out.write(b"\x00\x00\x00") # fw versions
66-
size = len(bin_content) + 16
67-
_out.write(bytearray(
68-
[size & 0xFF, size >> 8 & 0xFF, size >> 16 & 0xFF, size >> 24 & 0xFF]))
69-
_out.write(b"\x00\x00") # productFamily, productId
70-
_out.write(b"\x00\x00") # crc
71-
_out.write(bin_content)
72-
_out.close()
73-
sys.stdout.write("\n")
74-
sys.stdout.write("=====================================================================================================================================\n")
75-
sys.stdout.write("|| !!! Copy %s to SD card and choose flash external in order to flash via OpenTX !!! ||\n" % bin_target)
76-
sys.stdout.write("=====================================================================================================================================\n")
77-
sys.stdout.write("\n")
78-
sys.stdout.flush()

src/variants/R9M_ldscript.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ MEMORY
6363
{
6464
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K
6565
/*FLASH (rx) : ORIGIN = 0x8002000, LENGTH = 128K - 0x2000*/
66-
FLASH (rx) : ORIGIN = 0x8002000, LENGTH = 64K - 0x2000
66+
FLASH (rx) : ORIGIN = 0x8004000, LENGTH = 64K - 0x4000
6767
}
6868

6969
/* Define output sections */

src/variants/R9M_stock_ldscript.ld

Lines changed: 0 additions & 188 deletions
This file was deleted.

0 commit comments

Comments
 (0)