Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 4242a6d

Browse filesBrowse files
authored
Merge pull request #99 from sparkfun/LoRaSerial
Add support for LoRaSerial
2 parents 615b7cc + ae3eb54 commit 4242a6d
Copy full SHA for 4242a6d

File tree

Expand file treeCollapse file tree

11 files changed

+987
-2
lines changed
Filter options
Expand file treeCollapse file tree

11 files changed

+987
-2
lines changed

‎sparkfun/samd/boards.txt

Copy file name to clipboardExpand all lines: sparkfun/samd/boards.txt
+30Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,36 @@ RedBoard_Turbo.build.pid=0x0015
214214
RedBoard_Turbo.bootloader.tool=openocd
215215
RedBoard_Turbo.bootloader.file=turbo/bootloader-sparkfun-redboard-turbo-v2.0.0-adafruit.4-12-g2d4ec73-dirty.bin
216216

217+
LoRaSerial.name=SparkFun LoRaSerial
218+
LoRaSerial.vid.0=0x1B4F
219+
LoRaSerial.pid.0=0x002A
220+
LoRaSerial.vid.1=0x1B4F
221+
LoRaSerial.pid.1=0x002B
222+
LoRaSerial.upload.tool=bossac
223+
LoRaSerial.upload.protocol=sam-ba
224+
LoRaSerial.upload.maximum_size=262144
225+
LoRaSerial.upload.maximum_data_size=32768
226+
LoRaSerial.upload.offset=0x2000
227+
LoRaSerial.upload.use_1200bps_touch=true
228+
LoRaSerial.upload.wait_for_upload_port=true
229+
LoRaSerial.upload.native_usb=true
230+
LoRaSerial.build.mcu=cortex-m0plus
231+
LoRaSerial.build.f_cpu=48000000L
232+
LoRaSerial.build.usb_product="LoRaSerial"
233+
LoRaSerial.build.usb_manufacturer="SparkFun"
234+
LoRaSerial.build.board=SAMD_ZERO
235+
LoRaSerial.build.core=arduino
236+
LoRaSerial.build.extra_flags=-D__SAMD21G18A__ {build.usb_flags}
237+
LoRaSerial.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
238+
LoRaSerial.build.openocdscript=openocd_scripts/arduino_zero.cfg
239+
LoRaSerial.build.variant=SparkFun_LoRaSerial
240+
LoRaSerial.build.variant_system_lib=
241+
LoRaSerial.build.extra_combine_flags=
242+
LoRaSerial.build.vid=0x1B4F
243+
LoRaSerial.build.pid=0x002A
244+
LoRaSerial.bootloader.tool=openocd
245+
LoRaSerial.bootloader.file=loraserial/SparkFun-LoRaSerial-UF2-Bootloader.elf
246+
217247

218248
samd51_thing_plus.name=SparkFun SAMD51 Thing Plus
219249
samd51_thing_plus.vid.0=0x1B4F
Binary file not shown.

‎sparkfun/samd/platform.txt

Copy file name to clipboardExpand all lines: sparkfun/samd/platform.txt
+4-2Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ compiler.warning_flags.default=
3131
compiler.warning_flags.more=-Wall
3232
compiler.warning_flags.all=-Wall -Wextra
3333

34-
compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/
34+
compiler.path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/
35+
#compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/
3536
compiler.c.cmd=arm-none-eabi-gcc
3637
compiler.c.flags=-mcpu={build.mcu} -mthumb -c -g -Os {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -MMD
3738
compiler.c.elf.cmd=arm-none-eabi-gcc
@@ -109,7 +110,8 @@ recipe.output.save_file={build.project_name}.{build.variant}.{build.preferred_ou
109110

110111
## Compute size
111112
recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf"
112-
recipe.size.regex=\.text\s+([0-9]+).*
113+
recipe.size.regex=^(?:\.text|\.data|)\s+([0-9]+).*
114+
recipe.size.regex.data=^(?:\.data|\.bss)\s+([0-9]+).*
113115

114116
# Uploader tools
115117
# --------------
+31Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#
2+
# Arduino Zero OpenOCD script.
3+
#
4+
# Copyright (c) 2014-2015 Arduino LLC. All right reserved.
5+
#
6+
# This library is free software; you can redistribute it and/or
7+
# modify it under the terms of the GNU Lesser General Public
8+
# License as published by the Free Software Foundation; either
9+
# version 2.1 of the License, or (at your option) any later version.
10+
#
11+
# This library is distributed in the hope that it will be useful,
12+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14+
# See the GNU Lesser General Public License for more details.
15+
#
16+
# You should have received a copy of the GNU Lesser General Public
17+
# License along with this library; if not, write to the Free Software
18+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19+
#
20+
21+
# Define 'reset' command
22+
define reset
23+
24+
info reg
25+
26+
break main
27+
28+
# End of 'reset' command
29+
end
30+
31+
target remote | openocd -c "interface cmsis-dap" -c "set CHIPNAME at91samd21g18" -f target/at91samdXX.cfg -c "gdb_port pipe; log_output openocd.log"
+211Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
/*
2+
Copyright (c) 2014-2015 Arduino LLC. All right reserved.
3+
4+
This library is free software; you can redistribute it and/or
5+
modify it under the terms of the GNU Lesser General Public
6+
License as published by the Free Software Foundation; either
7+
version 2.1 of the License, or (at your option) any later version.
8+
9+
This library is distributed in the hope that it will be useful,
10+
but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12+
See the GNU Lesser General Public License for more details.
13+
14+
You should have received a copy of the GNU Lesser General Public
15+
License along with this library; if not, write to the Free Software
16+
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17+
*/
18+
19+
/* Linker script to configure memory regions.
20+
* Need modifying for a specific board.
21+
* FLASH.ORIGIN: starting address of flash
22+
* FLASH.LENGTH: length of flash
23+
* RAM.ORIGIN: starting address of RAM bank 0
24+
* RAM.LENGTH: length of RAM bank 0
25+
*/
26+
MEMORY
27+
{
28+
FLASH (rx) : ORIGIN = 0x00000000+0x2000, LENGTH = 0x00040000-0x2000 /* First 8KB used by bootloader */
29+
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000
30+
}
31+
32+
/* Linker script to place sections and symbol values. Should be used together
33+
* with other linker script that defines memory regions FLASH and RAM.
34+
* It references following symbols, which must be defined in code:
35+
* Reset_Handler : Entry of reset handler
36+
*
37+
* It defines following symbols, which code can use without definition:
38+
* __exidx_start
39+
* __exidx_end
40+
* __copy_table_start__
41+
* __copy_table_end__
42+
* __zero_table_start__
43+
* __zero_table_end__
44+
* __etext
45+
* __data_start__
46+
* __preinit_array_start
47+
* __preinit_array_end
48+
* __init_array_start
49+
* __init_array_end
50+
* __fini_array_start
51+
* __fini_array_end
52+
* __data_end__
53+
* __bss_start__
54+
* __bss_end__
55+
* __end__
56+
* end
57+
* __HeapLimit
58+
* __StackLimit
59+
* __StackTop
60+
* __stack
61+
*/
62+
ENTRY(Reset_Handler)
63+
64+
SECTIONS
65+
{
66+
.text :
67+
{
68+
KEEP(*(.isr_vector))
69+
*(.text*)
70+
71+
KEEP(*(.init))
72+
KEEP(*(.fini))
73+
74+
/* .ctors */
75+
*crtbegin.o(.ctors)
76+
*crtbegin?.o(.ctors)
77+
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
78+
*(SORT(.ctors.*))
79+
*(.ctors)
80+
81+
/* .dtors */
82+
*crtbegin.o(.dtors)
83+
*crtbegin?.o(.dtors)
84+
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
85+
*(SORT(.dtors.*))
86+
*(.dtors)
87+
88+
*(.rodata*)
89+
90+
KEEP(*(.eh_frame*))
91+
} > FLASH
92+
93+
.ARM.extab :
94+
{
95+
*(.ARM.extab* .gnu.linkonce.armextab.*)
96+
} > FLASH
97+
98+
__exidx_start = .;
99+
.ARM.exidx :
100+
{
101+
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
102+
} > FLASH
103+
__exidx_end = .;
104+
105+
/* To copy multiple ROM to RAM sections,
106+
* uncomment .copy.table section and,
107+
* define __STARTUP_COPY_MULTIPLE in startup_ARMCMx.S */
108+
/*
109+
.copy.table :
110+
{
111+
. = ALIGN(4);
112+
__copy_table_start__ = .;
113+
LONG (__etext)
114+
LONG (__data_start__)
115+
LONG (__data_end__ - __data_start__)
116+
LONG (__etext2)
117+
LONG (__data2_start__)
118+
LONG (__data2_end__ - __data2_start__)
119+
__copy_table_end__ = .;
120+
} > FLASH
121+
*/
122+
123+
/* To clear multiple BSS sections,
124+
* uncomment .zero.table section and,
125+
* define __STARTUP_CLEAR_BSS_MULTIPLE in startup_ARMCMx.S */
126+
/*
127+
.zero.table :
128+
{
129+
. = ALIGN(4);
130+
__zero_table_start__ = .;
131+
LONG (__bss_start__)
132+
LONG (__bss_end__ - __bss_start__)
133+
LONG (__bss2_start__)
134+
LONG (__bss2_end__ - __bss2_start__)
135+
__zero_table_end__ = .;
136+
} > FLASH
137+
*/
138+
139+
__etext = .;
140+
141+
.data : AT (__etext)
142+
{
143+
__data_start__ = .;
144+
*(vtable)
145+
*(.data*)
146+
147+
. = ALIGN(4);
148+
/* preinit data */
149+
PROVIDE_HIDDEN (__preinit_array_start = .);
150+
KEEP(*(.preinit_array))
151+
PROVIDE_HIDDEN (__preinit_array_end = .);
152+
153+
. = ALIGN(4);
154+
/* init data */
155+
PROVIDE_HIDDEN (__init_array_start = .);
156+
KEEP(*(SORT(.init_array.*)))
157+
KEEP(*(.init_array))
158+
PROVIDE_HIDDEN (__init_array_end = .);
159+
160+
161+
. = ALIGN(4);
162+
/* finit data */
163+
PROVIDE_HIDDEN (__fini_array_start = .);
164+
KEEP(*(SORT(.fini_array.*)))
165+
KEEP(*(.fini_array))
166+
PROVIDE_HIDDEN (__fini_array_end = .);
167+
168+
KEEP(*(.jcr*))
169+
. = ALIGN(4);
170+
/* All data end */
171+
__data_end__ = .;
172+
173+
} > RAM
174+
175+
.bss :
176+
{
177+
. = ALIGN(4);
178+
__bss_start__ = .;
179+
*(.bss*)
180+
*(COMMON)
181+
. = ALIGN(4);
182+
__bss_end__ = .;
183+
} > RAM
184+
185+
.heap (COPY):
186+
{
187+
__end__ = .;
188+
PROVIDE(end = .);
189+
*(.heap*)
190+
__HeapLimit = .;
191+
} > RAM
192+
193+
/* .stack_dummy section doesn't contains any symbols. It is only
194+
* used for linker to calculate size of stack sections, and assign
195+
* values to stack symbols later */
196+
.stack_dummy (COPY):
197+
{
198+
*(.stack*)
199+
} > RAM
200+
201+
/* Set stack top to end of RAM, and stack limit move down by
202+
* size of stack_dummy section */
203+
__StackTop = ORIGIN(RAM) + LENGTH(RAM);
204+
__StackLimit = __StackTop - SIZEOF(.stack_dummy);
205+
PROVIDE(__stack = __StackTop);
206+
207+
__ram_end__ = ORIGIN(RAM) + LENGTH(RAM) -1 ;
208+
209+
/* Check if data + heap + stack exceeds RAM limit */
210+
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
211+
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.