Open a terminal and call putty in sudo to open serial port /dev/ttyUS0, baudrate 115200:
sudo putty
Connect:
- Tx (FTDI)---> Rx (Board) PIN 119
- Rx (FTDI)---> Tx (Board) PIN 118
Connect USB to board and look to putty port;
On other terminal compile the components through the following commands:
cd <path to mTower>
make clean
make PLATFORM=numaker_pfm_m2351 create_context
make toolchain
make
Witth openocd flash the board. It will flash two parts: part 1 BL2 in 0x0 and part 2 BL3 in 0x10040000 at the end we expect to see FreeRTOS running on Putty;
<path to openocd folder>/OpenOCD-Nuvoton/src/openocd -f <path to nulink folder>/OpenOCD-Nuvoton/tcl/interface/nulink.cfg -f <path to config>/OpenOCD-Nuvoton/tcl/target/numicroM23.cfg -c "init; reset halt; numicro M2351_erase; flash write_image <path to mTower>/mTower/mtower_s.bin; flash write_image <path to mTower>/mTower/mtower_ns.bin 0x10040000; exit"
You should see a BW option to be called from CA of FreeRTOS;
- Introduction
- License
- Platforms supported
- Get and build mTower software
- Source code structure
- Coding standards
- Documentation
- Contributing
The mTower is a new Trusted Execution Environment (TEE) specially designed
to protect size-constrained IoT devices based on Cortex-m23 MCU. Usage mTower
pre-embedded into the microcontroller, a module developer can use a simple SDK
that based on Global Platform API standards to add security to their solution.
mTower software consists of multiple components that are individually available under different licensing terms. Terms for each individual file are listed at the beginnings of corresponding files; also, all licenses are listed in COPYING file.
| NuMaker-PFM-M2351 Cortex-M23 |
M2351-Badge Cortex-M23 |
V2M-MPS2 Cortex-M33 (Qemu) |
SparkFun RedBoard RISC-V |
|---|---|---|---|
| Pine64 Ox64 RISC-V |
How to add a platform | ||
Several platforms are supported. In order to manage slight differences
between platforms, a PLATFORM flag has been introduced.
| Platform | Composite PLATFORM flag | Maintained |
|---|---|---|
| NuMaker-PFM-M2351 | PLATFORM=numaker_pfm_m2351 |
v0.6.0 |
| M2351-Badge | PLATFORM=m2351_badge |
v0.6.0 |
| V2M-MPS2 | PLATFORM=mps2_an505_qemu |
v0.6.0 |
| SparkFun RED-V RedBoard | PLATFORM=sparkfun_redboard |
v0.6.0 |
| Pine64 Ox64 | PLATFORM=pine64_ox64 |
v0.6.0 |
For information on adding a new platform see the how to add a platform.
Please see build for instructions how to run mTower on various devices.
The general source code structure for mTower is similar to the structure of the multy platforms source code.
In this project we are trying to adhere to the mTower coding convention (see CodingStyle). However there are a few exceptions that we had to make since the code also uses other open source components.
There is a brief overall functionality description 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
make docs_gencommand, and to view generated docs use
make docs_showNote that documentation on mTower is work in progress, and right now doxygen does not provide much documentation.
If you want to contribute to the mTower project and make it better, your help is very welcome. Contributing is also a great way to learn more about social coding on Github, new technologies and and their ecosystems. How to contribute you can find here.