Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Arm Research
    • DesignStart
    • Education Hub
    • Graphics and Gaming
    • High Performance Computing
    • Innovation
    • Multimedia
    • Open Source Software and Platforms
    • Physical
    • Processors
    • Security
    • System
    • Software Tools
    • TrustZone for Armv8-M
    • 中文社区
  • Blog
    • Announcements
    • Artificial Intelligence
    • Automotive
    • Healthcare
    • HPC
    • Infrastructure
    • Innovation
    • Internet of Things
    • Machine Learning
    • Mobile
    • Smart Homes
    • Wearables
  • Forums
    • All developer forums
    • IP Product forums
    • Tool & Software forums
  • Support
    • Open a support case
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • Community Help
  • More
  • Cancel
Software Tools
  • Developer Community
  • Tools and Software
  • Software Tools
  • Jump...
  • Cancel
Software Tools
Tools, Software and IDEs blog Validating your IoT system with PSA and MDK
  • Tools, Software and IDEs blog
  • Forums
  • Videos & Files
  • Jump...
  • Cancel
More blogs in Software Tools
  • Tools, Software and IDEs blog

Tags
  • Keil MDK
  • Platform Security Architecture (PSA)
  • Security
  • ULINKplus
  • TrustZone for Armv8-M
  • Tutorial
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Validating your IoT system with PSA and MDK

Christopher Seidl
Christopher Seidl
August 1, 2019

With the growth of connected Internet of Things (IoT) applications, embedded developers face additional validation requirements. Device security, timing behaviour, and energy efficiency are new topics that need careful implementation and validation. This blog gives you an overview and explains how Arm software components and development tools helps the industry to:

  • Validate IoT end-node device security
  • Analyze timing behavior
  • Optimize overall power consumption

Security

Security is essential for connected IoT devices as they frequently require access control and encrypted communication. Verification of security is a new challenge in the embedded industry as usually "embedded" meant that no one could access the system and thus it was considered as secure. 

As security is an industry wide problem and fragmented solutions are difficult to use and can lead to poor system security Arm initiated the Platform Security Architecture (PSA). The PSA is a holistic set of threat models, security analyses, hardware and firmware architecture specifications, and an open source firmware reference implementation. The PSA provides a recipe, based on industry best practice, that allows security to be consistently designed in, at both a hardware and firmware level. This helps embedded developers to get their designs securely deployed in the field faster.

PSA Developer API

The PSA Developer APIs provide a high-level interface for software developers who want to use the security functions of the PSA Root of Trust (PSA-RoT). This interface masks underlying hardware differences and provides a consistent developer experience across system-on-chips (SoCs) and platforms. These APIs are used by RTOS vendors and software developers to enable Crypto Services, Attestation Services, and Secure Storage Services. Security experts use the PSA Firmware Framework APIs for making custom secure functions.

Develop faster with PSA APIs

Platform Security Architecture Functional API Certification

PSA Functional API Certification checks the implementation of the PSA Developer APIs. To help accelerate industry adoption of the PSA Developer APIs, an open source reference implementation is provided as part of the Trusted Firmware-M project. The corresponding API test suite creates a report for Crypto, Secure Storage and Attestation. These test results give confidence on the system security implementation and are the fundamental for the PSA Certified program.

Analyze Execution Timing

Another requirement for embedded systems, the validation of worst-case execution timing is often hard to verify as very small microcontrollers lack required debug features. New approaches to timing verification and execution profiling can help to overcome these obstacles.

System Analyzer - part of the µVision debugger - shows exceptions, correlated to thread events of your real-time operating system (RTOS):

 Timing analysis using System Analyzer

Arm's Event Recorder is based on annotations in your system on critical execution points. The events can be filtered and the ones you are interested in are recorder in an event buffer. Every event is time stamped along with other information that is formatted by a debugger using an XML description file – this keeps the software overhead in the embedded system down to a minimum. Compared to printf debug style, an event is recorded in less than one microsecond. Events that are filtered out take just a few CPU cycles. Arm Keil MDK is using this technology to provide RTOS kernel awareness and to enable analysis of the MDK-Middleware components for the developer. But it is also easily applied to user code:

 Check sequence of events in your system with Event Recorder

Using Event Statistics, you can record minimum and maximum execution times of your application. The µVision debugger shows the timing statistics and also records which calls cause minimum and maximum timing.

Analyse Power Consumption

Finally, IoT end nodes need to be power efficient, as they often run on batteries that should last long without the need for service or maintenance. Often, a single misconfigured interface increases power consumption dramatically. But finding the reason for the misconfiguration is a difficult task. In combination with ULINKplus, Event Statistics help you to identify code that is consuming too much power. The power measurement readings of ULINKplus are fully integrated into System Analyzer. With this, you can identify hardware and software problems, down to GPIOs that have the wrong pull-up value:

 Power analysis with System Analyzer and ULINKplus

Anonymous
Tools, Software and IDEs blog
  • Tencent is Working to Expand Arm’s Presence in its Cloud

    Frank Zou
    Frank Zou
    Tencent is laying the foundation to grow the presence of Arm in its cloud.
    • March 3, 2021
  • Updated AArch64 Docker images for PyTorch and TensorFlow

    Jason Andrews
    Jason Andrews
    Docker images for TensorFlow and PyTorch running on Ubuntu 18.04 for Arm are now available. This article explains the details to build and use the Docker images for TensorFlow and PyTorch on Arm. Tens…
    • February 23, 2021
  • Cloud infrastructure for continuous integration tests

    Christopher Seidl
    Christopher Seidl
    This blog introduces a cloud-based continuous integration (CI) workflow for embedded projects that uses model-based simulation.
    • February 18, 2021