From 148d3f05625afa98d64db3906985fd5d25590b05 Mon Sep 17 00:00:00 2001 From: Deomid Ryabkov Date: Tue, 12 Feb 2019 12:13:50 +0000 Subject: [PATCH] STM32F2 and Particle Electron board support CL: STM32F2 and Particle Electron board support PUBLISHED_FROM=20dede6546e9f99d2829508177924790d87e985a --- src/common/platforms/arm/arm_nsleep100_m3.S | 50 +++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/common/platforms/arm/arm_nsleep100_m3.S diff --git a/src/common/platforms/arm/arm_nsleep100_m3.S b/src/common/platforms/arm/arm_nsleep100_m3.S new file mode 100644 index 00000000..cae920e3 --- /dev/null +++ b/src/common/platforms/arm/arm_nsleep100_m3.S @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2014-2019 Cesanta Software Limited + * All rights reserved + * + * Licensed under the Apache License, Version 2.0 (the ""License""); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an ""AS IS"" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.arch armv7e-m +.syntax unified +.thumb + +/* These are required to satisfy TI linker. */ +.eabi_attribute Tag_ABI_align_needed, 1 +.eabi_attribute Tag_ABI_align_preserved, 1 + +.global mgos_nsleep100_impl +.global mgos_nsleep100_loop_count + +#ifdef STM32 +.section .RamFunc.mgos_nsleep100_impl +#else +.section .iram.mgos_nsleep100_impl +#endif +.type mgos_nsleep100_impl, %function +.align 4 + +mgos_nsleep100_impl: + ldr r3, =mgos_nsleep100_loop_count + ldr r3, [r3] + mul r0, r3 + mov r1, #6 + udiv r0, r0, r1 + cbz r0, xxx +lxx: + subs r0, #1 + bne lxx +xxx: + bx lr +.align 4 +.size mgos_nsleep100_impl, . - mgos_nsleep100_impl