News

Running Arm User-Based Licensing in Modern CI/CD Workflows
Modern embedded software development no longer ends at a successful local build. Firmware is now continuously compiled, tested, analyzed, and packaged through automated pipelines running on Jenkins, GitHub Actions, GitLab CI, Azure DevOps, and dedicated build servers. While these environments simplify software delivery, they also introduce a practical question for many engineering teams: How should commercial embedded development tools be licensed within an automated build environment? Unlike traditional node-locked licensing, Arm User-Based Licensing (UBL) associates the license with the operating system user executing the Arm development tools rather than a specific machine. This model fits naturally into modern CI/CD infrastructure where build servers, virtual machines, and cloud runners are regularly created, replaced, or scaled without requiring licensing to be tied to individual hardware. A common deployment pattern is to provision a dedicated Windows build runner using a service account such as jenkins, builduser, or gitlab-runner. The UBL license is activated once under that operating system account, allowing every pipeline executed by the same user to access the licensed Arm Compiler or Keil MDK installation without requiring interactive activation during each build. This separation between the CI platform and the licensing mechanism is important. GitHub Actions, Jenkins, or GitLab simply schedule the build; the Arm development tools validate the licensed operating system user at runtime. Once the environment has been provisioned, the licensing process becomes transparent to the pipeline itself, allowing engineering teams to focus on build automation rather than license management. Containerized environments introduce another consideration. UBL identifies the effective operating system username inside the container rather than the Docker host. If a build container executes as root, the licensing system also identifies the user as root. For dedicated CI runners this is a supported deployment model, provided the license is activated for that shared build account. For developer-specific containers, Arm recommends using individual usernames so each engineer's license remains associated with their own environment rather than every user appearing as root. Many engineering organizations also maintain products developed with older Arm and Keil toolchains while introducing modern CI practices. Rather than maintaining separate licensing strategies, Professional UBL licenses can generate compatible node-locked licenses for supported legacy tools including Arm Compiler 5, PK51, PK166, and DK251. Arm also provides unattended installation methods together with command-line licensing utilities, allowing legacy projects to be provisioned automatically as part of a build server image or virtual machine deployment instead of requiring manual IDE configuration. As build infrastructure grows, another common question is whether every virtual machine requires its own license. In practice, the answer depends on how the build environment is deployed. Because UBL licenses the operating system user rather than the hardware, organizations commonly create dedicated build identities that can be reused across multiple build servers and virtual machines. For larger deployments, environments with restricted internet connectivity, or enterprise-scale infrastructure, Arm additionally supports Proxy Activation and Local License Server (LLS) workflows to simplify license management while reducing repetitive online activation requests. For teams designing reproducible CI infrastructure, Arm also recommends automating the provisioning process. Installing the required toolchain version, activating the build account once, and scripting the remaining environment configuration allows new build runners to be deployed consistently across physical servers, virtual machines, or cloud-hosted infrastructure. This approach minimizes manual configuration while ensuring every runner behaves identically, an important requirement for deterministic embedded software builds. User-Based Licensing is ultimately designed to complement modern embedded software development practices rather than constrain them. Whether firmware is being compiled on a local build server, a virtual machine, or a cloud-hosted CI runner, UBL provides a licensing model that aligns with automated software delivery while remaining compatible with both current Arm development tools and many existing legacy projects. As engineering organizations continue investing in DevOps and continuous integration, licensing becomes another component of the build infrastructure one that can be provisioned, automated, and managed alongside the rest of the development environment rather than treated as a separate administrative task. If you'd like to explore specific deployment scenarios in greater detail, Arm provides several excellent technical articles covering User-Based Licensing in automated development environments. Further Reading from Arm Documentation: Legacy Keil tools installation and automating UBL registration for CI environments (GitHub Actions, GitLab Runners, and build servers) Running Keil MDK build tools in Windows Docker containers, including supported configurations, limitations, and licensing considerations Understanding User-Based Licensing (UBL) behavior in Docker containers running as root, including licensing implications and recommended deployment practices If you'd like to discuss your CI/CD environment, migration strategy, or User-Based Licensing deployment, feel free to reach out Hrutik Champaneri at hrutik.champaneri@joraltechnologies.com
Learn more
Virtual Platforms as a Foundation for Modern Embedded Development
Modern embedded software development is no longer limited to writing code and waiting for a physical target. As engineering teams adopt CI/CD pipelines, distributed development, and parallel hardware-software workflows, virtual platforms have become an increasingly important part of the embedded software lifecycle. Rather than simply replacing physical hardware, virtual platforms allow software bring-up, debugging, regression testing, and continuous validation to begin earlier while providing a repeatable and scalable execution environment. At the core of these solutions is Arm Fast Models, the simulation technology used to build functionally accurate virtual representations of Arm-based systems. Fixed Virtual Platforms (FVPs) are ready-to-run virtual systems built using Fast Models, providing software developers with complete simulation environments for debugging and software bring-up. Arm Virtual Hardware (AVH) builds upon these virtual platforms by integrating them into a broader ecosystem that supports cloud execution, CI/CD pipelines, automation, and scalable software validation. For Cortex-M software development, Arm Virtual Hardware, available with Keil MDK Professional, enables engineering teams to execute software in virtual environments without relying on physical evaluation boards. Instead of maintaining dedicated hardware for every developer or CI server, teams can automatically build, execute, and validate firmware locally or in cloud-based pipelines. This allows more frequent regression testing, faster feedback on every code change, and better utilization of engineering resources while reducing dependence on shared development hardware. For more complex Cortex-A, Cortex-R, and system-level software development, Fixed Virtual Platforms (FVPs) available with Arm Development Studio provide functionally accurate models for software bring-up and interactive debugging. Developers can inspect memory, debug drivers, validate boot sequences, and analyze software behavior using familiar Arm Development Studio tools, allowing much of the early integration effort to begin in a virtual environment before transitioning to physical validation. Although they are often mentioned together, AVH and FVPs are designed for different purposes. FVPs provide the virtual targets that developers use for software development and debugging, while AVH extends those capabilities into a scalable development ecosystem by integrating virtual targets with cloud infrastructure, DevOps workflows, and CI/CD automation. Rather than competing technologies, they complement one another one focuses on interactive software development, while the other enables automated software validation at scale. While Arm Development Studio includes a broad range of pre-built FVPs, organizations developing custom silicon can use the Arm Fast Models Library and System Generator (SG_Simulator) to create platform-specific virtual models, allowing software bring-up and validation to begin on architectures that do not yet exist as standard reference platforms. As embedded systems continue to increase in complexity, virtual platforms are becoming more than just simulation tools. They are helping engineering teams improve software quality, increase testing frequency, reduce hardware dependencies, and build modern embedded development workflows that scale from a developer's desktop to enterprise CI/CD environments. Interested in learning more about Arm Virtual Hardware, Fixed Virtual Platforms (FVPs), or Arm Development Studio? Contact Hrutik Champaneri at hrutik.champaneri@joraltechnologies.com. Watch our Arm Virtual Hardware video here
Learn more
VS Code and the Modern Embedded Workflow
Visual Studio Code has become a preferred development environment for many embedded software teams thanks to its flexibility, lightweight design, and extensive extension ecosystem. However, as embedded projects grow in complexity, writing code is only part of the challenge. Teams must also ensure software quality, compliance, test coverage, and verification while still meeting aggressive release schedules. The challenge is that many of these activities are still performed later in the development lifecycle, where defects become significantly more expensive to resolve. Industry studies have shown that software defects discovered during integration or system testing can cost up to 10x more to fix than those identified during development. For this reason, many organizations are shifting verification activities earlier in the software lifecycle to reduce project risk, improve quality, and avoid costly rework. Rather than forcing developers to abandon their preferred development environment, a modern VS Code-based workflow allows quality and verification activities to be integrated directly into day-to-day development. Developers can use Keil MDK to build and debug Arm Cortex-M applications while continuing to work within a familiar VS Code environment. Powered by Arm Compiler and the CMSIS ecosystem, Keil MDK provides optimized code generation, comprehensive device support, and advanced debugging capabilities specifically designed for Arm-based systems. This enables teams to accelerate development while building on a trusted toolchain widely used across safety, industrial, automotive, and IoT applications. Coding standards compliance is often another source of engineering effort, particularly for projects operating under safety, security, or regulatory requirements. QA MISRA helps identify coding standard violations as code is written, allowing issues to be corrected before formal reviews begin. Organizations that introduce coding standards verification earlier in development often report reduced review effort, improved code consistency, and fewer compliance related surprises during audits and certification activities. With the QA·MISRA extension integrated directly into VS Code, developers can identify violations and receive feedback within the editor, helping them address issues before they become larger development or compliance challenges. Static analysis provides another opportunity to identify defects before they become schedule impacting problems. AbsInt Astrée analysis tools help detect runtime anomalies, stack usage concerns, and software defects before code reaches target hardware. Finding issues during development rather than during integration testing can substantially reduce debugging effort while improving software reliability and reducing verification risk. Similar to QA MISRA, Astrée integrates with VS Code and highlights analysis results directly within the development environment, enabling engineers to identify and resolve issues earlier in the software lifecycle. Verification through testing remains equally important. QA Systems Cantata enables automated unit and integration testing for C and C++ applications, helping teams continuously verify functionality throughout development. Studies have shown that automated testing can reduce manual test execution effort by 30–50% while improving repeatability, coverage, and traceability. For organizations operating in regulated industries, automated testing also helps generate evidence required for standards such as ISO 26262, IEC 61508, IEC 62304, and DO-178C. With Cantata's VS Code integration, developers can generate test cases, execute tests, and review code coverage directly within their development environment, helping teams build quality into the software lifecycle from the start. Modern development workflows increasingly rely on CI/CD pipelines to improve efficiency, consistency, and software quality. VS Code integrates seamlessly with source control and automation platforms, making it easier to manage branches, reviews, builds, testing, and deployments. When combined with tools such as Keil MDK, QA·MISRA, AbsInt, and Cantata, teams can automate quality checks, compliance verification, static analysis, compilation, and testing throughout the development lifecycle. This unified workflow improves traceability, strengthens collaboration between development and quality teams, and helps identify issues earlier, reducing the risk of costly late-stage defects while providing greater confidence that software meets quality, security, and compliance requirements before release. Together, VS Code, Keil MDK, QA MISRA, AbsInt, and Cantata support multiple stages of the embedded software V-model from implementation and debugging through compliance, static analysis, testing, and verification. The result is not simply better tooling, but a more predictable development process, fewer escaped defects, reduced rework, and higher confidence in software quality before release. Interested in learning how these tools can fit into your development workflow? Reach out to Hrutik Champaneri at hrutik.champaneri@joraltechnologies.com to discuss your project requirements, compliance goals, or embedded software development challenges. Explore our VS Code Ecosystem page to discover tools for embedded development, static analysis, MISRA compliance, automated testing, and CI/CD integration, all within a modern VS Code workflow.
Learn more
ARCHITECTURE OF TRUST: STRENGTHENING SECURITY IN MODERN CORTEX-M SYSTEMS
As embedded devices continue to expand into connected and safety-critical applications, security has become a fundamental design requirement rather than an optional feature. From industrial controllers and medical devices to automotive and IoT systems, developers must address increasingly sophisticated threats while maintaining performance and reliability. Modern Arm Cortex-M processors have evolved significantly to meet these challenges. While earlier Cortex-M architectures provided strong performance and low-power operation, newer generations introduce hardware enforced security features designed to protect software, data, and system resources from both accidental faults and malicious attacks. One of the most significant advancements is TrustZone for Arm Cortex-M, which enables the separation of applications into Secure and Non-Secure environments. By isolating sensitive assets such as cryptographic keys, authentication services, and security-critical firmware, TrustZone helps reduce the attack surface and limits the impact of compromised software components. Recent Cortex-M architectures further strengthen security through features such as Stack Limit Registers, PAN (Privileged Access Never), PXN (Privileged Execute Never), Pointer Authentication and Branch Target Identification (PACBTI), enhanced Memory Protection Unit (MPU) capabilities, and secure gateway mechanisms. Together, these technologies help mitigate common attack vectors including stack overflows, code injection, privilege escalation, control-flow hijacking, and cross-domain attacks. These hardware assisted protections are particularly valuable as embedded systems become increasingly connected and exposed to external threats. Security mechanisms that were once implemented primarily in software can now be enforced directly by the processor, improving both robustness and system resilience. As cybersecurity requirements continue to evolve, modern Cortex-M security features provide developers with practical tools to implement a defense in depth strategy. By combining hardware isolation, memory protection, privilege controls, and control-flow integrity mechanisms, organizations can build more secure and trustworthy embedded systems for the next generation of connected devices. To learn more about the security features discussed in this article, watch the full webinar here.
Learn more
New Arm Product Updates Available
New Arm Product Updates Available The following products have been updated: Product Code Product Version ACOMP616 Arm Compiler for Embedded FuSa 6.16LTS r6p16-03rel0 This release adds download packages for Arm Certified C Library 6.16.A. It does not include any changes to the Arm Compiler for Embedded FuSa 6.16.3 toolchain, Arm Certified C++ Library 6.16LTS, or Arm Certified C Library 6.6.B download packages. Arm Compiler for Embedded FuSa 6.16.3 was released on 16 January 2026. It is a qualified release suitable for use for projects with functional safety or long-term maintenance requirements. For more information, see the Release Notes available via developer.arm.com/documentation.
Learn more
New Arm Product Updates Available
Dear customer, The following products have been updated: Product Code Product Version DEVST-GLDF Development Studio UBL Gold FUSA r25p1-00rel0 This release of Arm Development Studio includes the next-generation Arm Toolchain for Embedded Professional (ATfEP) in addition to Arm Compiler for Embedded 6 (AC6). Please be aware that consequently Development Studio installation time has significantly increased on Windows. For convenience of Windows users, we provide two installation packages, one that incudes ATfEP and one that does not include ATfEP. We are working to reduce the Windows installation time in future releases. Did you know you can simulate and configure IP in Arm IP Explorer? Get started today.
Learn more
New Arm Product Updates Available
The following products have been updated: Product Code Product Version DEVST-GLD0 Development Studio UBL Gold r25p0-00rel0 This release of Arm Development Studio includes the next-generation Arm Toolchain for Embedded Professional (ATfEP) in addition to Arm Compiler for Embedded 6 (AC6). Please be aware that consequently Development Studio installation time has significantly increased on Windows. For convenience of Windows users, we provide two installation packages, one that incudes ATfEP and one that does not include ATfEP. We are working to reduce the Windows installation time in future releases. DEVST-GLDF Development Studio UBL Gold FUSA r25p0-00rel0 This release of Arm Development Studio includes the next-generation Arm Toolchain for Embedded Professional (ATfEP) in addition to Arm Compiler for Embedded 6 (AC6). Please be aware that consequently Development Studio installation time has significantly increased on Windows. For convenience of Windows users, we provide two installation packages, one that incudes ATfEP and one that does not include ATfEP. We are working to reduce the Windows installation time in future releases. DS000B Arm Development Studio r25p0-00rel0 This release of Arm Development Studio includes the next-generation Arm Toolchain for Embedded Professional (ATfEP) in addition to Arm Compiler for Embedded 6 (AC6). Please be aware that consequently Development Studio installation time has significantly increased on Windows. For convenience of Windows users, we provide two installation packages, one that incudes ATfEP and one that does not include ATfEP. We are working to reduce the Windows installation time in future releases.
Learn more
JORAL Technologies is in South America
Exciting News for JORAL Technologies Customers!We are now an authorized distributor for ARM KEIL in the following countries: Argentina, Brazil, Canada, Chile, Colombia, Ecuador, Mexico, Paraguay, Peru, United States, Uruguay, and Venezuela. If you have any questions or need assistance, please don’t hesitate to contact our Sales team. Alice Campbell Email: alice.campbell@joraltechnologies.com Phone:613-218-8425 Robert Campbell Email: robert.campbell@joraltechnologies.com Phone:613-218-8425
Learn more
Product update: Arm Development Studio 2024.1 now available
Arm has released the latest update to Arm Development Studio, version 2024.1. This is the first publicly available release to support the latest Arm processors: Cortex-A725 Cortex-X925 Individual components of Development Studio have been updated to the following versions: Arm Compiler for Embedded 6.23. Arm Debugger 6.4.0-armds. Arm Streamline 9.4. Fixed Virtual Platforms (FVPs) are now based on Arm Fast Models 11.27. See also the Arm Development Studio 2024.1 Release Note, and the Arm Performance Studio 2024.6 Release Note.
Learn more

