diff --git a/cmake/toolchain/armclang.cmake b/cmake/toolchain/armclang.cmake
new file mode 100644
index 0000000..72eb456
--- /dev/null
+++ b/cmake/toolchain/armclang.cmake
@@ -0,0 +1,86 @@
+#
+# Copyright (c) 2020 Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+# 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
+#
+# 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.
+#
+
+if (NOT TARGET_CPU)
+    set(TARGET_CPU "cortex-m4")
+endif()
+
+set(CMAKE_SYSTEM_NAME Generic)
+set(CMAKE_C_COMPILER "armclang")
+set(CMAKE_CXX_COMPILER "armclang")
+set(CMAKE_LINKER "armlink")
+
+# Convert TARGET_CPU=Cortex-M33+nofp+nodsp into
+#   - CMAKE_SYSTEM_PROCESSOR=cortex-m33
+#   - __CPU_FEATURES=no-fp;no-dsp
+string(REPLACE "+" ";" __CPU_FEATURES ${TARGET_CPU})
+list(POP_FRONT __CPU_FEATURES CMAKE_SYSTEM_PROCESSOR)
+string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} CMAKE_SYSTEM_PROCESSOR)
+
+# Link target
+set(__LINK_TARGET ${CMAKE_SYSTEM_PROCESSOR})
+
+if ("nodsp" IN_LIST __CPU_FEATURES)
+    string(APPEND __LINK_TARGET ".no_dsp")
+endif()
+
+if ("nofp" IN_LIST __CPU_FEATURES)
+    string(APPEND __LINK_TARGET ".no_fp")
+endif()
+
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "cortex-m55")
+    set(__LINK_TARGET 8.1-M.Main.dsp)
+endif()
+
+# Define C/C++ standards
+set(CMAKE_C_STANDARD 99)
+set(CMAKE_CXX_STANDARD 14)
+
+# Compile options
+add_compile_options(
+    -mcpu=${TARGET_CPU}
+    -mthumb
+    "$<$<CONFIG:DEBUG>:-gdwarf-3>"
+    "$<$<COMPILE_LANGUAGE:CXX>:-fno-unwind-tables;-fno-rtti;-fno-exceptions>")
+
+# Link options
+add_link_options(
+    --cpu=${__LINK_TARGET}
+    --lto
+    --info common,debug,sizes,totals,veneers,unused
+    --symbols
+    --diag_suppress=L6439W)
+
+# Compilation warnings
+add_compile_options(
+    -Wall
+    -Wextra
+    -Wsign-compare
+    -Wunused
+    -Wswitch-default
+    -Wformat
+    -Wdouble-promotion
+    -Wredundant-decls
+    -Wshadow
+    -Wcast-align
+    -Wnull-dereference
+    -Wno-format-extra-args
+    -Wno-unused-function
+    -Wno-unused-label
+    -Wno-missing-field-initializers
+    -Wno-return-type)
