Troubleshooting “Failed to call GENERATE_APP” errors in Vitis w/ Cortext M1

The “Failed to call GENERATE_APP” error when building a Vitis project for the Cortex-M1 processor can be frustrating, but is usually caused by a few common issues. Here are some things to try when encountering this error: Ensure the BSP is configured properly The Board Support Package (BSP) contains crucial configuration information for building projects

How to Correctly Configure Linker Options for Cortex-M23 in uVision5?

Configuring the linker options correctly is crucial for building efficient and optimized applications for Cortex-M23 devices using uVision5. The linker is responsible for combining object files and libraries into the final executable. The linker options control memory layout, symbol resolution, regions for code and data, and more. Setting these options incorrectly can result in a

Troubleshooting errors when running make_mmi_file.tcl

Running into errors when trying to generate MMI files using the make_mmi_file.tcl script can be frustrating. This comprehensive guide will walk you through the most common issues and how to resolve them. What is make_mmi_file.tcl? The make_mmi_file.tcl script is used to automate the generation of MMI files for ARM-based systems. MMI (Man Machine Interface) files

Fail to add JTAG/swd debug into Cortex-M0

Adding JTAG/SWD debug capability to a Cortex-M0 microcontroller can sometimes be tricky and fail unexpectedly. This is often due to subtle differences between MCU models as well as complexities in properly configuring the debug interface. With some diligence and methodical troubleshooting, the root cause can usually be identified and resolved. Common Reasons JTAG/SWD Fails on

Fixing “unknown compiler option ‘-lint’” error when compiling Cortex-M0 in ModelSim

When compiling C code for the ARM Cortex-M0 microcontroller in ModelSim, you may encounter the error “unknown compiler option ‘-lint’”. This error occurs because ModelSim’s compiler wrapper mtiARM is trying to pass the -lint option to the underlying GNU compiler arm-none-eabi-gcc, but this particular version of gcc does not recognize that option. What causes the

Optimizing Clock Design for Cortex-M0 DesignStart on FPGAs

Designing an optimized clocking system is critical for any FPGA implementation, but especially so for DesignStart Cortex-M0 cores which have specific clocking requirements. This article will provide an overview of key considerations and techniques to optimize clock design when targeting Cortex-M0 DesignStart on FPGAs. Cortex-M0 Clocking Overview The Cortex-M0 processor has a two-stage pipeline and

Cortex-M0 DesignStart Clock Duty Cycle Requirements

The Cortex-M0 DesignStart microcontroller from ARM utilizes an ARM Cortex-M0 processor core which requires a clock source with specific duty cycle requirements. Meeting these requirements is critical for proper operation of the Cortex-M0 microcontroller. Overview of Cortex-M0 DesignStart Clocking The Cortex-M0 DesignStart microcontroller features the ARM Cortex-M0 processor core which is targeted for low-cost and

Debugging Cortex-M0 DesignStart on non-ARM FPGAs

Using the Cortex-M0 DesignStart IP core on non-ARM partner FPGAs can provide a low-cost way to prototype and evaluate ARM’s smallest Cortex-M processor. However, debugging these designs brings unique challenges compared to using ARM’s own FPGAs. This article provides guidance on setting up and troubleshooting debug connections for Cortex-M0 DesignStart cores implemented in non-ARM FPGAs.

Using Xilinx vs Altera FPGAs for Cortex-M0 DesignStart

When looking to implement an ARM Cortex-M0 design on an FPGA, the two major FPGA vendors to consider are Xilinx and Altera (now owned by Intel). Both offer compelling options, so choosing between them really depends on your specific design requirements and constraints. In a nutshell, the main factors to consider are: Xilinx Cortex-M0 FPGAs

Implementing Cortex-M0 DesignStart on an Altera FPGA

Implementing an ARM Cortex-M0 processor on an FPGA can be an excellent way to prototype and test an embedded system design before committing to an ASIC or production FPGA. The Cortex-M0 DesignStart model provides a basic Cortex-M0 core in synthesizable RTL that can be targeted to many different FPGA devices. This article will walk through