Skip to content

Commit 35cacf6

Browse files
authored
Merge pull request #1852 from ARM-software/master
Beetle Initial Support
2 parents 5acdad9 + ce1c2c7 commit 35cacf6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+7399
-9
lines changed

hal/targets.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1532,6 +1532,21 @@
15321532
"macros": ["CMSDK_BEID"],
15331533
"device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"]
15341534
},
1535+
"ARM_BEETLE_SOC": {
1536+
"inherits": ["ARM_IOTSS_Target"],
1537+
"core": "Cortex-M3",
1538+
"supported_toolchains": ["ARM", "GCC_ARM"],
1539+
"default_toolchain": "ARM",
1540+
"extra_labels": ["ARM_SSG", "BEETLE"],
1541+
"macros": ["CMSDK_BEETLE", "WSF_MS_PER_TICK=20", "WSF_TOKEN_ENABLED=FALSE", "WSF_TRACE_ENABLED=TRUE", "WSF_ASSERT_ENABLED=FALSE", "WSF_PRINTF_MAX_LEN=128", "ASIC", "CONFIG_HOST_REV=0x20", "CONFIG_ALLOW_DEEP_SLEEP=FALSE", "HCI_VS_TARGET", "CONFIG_ALLOW_SETTING_WRITE=TRUE", "WSF_MAX_HANDLERS=20", "NO_LEDS"],
1542+
"progen": {
1543+
"target": "beetle",
1544+
"uvision5": {
1545+
"template": ["uvision5_arm_beetle_soc.uvproj.tmpl"]
1546+
}
1547+
},
1548+
"device_has": ["ANALOGIN", "CLCD", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SPI"]
1549+
},
15351550
"RZ_A1H": {
15361551
"supported_form_factors": ["ARDUINO"],
15371552
"core": "Cortex-A9",

hal/targets/cmsis/TARGET_ARM_SSG/TARGET_BEETLE/CMSDK_BEETLE.h

Lines changed: 1027 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
;/*
2+
; * BEETLE CMSIS Library
3+
; */
4+
;/*
5+
; * Copyright (c) 2009-2016 ARM Limited. All rights reserved.
6+
; *
7+
; * SPDX-License-Identifier: Apache-2.0
8+
; *
9+
; * Licensed under the Apache License, Version 2.0 (the License); you may
10+
; * not use this file except in compliance with the License.
11+
; * You may obtain a copy of the License at
12+
; *
13+
; * http://www.apache.org/licenses/LICENSE-2.0
14+
; *
15+
; * Unless required by applicable law or agreed to in writing, software
16+
; * distributed under the License is distributed on an AS IS BASIS, WITHOUT
17+
; * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18+
; * See the License for the specific language governing permissions and
19+
; * limitations under the License.
20+
; */
21+
; *************************************************************
22+
; *** Scatter-Loading Description File ***
23+
; *************************************************************
24+
25+
LR_IROM1 0x00000000 0x00040000 { ; load region size_region
26+
ER_IROM1 0x00000000 0x00040000 { ; load address = execution address
27+
*.o (RESET, +FIRST)
28+
*(InRoot$$Sections)
29+
.ANY (+RO)
30+
}
31+
; Total: 80 vectors = 320 bytes (0x140) to be reserved in RAM
32+
RW_IRAM1 (0x20000000+0x140) (0x20000-0x140) { ; RW data
33+
.ANY (+RW +ZI)
34+
}
35+
}
Lines changed: 316 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,316 @@
1+
;/*
2+
; * BEETLE CMSIS Library
3+
; */
4+
;/*
5+
; * Copyright (c) 2009-2016 ARM Limited. All rights reserved.
6+
; *
7+
; * SPDX-License-Identifier: Apache-2.0
8+
; *
9+
; * Licensed under the Apache License, Version 2.0 (the License); you may
10+
; * not use this file except in compliance with the License.
11+
; * You may obtain a copy of the License at
12+
; *
13+
; * http://www.apache.org/licenses/LICENSE-2.0
14+
; *
15+
; * Unless required by applicable law or agreed to in writing, software
16+
; * distributed under the License is distributed on an AS IS BASIS, WITHOUT
17+
; * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18+
; * See the License for the specific language governing permissions and
19+
; * limitations under the License.
20+
; */
21+
;
22+
; This file is derivative of CMSIS V5.00 startup_ARMCM3.s
23+
;
24+
;/*
25+
;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
26+
;*/
27+
28+
29+
; <h> Stack Configuration
30+
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
31+
; </h>
32+
33+
Stack_Size EQU 0x00000400
34+
35+
AREA STACK, NOINIT, READWRITE, ALIGN=3
36+
Stack_Mem SPACE Stack_Size
37+
__initial_sp
38+
39+
40+
; <h> Heap Configuration
41+
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
42+
; </h>
43+
44+
Heap_Size EQU 0x00000C00
45+
46+
AREA HEAP, NOINIT, READWRITE, ALIGN=3
47+
__heap_base
48+
Heap_Mem SPACE Heap_Size
49+
__heap_limit
50+
51+
52+
PRESERVE8
53+
THUMB
54+
55+
56+
; Vector Table Mapped to Address 0 at Reset
57+
58+
AREA RESET, DATA, READONLY
59+
EXPORT __Vectors
60+
EXPORT __Vectors_End
61+
EXPORT __Vectors_Size
62+
63+
__Vectors DCD __initial_sp ; Top of Stack
64+
DCD Reset_Handler ; Reset Handler
65+
DCD NMI_Handler ; NMI Handler
66+
DCD HardFault_Handler ; Hard Fault Handler
67+
DCD MemManage_Handler ; MPU Fault Handler
68+
DCD BusFault_Handler ; Bus Fault Handler
69+
DCD UsageFault_Handler ; Usage Fault Handler
70+
DCD 0 ; Reserved
71+
DCD 0 ; Reserved
72+
DCD 0 ; Reserved
73+
DCD 0 ; Reserved
74+
DCD SVC_Handler ; SVCall Handler
75+
DCD DebugMon_Handler ; Debug Monitor Handler
76+
DCD 0 ; Reserved
77+
DCD PendSV_Handler ; PendSV Handler
78+
DCD SysTick_Handler ; SysTick Handler
79+
80+
; External Interrupts
81+
DCD UART0_Handler ; UART 0 RX and TX Handler
82+
DCD Spare_IRQ_Handler ; Undefined
83+
DCD UART1_Handler ; UART 1 RX and TX Handler
84+
DCD I2C0_Handler ; I2C 0 Handler
85+
DCD I2C1_Handler ; I2C 1 Handler
86+
DCD RTC_Handler ; RTC Handler
87+
DCD PORT0_COMB_Handler ; GPIO Port 0 Combined Handler
88+
DCD PORT1_COMB_Handler ; GPIO Port 1 Combined Handler
89+
DCD TIMER0_Handler ; TIMER 0 handler
90+
DCD TIMER1_Handler ; TIMER 1 handler
91+
DCD DUALTIMER_HANDLER ; Dual timer handler
92+
DCD SPI0_Handler ; SPI 0 Handler
93+
DCD UARTOVF_Handler ; UART 0,1 Overflow Handler
94+
DCD SPI1_Handler ; SPI 1 Handler
95+
DCD QSPI_Handler ; QSPI Handler
96+
DCD DMA_Handler ; DMA handler
97+
DCD PORT0_0_Handler ; GPIO Port 0 pin 0 Handler
98+
DCD PORT0_1_Handler ; GPIO Port 0 pin 1 Handler
99+
DCD PORT0_2_Handler ; GPIO Port 0 pin 2 Handler
100+
DCD PORT0_3_Handler ; GPIO Port 0 pin 3 Handler
101+
DCD PORT0_4_Handler ; GPIO Port 0 pin 4 Handler
102+
DCD PORT0_5_Handler ; GPIO Port 0 pin 5 Handler
103+
DCD PORT0_6_Handler ; GPIO Port 0 pin 6 Handler
104+
DCD PORT0_7_Handler ; GPIO Port 0 pin 7 Handler
105+
DCD PORT0_8_Handler ; GPIO Port 0 pin 8 Handler
106+
DCD PORT0_9_Handler ; GPIO Port 0 pin 9 Handler
107+
DCD PORT0_10_Handler ; GPIO Port 0 pin 10 Handler
108+
DCD PORT0_11_Handler ; GPIO Port 0 pin 11 Handler
109+
DCD PORT0_12_Handler ; GPIO Port 0 pin 12 Handler
110+
DCD PORT0_13_Handler ; GPIO Port 0 pin 13 Handler
111+
DCD PORT0_14_Handler ; GPIO Port 0 pin 14 Handler
112+
DCD PORT0_15_Handler ; GPIO Port 0 pin 15 Handler
113+
DCD SysError_Handler ; System Error (Flash Cache)
114+
DCD EFLASH_Handler ; Embedded Flash
115+
DCD LLCC_TXCMD_EMPTY_Handler ; LLCC_TXCMDIRQ
116+
DCD LLCC_TXEVT_EMPTY_Handler ; LLCC_TXEVTIRQ
117+
DCD LLCC_TXDMAH_DONE_Handler ; LLCC_TXDMA0IRQ
118+
DCD LLCC_TXDMAL_DONE_Handler ; LLCC_TXDMA1IRQ
119+
DCD LLCC_RXCMD_VALID_Handler ; LLCC_RXCMDIRQ
120+
DCD LLCC_RXEVT_VALID_Handler ; LLCC_RXEVTIRQ
121+
DCD LLCC_RXDMAH_DONE_Handler ; LLCC_RXDMA0IRQ
122+
DCD LLCC_RXDMAL_DONE_Handler ; LLCC_RXDMA1IRQ
123+
DCD PORT2_COMB_Handler ; GPIO 2
124+
DCD PORT3_COMB_Handler ; GPIO 3
125+
DCD TRNG_Handler ; TRNG
126+
__Vectors_End
127+
128+
__Vectors_Size EQU __Vectors_End - __Vectors
129+
130+
AREA |.text|, CODE, READONLY
131+
132+
133+
; Reset Handler
134+
135+
Reset_Handler PROC
136+
EXPORT Reset_Handler [WEAK]
137+
IMPORT SystemInit
138+
IMPORT __main
139+
LDR R0, =SystemInit
140+
BLX R0
141+
LDR R0, =__main
142+
BX R0
143+
ENDP
144+
145+
146+
; Dummy Exception Handlers (infinite loops which can be modified)
147+
148+
NMI_Handler PROC
149+
EXPORT NMI_Handler [WEAK]
150+
B .
151+
ENDP
152+
HardFault_Handler\
153+
PROC
154+
EXPORT HardFault_Handler [WEAK]
155+
B .
156+
ENDP
157+
MemManage_Handler\
158+
PROC
159+
EXPORT MemManage_Handler [WEAK]
160+
B .
161+
ENDP
162+
BusFault_Handler\
163+
PROC
164+
EXPORT BusFault_Handler [WEAK]
165+
B .
166+
ENDP
167+
UsageFault_Handler\
168+
PROC
169+
EXPORT UsageFault_Handler [WEAK]
170+
B .
171+
ENDP
172+
SVC_Handler PROC
173+
EXPORT SVC_Handler [WEAK]
174+
B .
175+
ENDP
176+
DebugMon_Handler\
177+
PROC
178+
EXPORT DebugMon_Handler [WEAK]
179+
B .
180+
ENDP
181+
PendSV_Handler PROC
182+
EXPORT PendSV_Handler [WEAK]
183+
B .
184+
ENDP
185+
SysTick_Handler PROC
186+
EXPORT SysTick_Handler [WEAK]
187+
B .
188+
ENDP
189+
190+
Default_Handler PROC
191+
EXPORT UART0_Handler [WEAK]
192+
EXPORT Spare_IRQ_Handler [WEAK]
193+
EXPORT UART1_Handler [WEAK]
194+
EXPORT I2C0_Handler [WEAK]
195+
EXPORT I2C1_Handler [WEAK]
196+
EXPORT RTC_Handler [WEAK]
197+
EXPORT PORT0_COMB_Handler [WEAK]
198+
EXPORT PORT1_COMB_Handler [WEAK]
199+
EXPORT TIMER0_Handler [WEAK]
200+
EXPORT TIMER1_Handler [WEAK]
201+
EXPORT DUALTIMER_HANDLER [WEAK]
202+
EXPORT SPI0_Handler [WEAK]
203+
EXPORT UARTOVF_Handler [WEAK]
204+
EXPORT SPI1_Handler [WEAK]
205+
EXPORT QSPI_Handler [WEAK]
206+
EXPORT DMA_Handler [WEAK]
207+
EXPORT PORT0_0_Handler [WEAK]
208+
EXPORT PORT0_1_Handler [WEAK]
209+
EXPORT PORT0_2_Handler [WEAK]
210+
EXPORT PORT0_3_Handler [WEAK]
211+
EXPORT PORT0_4_Handler [WEAK]
212+
EXPORT PORT0_5_Handler [WEAK]
213+
EXPORT PORT0_6_Handler [WEAK]
214+
EXPORT PORT0_7_Handler [WEAK]
215+
EXPORT PORT0_8_Handler [WEAK]
216+
EXPORT PORT0_9_Handler [WEAK]
217+
EXPORT PORT0_10_Handler [WEAK]
218+
EXPORT PORT0_11_Handler [WEAK]
219+
EXPORT PORT0_12_Handler [WEAK]
220+
EXPORT PORT0_13_Handler [WEAK]
221+
EXPORT PORT0_14_Handler [WEAK]
222+
EXPORT PORT0_15_Handler [WEAK]
223+
EXPORT SysError_Handler [WEAK]
224+
EXPORT EFLASH_Handler [WEAK]
225+
EXPORT LLCC_TXEVT_EMPTY_Handler [WEAK]
226+
EXPORT LLCC_TXCMD_EMPTY_Handler [WEAK]
227+
EXPORT LLCC_RXEVT_VALID_Handler [WEAK]
228+
EXPORT LLCC_RXCMD_VALID_Handler [WEAK]
229+
EXPORT LLCC_TXDMAL_DONE_Handler [WEAK]
230+
EXPORT LLCC_RXDMAL_DONE_Handler [WEAK]
231+
EXPORT LLCC_TXDMAH_DONE_Handler [WEAK]
232+
EXPORT LLCC_RXDMAH_DONE_Handler [WEAK]
233+
EXPORT PORT2_COMB_Handler [WEAK]
234+
EXPORT PORT3_COMB_Handler [WEAK]
235+
EXPORT TRNG_Handler [WEAK]
236+
237+
UART0_Handler
238+
Spare_IRQ_Handler
239+
UART1_Handler
240+
I2C0_Handler
241+
I2C1_Handler
242+
RTC_Handler
243+
PORT0_COMB_Handler
244+
PORT1_COMB_Handler
245+
TIMER0_Handler
246+
TIMER1_Handler
247+
DUALTIMER_HANDLER
248+
SPI0_Handler
249+
UARTOVF_Handler
250+
SPI1_Handler
251+
QSPI_Handler
252+
DMA_Handler
253+
PORT0_0_Handler
254+
PORT0_1_Handler
255+
PORT0_2_Handler
256+
PORT0_3_Handler
257+
PORT0_4_Handler
258+
PORT0_5_Handler
259+
PORT0_6_Handler
260+
PORT0_7_Handler
261+
PORT0_8_Handler
262+
PORT0_9_Handler
263+
PORT0_10_Handler
264+
PORT0_11_Handler
265+
PORT0_12_Handler
266+
PORT0_13_Handler
267+
PORT0_14_Handler
268+
PORT0_15_Handler
269+
SysError_Handler
270+
EFLASH_Handler
271+
LLCC_TXEVT_EMPTY_Handler
272+
LLCC_TXCMD_EMPTY_Handler
273+
LLCC_RXEVT_VALID_Handler
274+
LLCC_RXCMD_VALID_Handler
275+
LLCC_TXDMAL_DONE_Handler
276+
LLCC_RXDMAL_DONE_Handler
277+
LLCC_TXDMAH_DONE_Handler
278+
LLCC_RXDMAH_DONE_Handler
279+
PORT2_COMB_Handler
280+
PORT3_COMB_Handler
281+
TRNG_Handler
282+
B .
283+
284+
ENDP
285+
286+
287+
ALIGN
288+
289+
290+
; User Initial Stack & Heap
291+
292+
IF :DEF:__MICROLIB
293+
294+
EXPORT __initial_sp
295+
EXPORT __heap_base
296+
EXPORT __heap_limit
297+
298+
ELSE
299+
300+
IMPORT __use_two_region_memory
301+
EXPORT __user_initial_stackheap
302+
303+
__user_initial_stackheap PROC
304+
LDR R0, = Heap_Mem
305+
LDR R1, =(Stack_Mem + Stack_Size)
306+
LDR R2, = (Heap_Mem + Heap_Size)
307+
LDR R3, = Stack_Mem
308+
BX LR
309+
ENDP
310+
311+
ALIGN
312+
313+
ENDIF
314+
315+
316+
END

0 commit comments

Comments
 (0)