Skip to content

Commit 582bc89

Browse files
committed
Add unisense target
1 parent c7c9ab2 commit 582bc89

File tree

13 files changed

+1567
-0
lines changed

13 files changed

+1567
-0
lines changed

boards.txt

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,3 +144,43 @@ nano33ble.bootloader.config=-f target/nrf52.cfg
144144
nano33ble.bootloader.programmer=-f interface/cmsis-dap.cfg
145145
nano33ble.bootloader.file=nano33ble/bootloader.hex
146146

147+
##############################################################
148+
149+
unisense.name=Unisense
150+
unisense.build.core=arduino
151+
unisense.build.crossprefix=arm-none-eabi-
152+
unisense.build.compiler_path={runtime.tools.arm-none-eabi-gcc.path}/bin/
153+
154+
unisense.build.variant=UNISENSE
155+
unisense.build.mcu=cortex-m4
156+
unisense.build.extra_flags=
157+
unisense.build.architecture=cortex-m4
158+
unisense.build.fpu=fpv4-sp-d16
159+
unisense.build.float-abi=softfp
160+
unisense.build.board=UNISENSE
161+
unisense.build.ldscript=linker_script.ld
162+
unisense.compiler.mbed.arch.define=-DARDUINO_ARCH_NRF52832
163+
unisense.compiler.mbed.defines={build.variant.path}/defines.txt
164+
unisense.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
165+
unisense.compiler.mbed.cflags={build.variant.path}/cflags.txt
166+
unisense.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
167+
unisense.compiler.mbed.includes={build.variant.path}/includes.txt
168+
unisense.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
169+
unisense.compiler.mbed="{build.variant.path}/libs/libmbed.a"
170+
171+
unisense.upload.tool=openocd
172+
unisense.upload.protocol=
173+
unisense.upload.config=-f target/nrf52.cfg
174+
unisense.upload.programmer=-f interface/cmsis-dap.cfg
175+
unisense.upload.use_1200bps_touch=false
176+
unisense.upload.wait_for_upload_port=true
177+
unisense.upload.native_usb=true
178+
unisense.upload.maximum_size=527616
179+
unisense.upload.maximum_data_size=64288
180+
181+
unisense.bootloader.tool=openocd
182+
unisense.bootloader.extra_action.preflash=echo INFO:removed_mass-erase
183+
unisense.bootloader.config=-f target/nrf52.cfg
184+
unisense.bootloader.programmer=-f interface/cmsis-dap.cfg
185+
unisense.bootloader.file=nano33ble/bootloader.hex
186+

variants/UNISENSE/cflags.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
-c
2+
-std=gnu11
3+
-DMBED_RAM_SIZE=0x10000
4+
-DMBED_RAM_START=0x20000000
5+
-DMBED_ROM_SIZE=0x80000
6+
-DMBED_ROM_START=0x0
7+
-DMBED_TRAP_ERRORS_ENABLED=1
8+
-Os
9+
-Wall
10+
-Wextra
11+
-Wno-missing-field-initializers
12+
-Wno-unused-parameter
13+
-fdata-sections
14+
-ffunction-sections
15+
-fmessage-length=0
16+
-fno-exceptions
17+
-fomit-frame-pointer
18+
-funsigned-char
19+
-g
20+
-mcpu=cortex-m4
21+
-mfloat-abi=softfp
22+
-mfpu=fpv4-sp-d16
23+
-mthumb

variants/UNISENSE/conf/mbed_app.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"macros": [
3+
"MBED_HEAP_STATS_ENABLED=1",
4+
"MBED_STACK_STATS_ENABLED=1",
5+
"MBED_MEM_TRACING_ENABLED=1",
6+
"NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS=8"
7+
],
8+
"target_overrides": {
9+
"*": {
10+
"target.printf_lib": "std",
11+
"platform.stdio-buffered-serial": true,
12+
"platform.stdio-baud-rate": 115200,
13+
"platform.default-serial-baud-rate": 115200,
14+
"platform.callback-nontrivial": true,
15+
"cordio.max-connections": 5
16+
}
17+
}
18+
}

variants/UNISENSE/cxxflags.txt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
-Wvla
2+
-c
3+
-fno-rtti
4+
-std=gnu++14
5+
-DMBED_RAM_SIZE=0x10000
6+
-DMBED_RAM_START=0x20000000
7+
-DMBED_ROM_SIZE=0x80000
8+
-DMBED_ROM_START=0x0
9+
-DMBED_TRAP_ERRORS_ENABLED=1
10+
-Os
11+
-Wall
12+
-Wextra
13+
-Wno-missing-field-initializers
14+
-Wno-unused-parameter
15+
-fdata-sections
16+
-ffunction-sections
17+
-fmessage-length=0
18+
-fno-exceptions
19+
-fomit-frame-pointer
20+
-funsigned-char
21+
-g
22+
-mcpu=cortex-m4
23+
-mfloat-abi=softfp
24+
-mfpu=fpv4-sp-d16
25+
-mthumb

variants/UNISENSE/defines.txt

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
2+
-DARM_MATH_CM4
3+
-DBOARD_PCA10040
4+
-D__CMSIS_RTOS
5+
-DCMSIS_VECTAB_VIRTUAL
6+
-DCMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\"
7+
-D__CORTEX_M4
8+
-DDEVICE_ANALOGIN=1
9+
-DDEVICE_FLASH=1
10+
-DDEVICE_I2C=1
11+
-DDEVICE_I2C_ASYNCH=1
12+
-DDEVICE_I2CSLAVE=1
13+
-DDEVICE_INTERRUPTIN=1
14+
-DDEVICE_ITM=1
15+
-DDEVICE_LPTICKER=1
16+
-DDEVICE_PORTIN=1
17+
-DDEVICE_PORTINOUT=1
18+
-DDEVICE_PORTOUT=1
19+
-DDEVICE_PWMOUT=1
20+
-DDEVICE_SERIAL=1
21+
-DDEVICE_SERIAL_ASYNCH=1
22+
-DDEVICE_SERIAL_FC=1
23+
-DDEVICE_SLEEP=1
24+
-DDEVICE_SPI=1
25+
-DDEVICE_SPI_ASYNCH=1
26+
-DDEVICE_SYSTICK_CLK_OFF_DURING_SLEEP=1
27+
-DDEVICE_TRNG=1
28+
-DDEVICE_USTICKER=1
29+
-DFEATURE_BLE=1
30+
-D__FPU_PRESENT=1
31+
-D__MBED__=1
32+
-DMBED_BUILD_TIMESTAMP=1606215842.2724562
33+
-D__MBED_CMSIS_RTOS_CM
34+
-DMBED_MPU_CUSTOM
35+
-DMBED_TICKLESS
36+
-DNRF52
37+
-DSWI_DISABLE0
38+
-DTARGET_CORDIO
39+
-DTARGET_CORDIO_LL
40+
-DTARGET_CORTEX
41+
-DTARGET_CORTEX_M
42+
-DTARGET_LIKE_CORTEX_M4
43+
-DTARGET_LIKE_MBED
44+
-DTARGET_M4
45+
-DTARGET_MCU_NRF52832
46+
-DTARGET_NAME=UNISENSE
47+
-DTARGET_NORDIC
48+
-DTARGET_NORDIC_CORDIO
49+
-DTARGET_NRF52
50+
-DTARGET_NRF52832
51+
-DTARGET_NRF5x
52+
-DTARGET_RELEASE
53+
-DTARGET_RTOS_M4_M7
54+
-DTARGET_SDK_15_0
55+
-DTARGET_SOFTDEVICE_NONE
56+
-DTARGET_UNISENSE
57+
-DTOOLCHAIN_GCC
58+
-DTOOLCHAIN_GCC_ARM
59+
-DMBED_NO_GLOBAL_USING_DIRECTIVE=1
60+
-DUSE_ARDUINO_PINOUT

variants/UNISENSE/includes.txt

Lines changed: 405 additions & 0 deletions
Large diffs are not rendered by default.

variants/UNISENSE/ldflags.txt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
-DMBED_BOOT_STACK_SIZE=1024
2+
-DMBED_RAM_SIZE=0x10000
3+
-DMBED_RAM_START=0x20000000
4+
-DMBED_ROM_SIZE=0x80000
5+
-DMBED_ROM_START=0x0
6+
-DXIP_ENABLE=0
7+
-Wl,--gc-sections
8+
-Wl,--wrap,_calloc_r
9+
-Wl,--wrap,_free_r
10+
-Wl,--wrap,_malloc_r
11+
-Wl,--wrap,_memalign_r
12+
-Wl,--wrap,_realloc_r
13+
-Wl,--wrap,atexit
14+
-Wl,--wrap,exit
15+
-Wl,--wrap,main
16+
-Wl,-n
17+
-mcpu=cortex-m4
18+
-mfloat-abi=softfp
19+
-mfpu=fpv4-sp-d16
20+
-mthumb

variants/UNISENSE/libs/libmbed.a

55.7 MB
Binary file not shown.

variants/UNISENSE/linker_script.ld

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
MEMORY
2+
{
3+
FLASH (rx) : ORIGIN = 0x0, LENGTH = 0x80000
4+
RAM_NVIC (rwx) : ORIGIN = 0x20000000, LENGTH = 0xE0
5+
RAM (rwx) : ORIGIN = (0x20000000 + 0xE0), LENGTH = (0x10000 - 0xE0)
6+
}
7+
OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
8+
ENTRY(Reset_Handler)
9+
SECTIONS
10+
{
11+
.text :
12+
{
13+
KEEP(*(.Vectors))
14+
*(.text*)
15+
KEEP(*(.init))
16+
KEEP(*(.fini))
17+
*crtbegin.o(.ctors)
18+
*crtbegin?.o(.ctors)
19+
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
20+
*(SORT(.ctors.*))
21+
*(.ctors)
22+
*crtbegin.o(.dtors)
23+
*crtbegin?.o(.dtors)
24+
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
25+
*(SORT(.dtors.*))
26+
*(.dtors)
27+
*(.rodata*)
28+
KEEP(*(.eh_frame*))
29+
} > FLASH
30+
.sdh_soc_observers :
31+
{
32+
PROVIDE(__start_sdh_soc_observers = .);
33+
KEEP(*(SORT(.sdh_soc_observers*)))
34+
PROVIDE(__stop_sdh_soc_observers = .);
35+
} > FLASH
36+
.sdh_stack_observers :
37+
{
38+
PROVIDE(__start_sdh_stack_observers = .);
39+
KEEP(*(SORT(.sdh_stack_observers*)))
40+
PROVIDE(__stop_sdh_stack_observers = .);
41+
} > FLASH
42+
.sdh_req_observers :
43+
{
44+
PROVIDE(__start_sdh_req_observers = .);
45+
KEEP(*(SORT(.sdh_req_observers*)))
46+
PROVIDE(__stop_sdh_req_observers = .);
47+
} > FLASH
48+
.sdh_state_observers :
49+
{
50+
PROVIDE(__start_sdh_state_observers = .);
51+
KEEP(*(SORT(.sdh_state_observers*)))
52+
PROVIDE(__stop_sdh_state_observers = .);
53+
} > FLASH
54+
.sdh_ble_observers :
55+
{
56+
PROVIDE(__start_sdh_ble_observers = .);
57+
KEEP(*(SORT(.sdh_ble_observers*)))
58+
PROVIDE(__stop_sdh_ble_observers = .);
59+
} > FLASH
60+
.ARM.extab :
61+
{
62+
*(.ARM.extab* .gnu.linkonce.armextab.*)
63+
. = ALIGN(8);
64+
} > FLASH
65+
__exidx_start = .;
66+
.ARM.exidx :
67+
{
68+
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
69+
. = ALIGN(8);
70+
} > FLASH
71+
__exidx_end = .;
72+
__etext = .;
73+
.data : AT (__etext)
74+
{
75+
__data_start__ = .;
76+
*(vtable)
77+
*(.data*)
78+
. = ALIGN(8);
79+
PROVIDE_HIDDEN (__preinit_array_start = .);
80+
KEEP(*(.preinit_array))
81+
PROVIDE_HIDDEN (__preinit_array_end = .);
82+
. = ALIGN(8);
83+
PROVIDE_HIDDEN (__init_array_start = .);
84+
KEEP(*(SORT(.init_array.*)))
85+
KEEP(*(.init_array))
86+
PROVIDE_HIDDEN (__init_array_end = .);
87+
. = ALIGN(8);
88+
PROVIDE_HIDDEN (__fini_array_start = .);
89+
KEEP(*(SORT(.fini_array.*)))
90+
KEEP(*(.fini_array))
91+
PROVIDE_HIDDEN (__fini_array_end = .);
92+
. = ALIGN(8);
93+
PROVIDE(__start_fs_data = .);
94+
KEEP(*(.fs_data))
95+
PROVIDE(__stop_fs_data = .);
96+
*(.jcr)
97+
. = ALIGN(8);
98+
__data_end__ = .;
99+
} > RAM
100+
__edata = .;
101+
.nvictable (NOLOAD) :
102+
{
103+
PROVIDE(__start_nvictable = .);
104+
KEEP(*(.nvictable))
105+
PROVIDE(__stop_nvictable = .);
106+
} > RAM_NVIC
107+
.noinit (NOLOAD) :
108+
{
109+
PROVIDE(__start_noinit = .);
110+
KEEP(*(.noinit))
111+
PROVIDE(__stop_noinit = .);
112+
} > RAM
113+
.bss :
114+
{
115+
. = ALIGN(8);
116+
__bss_start__ = .;
117+
*(.bss*)
118+
*(COMMON)
119+
. = ALIGN(8);
120+
__bss_end__ = .;
121+
} > RAM
122+
.heap (NOLOAD):
123+
{
124+
__end__ = .;
125+
end = __end__;
126+
*(.heap*);
127+
ASSERT(. <= (ORIGIN(RAM) + LENGTH(RAM) - 0x400), "heap region overflowed into stack");
128+
. = ORIGIN(RAM) + LENGTH(RAM) - 0x400;
129+
__HeapLimit = .;
130+
} > RAM
131+
PROVIDE(__heap_start = ADDR(.heap));
132+
PROVIDE(__heap_size = SIZEOF(.heap));
133+
PROVIDE(__mbed_sbrk_start = ADDR(.heap));
134+
PROVIDE(__mbed_krbs_start = ADDR(.heap) + SIZEOF(.heap));
135+
.stack (NOLOAD):
136+
{
137+
__StackLimit = .;
138+
*(.stack*)
139+
. = ORIGIN(RAM) + LENGTH(RAM);
140+
} > RAM
141+
__StackTop = ORIGIN(RAM) + LENGTH(RAM);
142+
__StackLimit = __StackTop - 0x400;
143+
PROVIDE(__stack = __StackTop);
144+
}

0 commit comments

Comments
 (0)