{"id":21644448,"url":"https://github.com/samsung/mtower","last_synced_at":"2025-06-24T21:08:05.378Z","repository":{"id":34742823,"uuid":"175147774","full_name":"Samsung/mTower","owner":"Samsung","description":"mTower is Trusted Execution Environment specially designed to be used on MicroController Units (MCUs) supporting ARM TrustZone technology (e.g., Cortex-M23/33/35p). mTower operates well under restrictions typical for such environment – small RAM and ROM sizes, relatively low performance, absence of rich OSes providing variety of services available on PCs or in enterprise environments. mTower is intended for usage in IoT, embedded devices, Smart Home applications, distributed heterogeneous networks and other environments where secure processing of sensitive data is necessary.","archived":false,"fork":false,"pushed_at":"2025-05-16T10:51:33.000Z","size":7003,"stargazers_count":56,"open_issues_count":14,"forks_count":19,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-16T02:05:53.709Z","etag":null,"topics":["bootloader","cortex-m23","freertos","gcc","iot","m2351","makefile","microcontroller","numaker-pfm-m2351","nuvoton","risc-v","secure","smarthome","trusted-execution-environment","trustzone"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Samsung.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-03-12T06:19:43.000Z","updated_at":"2025-05-27T01:53:53.000Z","dependencies_parsed_at":"2023-01-15T09:01:26.907Z","dependency_job_id":"7bf1c6c5-94d1-4315-a174-5949eacbd3d8","html_url":"https://github.com/Samsung/mTower","commit_stats":{"total_commits":123,"total_committers":6,"mean_commits":20.5,"dds":0.1707317073170732,"last_synced_commit":"564afba90510e7e198f1077c014806f5fd75b0dc"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/Samsung/mTower","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samsung%2FmTower","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samsung%2FmTower/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samsung%2FmTower/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samsung%2FmTower/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Samsung","download_url":"https://codeload.github.com/Samsung/mTower/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samsung%2FmTower/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260083863,"owners_count":22956408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootloader","cortex-m23","freertos","gcc","iot","m2351","makefile","microcontroller","numaker-pfm-m2351","nuvoton","risc-v","secure","smarthome","trusted-execution-environment","trustzone"],"created_at":"2024-11-25T05:40:18.628Z","updated_at":"2025-06-24T21:08:05.333Z","avatar_url":"https://github.com/Samsung.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![](docs/images/icon/mTower-logo-81_128.png) mTower\n\n[![Build](https://github.com/samsung/mtower/workflows/Build/badge.svg)](https://github.com/samsung/mtower/actions?query=workflow%3ABuild)\n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6108/badge)](https://bestpractices.coreinfrastructure.org/projects/6108)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/Samsung/mTower/badge)](https://api.securityscorecards.dev/projects/github.com/Samsung/mTower)\n[![cpp-linter](https://github.com/cpp-linter/cpp-linter-action/actions/workflows/cpp-linter.yml/badge.svg)](https://github.com/cpp-linter/cpp-linter-action/actions/workflows/cpp-linter.yml)\n[![RepoSize](https://img.shields.io/github/repo-size/samsung/mtower.svg)](https://github.com/samsung/mtower)\n[![Release](https://img.shields.io/github/v/release/samsung/mtower.svg)](https://github.com/samsung/mtower/releases)\n[![LICENSE](https://img.shields.io/github/license/samsung/mtower.svg)](https://github.com/samsung/mtower/blob/master/LICENSE)\n\n## Contents\n1. [Introduction](#1-introduction)\n2. [License](#2-license)\n3. [Platforms supported](#3-platforms-supported)\n4. [Get and build mTower software](#4-get-and-build-mtower-software)\n5. [Source code structure](#5-source-code-structure)\n6. [Coding standards](#6-coding-standards)\n7. [Documentation](#7-documentation)\n8. [Contributing](#8-contributing)\n\n## 1. Introduction\nThe `mTower` is a new Trusted Execution Environment (TEE) specially designed\nto protect size-constrained IoT devices based on Cortex-m23 MCU. Usage mTower\npre-embedded into the microcontroller, a module developer can use a simple SDK\nthat based on Global Platform API standards to add security to their solution.\n\n---\n## 2. License\nmTower software consists of multiple components that are individually available\nunder different licensing terms. Terms for each individual file are listed at\nthe beginnings of corresponding files; also, all licenses are listed in\n[COPYING] file.\n\n--- \n## 3. Platforms supported\n\n| **NuMaker-PFM-M2351** \u003cbr\u003e Cortex-M23 | **M2351-Badge** \u003cbr\u003e Cortex-M23 | **V2M-MPS2** \u003cbr\u003e Cortex-M33 (Qemu) | **SparkFun RedBoard** \u003cbr\u003e RISC-V |\n|:----------------------:|:--------------------------:|:-------------:|:-----------:|\n|[![](docs/images/platforms/numaker_pfm_m2351/numaker_pfm_m2351.png)](docs/numaker_pfm_m2351.md)|[![](docs/images/platforms/m2351_badge/m2351_badge.png)](docs/m2351_badge.md) |[![V2M-MPS2](docs/images/platforms/v2m-mps2/v2m-mps2.png)](docs/v2m-mps2-qemu.md)|[![](docs/images/platforms/sparkfun_redboard/sparkfun_redboard.png)](docs/sparkfun_redboard.md)|\n| **Pine64 Ox64** \u003cbr\u003e RISC-V | **How to add a platform** |||\n|[![](docs/images/platforms/pine64_ox64/pine64-ox64.jpg)](docs/pine64_ox64.md)|[![](docs/images/platforms/add_new_board.jpg)](docs/port-new-platform.md)|||\n\nSeveral platforms are supported. In order to manage slight differences\nbetween platforms, a `PLATFORM` flag has been introduced.\n\n| Platform                  | Composite PLATFORM flag            | Maintained |\n|---------------------------|------------------------------------|------------|\n| [NuMaker-PFM-M2351]       |`PLATFORM=numaker_pfm_m2351`        | v0.6.0     |\n| [M2351-Badge]             |`PLATFORM=m2351_badge`              | v0.6.0     |\n| [V2M-MPS2]                |`PLATFORM=mps2_an505_qemu`          | v0.6.0     |\n| [SparkFun RED-V RedBoard] |`PLATFORM=sparkfun_redboard`        | v0.6.0     |\n| [Pine64 Ox64]             |`PLATFORM=pine64_ox64`              | v0.6.0     |\n\nFor information on adding a new platform see the [how to add a platform].\n\n---\n## 4. Get and build mTower software\nPlease see [build] for instructions how to run mTower on various devices.\n\n---\n## 5. Source code structure\nThe general [source code structure] for mTower is similar to the structure of the\nmulty platforms source code.\n\n---\n## 6. Coding standards\nIn this project we are trying to adhere to the mTower coding convention \n(see [CodingStyle]). However there are a few exceptions that we had to make since\nthe code also uses other open source components.\n\n---\n## 7. Documentation\nThere is a brief overall [functionality description](docs/mtower_functionality_description.md) of mTower. Other mTower documentation for the project is located in the [docs] folder. The latest version of the specification that describes the mTower source code can be generated using [doxygen] tool from command line. To generate documentation, use\n\n```sh\nmake docs_gen\n```\ncommand, and to view generated docs use\n\n```sh\nmake docs_show\n```\n\u003e Note that documentation on mTower is work in progress, and right now doxygen does not provide much documentation.\n\n---\n## 8. Contributing\nIf you want to contribute to the mTower project and make it better, your help is\nvery welcome. Contributing is also a great way to learn more about social\ncoding on Github, new technologies and and their ecosystems. [How to contribute\nyou can find here](.github/CONTRIBUTING.md).\n\n---\n\n[docs]: ./docs\n[COPYING]: COPYING\n[build]: docs/build.md\n[how to add a platform]: docs/port-new-platform.md\n[CodingStyle]: docs/mtower-coding-standard.md\n[source code structure]: docs/source-code-structure.md\n[doxygen]: http://www.doxygen.nl\n[NuMaker-PFM-M2351]: http://www.nuvoton.com.cn/hq/products/iot-solution/iot-platform/numaker-maker-platform/numaker-pfm-m2351?__locale=en\n[M2351-Badge]: docs/schemes/m2351_badge\n[V2M-MPS2]: https://developer.arm.com/documentation/100964/1114/Microcontroller-Prototyping-System-2?lang=en\n[SparkFun RED-V RedBoard]: https://www.sparkfun.com/products/15594\n[Pine64 Ox64]: https://wiki.pine64.org/wiki/Ox64\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamsung%2Fmtower","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamsung%2Fmtower","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamsung%2Fmtower/lists"}