You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by ar...@apache.org on 2022/04/21 21:15:58 UTC
[tvm] branch main updated: STM32: add as a new target (#9385)
This is an automated email from the ASF dual-hosted git repository.
areusch pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git
The following commit(s) were added to refs/heads/main by this push:
new 60a9e23104 STM32: add as a new target (#9385)
60a9e23104 is described below
commit 60a9e23104784eb7d297b53b9dd7e410e2306de1
Author: stoa <ar...@gmail.com>
AuthorDate: Thu Apr 21 23:15:52 2022 +0200
STM32: add as a new target (#9385)
* STM32: add as a new target
* STM32: Target takes a board ID rather then a series.
* STM32: target series.
* STM32: Fixed lint issues.
---
python/tvm/target/__init__.py | 1 +
python/tvm/target/target.py | 38 ++++++++++++++++++++++++++++++++++++++
2 files changed, 39 insertions(+)
diff --git a/python/tvm/target/__init__.py b/python/tvm/target/__init__.py
index cd667ced44..78a7e0160d 100644
--- a/python/tvm/target/__init__.py
+++ b/python/tvm/target/__init__.py
@@ -70,6 +70,7 @@ from .target import (
bifrost,
riscv_cpu,
hexagon,
+ stm32,
)
from .virtual_device import VirtualDevice
from .compilation_config import make_compilation_config
diff --git a/python/tvm/target/target.py b/python/tvm/target/target.py
index cecf3f4784..f75db92c39 100644
--- a/python/tvm/target/target.py
+++ b/python/tvm/target/target.py
@@ -717,6 +717,44 @@ def hexagon(cpu_ver="v66", **kwargs):
return Target(" ".join(["hexagon"] + args_list))
+STM32_SUPPORTED_SERIES = {
+ # High-Performance
+ "stm32H7xx": ["-device=arm_cpu", "-mcpu=cortex-m7", "-march=armv7e-m"],
+ "stm32F7xx": ["-device=arm_cpu", "-mcpu=cortex-m7"],
+ "stm32F4xx": ["-device=arm_cpu", "-mcpu=cortex-m4"],
+ "stm32F2xx": ["-device=arm_cpu", "-mcpu=cortex-m3"],
+ # Mainstream
+ "stm32G0xx": ["-device=arm_cpu", "-mcpu=cortex-m0+"],
+ "stm32F0xx": ["-device=arm_cpu", "-mcpu=cortex-m0"],
+ "stm32F1xx": ["-device=arm_cpu", "-mcpu=cortex-m3"],
+ "stm32G4xx": ["-device=arm_cpu", "-mcpu=cortex-m4"],
+ "stm32F3xx": ["-device=arm_cpu", "-mcpu=cortex-m4"],
+ # Low-power
+ "stm32U5xx": ["-device=arm_cpu", "-mcpu=cortex-m33"],
+ "stm32L5xx": ["-device=arm_cpu", "-mcpu=cortex-m33"],
+ "stm32L4xx": ["-device=arm_cpu", "-mcpu=cortex-m4"],
+ "stm32L1xx": ["-device=arm_cpu", "-mcpu=cortex-m3"],
+ "stm32L0xx": ["-device=arm_cpu", "-mcpu=cortex-m0+"],
+}
+
+
+def stm32(series="unknown", options=None):
+ """Returns a STM32 target.
+
+ Parameters
+ ----------
+ series: str
+ Series name of a STM32 board series, eg. stm32H7xx or stm32F4xx
+ options : str or list of str
+ Additional options
+ """
+
+ if series not in STM32_SUPPORTED_SERIES:
+ raise ValueError(f"Series {series} is not supported by tvm.target.stm32.")
+ opts = _merge_opts(STM32_SUPPORTED_SERIES[series], options)
+ return Target(" ".join(["c"] + opts))
+
+
def create(target):
"""Deprecated. Use the constructor of :py:mod:`tvm.target.Target` directly."""
warnings.warn("tvm.target.create() is being deprecated. Please use tvm.target.Target() instead")