eXecute-In-Place (XIP) with Serial Flash Memories on MPUs Using MPLAB Harmony V3

AN5218

Introduction

This document describes the eXecute-In-Place (XIP) from serial Flash memory feature on MPUs and discusses the implementation of an application using the MPLAB® Harmony v3 software framework. It explains how to generate an application binary to execute in the serial Flash memory region, and it also shows how to execute an application from the serial Flash. The purpose of this feature is to provide an option to run a DDR-less system on MPUs.

The example provided in this application note comprises the six main steps listed below. These steps are detailed in 3. Serial Flash XIP Example Using MPLAB Harmony v3:

  1. SAM-BA installation on Windows host
  2. Device setup to Flash using SAM-BA
  3. Configure the first stage bootloader (ROMBOOT) to boot from the serial Flash memory
  4. Configure the second stage bootloader (at91bootstrap) to enable XIP
  5. Modification required to execute a Harmony application from QSPI
  6. Debug an application on MPLAB or run an application executed from serial Flash

Hardware and Software Requirements

MPU Evaluation Kit

The procedure enumerated by this document is applicable to an MPU that supports XIP from serial Flash memory. The detailed steps shown here apply to SAM9X60-EK and SAMA7G54-EK evaluation kits that feature serial Flash memory on the boards.

SAMA7G54-EK Evaluation Kit (EV21H18A)

The SAMA7G54-EK Evaluation Kit is a development kit for evaluating the SAMA7G5 microprocessor (MPU). The SAMA7G5 is based on the Cortex®-A7 and is capable of running at 1 GHz. The evaluation kit includes an on-board embedded debugger. The SAMA7G54-EK board has Macronix Octa SPI flash MX66LM1G45GXDI00.

The SAMA7G54-EK Evaluation Kit is available at Microchip Direct.

SAM9X60-EK Evaluation Kit (DT100126)

The SAM9X60-EK Evaluation Kit is a development kit for evaluating the SAM9X60 microprocessor (MPU). The SAM9X60 is based on the Arm® ARM926EJ-S and is capable of running at 600 MHz. The evaluation kit includes an on-board embedded debugger. The SAM9X60-EK board features the Microchip QSPI module SST26VF064B.

Details of the SAM9X60-EK Evaluation Kit are available on the Microchip Website.

Windows® Host System

The execute-in-Place Harmony application described in this application note is tested and verified on a Windows host PC.

MPLAB X Integrated Development Environment (IDE) and MPLAB XC32 C/C++ Compiler

MPLAB X IDE is an expandable, highly configurable software program that incorporates powerful tools to help users to discover, configure, develop, debug, and qualify embedded designs for most Microchip microprocessors.

The IDE is available at the Microchip Website. This document uses MPLAB X IDE version 6.15.

The compiler is available at the Microchip Website. This document uses MPLAB XC32 version 4.35.

MPLAB Harmony v3

MPLAB Harmony v3 is a fully-integrated embedded software development framework that provides flexible and interoperable software modules that enable the user to dedicate resources to create applications for 32-bit MPUs, rather than dealing with device details, complex protocols, and library integration challenges. The Harmony framework includes MPLAB Code Configurator (MCC), an easy-to-use development tool with a Graphical User Interface (GUI) that simplifies device set-up, library selection, configuration, and application development. MCC is available as a plug-in that directly integrates with MPLAB X IDE.

SAM-BA® In System Programmer

SAM-BA software provides an open set of tools for in-system programming of internal and external memories connected to Microchip MPUs. Devices can be programmed through the JTAG, debug UART or USB interfaces. With the SAM-BA monitor residing in on-chip non-volatile memory, SAM-BA can be used to re-program the MPU without connecting to the debugger. If using the secure boot feature of Microchip MPUs, the Secure SAM-BA edition, available under NDA, must be used.

Note: Links to download the software are given in 6. References.

XIP on Serial Flash Memory

The Quad Serial Peripheral Interface (QSPI) is configured to Serial Memory mode for XIP program execution. In a system that maps external Flash memory, such as ROM, SRAM, DRAM, etc., this mode allows code execution directly from Flash memory without code shadowing to RAM.

QSPI Serial Memory Mode

In Serial Memory mode, the QSPI acts as a serial Flash memory controller. The QSPI can be used to read data from the serial Flash memory, allowing the CPU to execute code from it (XIP). The QSPI can also be used to control the serial Flash memory (Program, Erase, Lock, etc.) by sending specific commands.

In this mode, the QSPI is compatible with single-bit SPI, Dual SPI, Quad and Octal SPI protocols. Refer to the device data sheet to confirm support.

To activate this mode, QSPI_MR.SMM must be written to ‘1'. In Serial Memory mode, data is transferred either by QSPI_TDR and QSPI_RDR, or by writing or reading in the QSPI memory space depending on the configuration of QSPI_IFR.TFRTYP and QSPI_IFR.SMRM.

Instruction Frame

In order to control serial Flash memories, the QSPI sends instructions via the SPI bus (READ, PROGRAM, ERASE, LOCK, etc.). Because the instruction set implemented in serial Flash memories is memory-vendor dependent, the QSPI includes a complete Instruction Frame register (QSPI_IFR) to ensure compatibility with all serial Flash memories.

An instruction frame includes:

A diagram shows the QSPI signal timing for instruction, address, option, dummy cycles, and data transfer.

Read Memory Transfer

The data of the serial memory is accessed by sending an instruction with QSPI_IFR.DATAEN = 1 and QSPI_IFR.TFRTYP = 1. In this mode, the QSPI is able to read data at random address into the serial Flash memory, allowing the CPU to execute code directly from it (XIP). In order to fetch data, the user must first configure the instruction frame by writing the QSPI_IFR. Then data can be read at any address in the QSPI address space mapping. The address of the system bus read accesses matches the address of the data inside the serial Flash memory.

In Serial Memory mode, QSPI is compatible with four protocols:

When communicating with external memory, the instruction, address, and data can be set to use different modes which are configured in the Instruction Frame register (QSPI_IFR). There are ten combinations:

Value Name Description
0 SINGLE_BIT_SPI Instruction: Single-bit SPI / Address-Option: Single-bit SPI / Data: Single-bit SPI
1 DUAL_OUTPUT Instruction: Single-bit SPI / Address-Option: Single-bit SPI / Data: Dual SPI
2 QUAD_OUTPUT Instruction: Single-bit SPI / Address-Option: Single-bit SPI / Data: Quad SPI
3 DUAL_IO Instruction: Single-bit SPI / Address-Option: Dual SPI / Data: Dual SPI
4 QUAD_IO Instruction: Single-bit SPI / Address-Option: Quad SPI / Data: Quad SPI
5 DUAL_CMD Instruction: Dual SPI / Address-Option: Dual SPI / Data: Dual SPI
6 QUAD_CMD Instruction: Quad SPI / Address-Option: Quad SPI / Data: Quad SPI
7 OCT_OUTPUT Instruction: Single-bit SPI / Address-Option: Single-bit SPI / Data: Octal SPI
8 OCT_IO Instruction: Single-bit SPI / Address-Option: Octal SPI / Data: Octal SPI
9 OCT_CMD Instruction: Octal SPI / Address-Option: Octal SPI / Data: Octal SPI

For detailed information on how to transfer instruction, address, and data with external memory, refer to the respective product data sheet.

Serial Flash XIP Example Using MPLAB Harmony v3

SAM-BA Installation on Windows Host

The example provided in this application note comprises the six steps detailed in the following sections.

  1. Download the latest version of SAM-BA tool for Windows. A link is available in 6. References.
  2. Unzip the file into a working directory of your choice.
  3. Add the SAM-BA directory path to the system environment variables.

a. Select "Edit the system environment variables" in the pull-down menu.

b. In the System Properties window, click on "Environment Variables" in the Advanced tab.

c. In the Environment Variables window, double click on "Path" in the System Variables section.

d. Add the SAM-BA directory path to the path variables.

A screenshot illustrates the process of editing environment variables in Windows.

Device Set-Up to Flash Using SAM-BA

  1. Open the Disable Boot jumper:
    • J22 for SAMA7G54-EK Evaluation Kit
    • J13 for SAM9X60-EK Evaluation Kit
  2. Ensure there is no SD memory card inserted.
  3. Press and release the start button (nSTART) on the SAMA7G54-EK. For SAM9X60-EK, this step is skipped.
  4. Press and hold the "BOOT_DIS" button. This disables booting from the on-board NAND and NOR (QSPI) Flash memories.
  5. While pressing the "BOOT_DIS" button, press and release the reset "nRST" button.
  6. Release the "BOOT_DIS" button.
  7. Confirm the MPU is set in SAM-BA monitor when RomBOOT appears on the console.
  8. The MPU is now set in SAM-BA monitor and the device is ready to be programmed.

Configure the First Stage Bootloader to Boot from the Serial Flash Memory

The first-stage bootloader must be configured to boot from serial Flash memory. This can be done using SAM-BA commands. To information about the boot process and first-stage boot configuration, refer to the section "Boot Strategies" of the respective data sheet.

Note: This is not a mandatory step for SAM9X60-EK.

Note: A Windows command line must be open to run the SAM-BA commands.

The user accesses a list of all applets available by entering the command:

sam-ba -p <port> -b <board> -a help

Options:

  1. -p, --port <port[:options:...]> where port can be j-link or serial
  2. -b, --board <board[:options:...]> where board can be sam9x60-ek or sama7g54-ek

The boot configuration packet (BCP) can be written either to Emulation SRAM or to OTPC (One Time Programmable Memory Controller). The user can program BCP to Emulation SRAM during the development phase and to OTPC during production phase.

The SAM-BA commands listed below can be used to program BCP to Emulation SRAM:

  1. Enable emulation: sam-ba -p <port> -b <board> -a bootconfig -c writecfg:bscr:EMULATION_ENABLED
  2. Read bscr and verify emulation is enabled: sam-ba -p <port> -b <board> -a bootconfig -c readcfg:bscr
  3. Emulation SRAM reset: sam-ba -p <port> -b <board> -a bootconfig -c resetemul
  4. Refresh Emulation SRAM: sam-ba -p <port> -b <board> -a bootconfig -c refreshcfg:emul
  5. Enable QSPIO as external NVM: sam-ba -p <port> -b <board> -a bootconfig -c writecfg:bcp-emul:QSPI0_IOSET1
  6. Read bcp_emul and verify whether QSPI is set as external NVM: sam-ba -p <port> -b <board> -a bootconfig -c readcfg:bcp-emul
  7. Reset the board by pressing and then releasing the reset button.

An example using SAMA7G54-EK is shown below. The output shows SAM-BA commands being executed and their results.

Note: Boot configuration using Emulation SRAM must to be set up every power cycle.

WARNING: Once OTPC is programmed, Emulation mode is disabled.

The steps below can be used to program BCP to OTPC:

  1. Disable emulation: sam-ba -p <port> -b <board> -a bootconfig -c writecfg:bscr:EMULATION_DISABLED
  2. Read bscr and verify emulation is disabled: sam-ba -p <port> -b <board> -a bootconfig -c readcfg:bscr
  3. Refresh OTP: sam-ba -p <port> -b <board> -a bootconfig -c refreshcfg:otp
  4. Enable QSPIO as external NVM: sam-ba -p <port> -b <board> -a bootconfig -c writecfg:bcp-otp:QSPI0_IOSET1
  5. Read bcp_otp and verify whether QSPI is set as external NVM: sam-ba -p <port> -b <board> -a bootconfig -c readcfg:bcp-otp
  6. Reset the board by pressing and then releasing the reset button.

Configure the at91bootstrap to Enable XIP

Preparing the Build Environment

  1. The complete source code of at91bootstrap can be obtained by either of the following ways:
    • If you have Git installed, clone the repo into the project directory by using the command: $git clone git@https://github.com/linux4sam/at91bootstrap
    • If you do not have Git installed, then download at91bootstrap from github and unzip into your project directory.

    Note: Use at91bootstrap version 4.0.7 or later.

  2. Open the project at91bootstrap on MPLAB X IDE and set it as the main project.
  3. Use the XC32 compiler to build at91bootstrap.

To do this:

  1. Note/Copy the XC32 installation path.
  2. Go to Project>Properties>Makefile.
  3. Paste the XC32 path in the Build, Debug build and Clean command fields. E.g. Build/Debug command: make CROSS_COMPILE="C:/ProgramFiles/Microchip/xc32/v4.30/bin/bin/pic32c-" Clean command: make mplabclean CROSS_COMPILE="C:/ProgramFiles/Microchip/xc32/v4.30/bin/bin/pic32c-"
  4. Click Apply.
  5. Click OK.

A screenshot shows the Project Properties window with the Makefile settings configured.

Configure the at91bootstrap

The at91bootstrap can be configured to either:

Configure at91bootstrap to Debug Harmony Applications Executed from Serial Flash on MPLAB X IDE
  1. Go to Project>Properties>Kconfig>load.
  2. Select the appropriate project directory, then select configs.
  3. In the configs folder, select <board>df_qspi_uboot_defconfig.
  4. Click Open, then Apply, then OK.

A screenshot shows the Project Properties window with Kconfig settings loaded.

Then perform the following changes:

  1. Under Primary Operation, select Load and Stop.
  2. Under Flash Memory, expand QSPI Configuration, then select eXecute In Place.
  3. Under Next software type, select Load 4 MB into the start of SDRAM.
  4. Under Demo application image storage setup:
    • Flash offset is the QSPI offset where a user wants to flash the application.
    • Demo app image size is the size of the app image.
    • External RAM address to load Demo-App image is the QSPI starting address of the application. It should match the .text load address in your application linker file. The linker file can be found in the user application project folder, Eg: ddram.ld file)
  5. Click Apply, then OK.

A table lists the external QSPI addresses for the boards.

A screenshot shows the configuration for the SAMA7G54-EK board with specific settings highlighted.

Configure at91bootstrap to Run Harmony Applications Executed from Serial Flash

The configuration step is the same as described in 3.4.2.2, with a small modification:

Under Primary Operation, select Load and launch next software.

An example configuration for SAMA7G54-EK is shown below. A screenshot shows the Project Properties window with the modified Primary Operation setting.

Now clean and build at91bootstrap.

Note: The boot file (boot.bin) generated by using this Kconfig can be used to run Harmony applications executed from QSPI Flash.

Modifications Required to Execute a Harmony Application from Serial Flash

While creating a Harmony application on MPLAB X IDE, do the linker file modifications and serial Flash pin configuration described in the sections below. Then generate code and build the application, which is then executed from the serial Flash.

A link to create an application executed from the serial Flash on SAMA7G54-EK is given in 6. References.

Linker File Modifications

  1. Assign a text section to serial Flash memory and a data section to the relocate section. The data section is copied from the serial Flash memory to SRAM during runtime.
    • bss and relocate sections should be NOLOAD sections.
    • The relocate section should be loaded from serial Flash and run from SRAM.
  2. Remove cache aligned sections and assign _ramcode_Ima and _ramdata_Ima to SRAM.

An example linker file of SAMA7G54-EK is given in the screenshots below. The screenshots illustrate the modified linker file and the old linker file, highlighting the changes made to the text, data, and relocate sections.

Note: The text section load address should match the serial Flash jump address configured in the at91 bootstrap.

Serial Flash Pin Configuration

All the serial Flash pins must be configured properly to enable serial Flash support.

The table below provides the pin IDs to be used to connect to external Flash.

Board Name Pin ID
SAM9X60-EK (DT100126) PB19-PB24
SAMA7G54-EK (EV21H18A) PB9-PB21

The screenshot below shows the configuration for the the SAMA7G54-EK board. The screenshot highlights the Pin Configuration settings.

The SAMA7G54-EK board features one Quad Serial Peripheral Interface (QSPI) memory MX66LM1G45GXD100.

A table shows the Octal SPI Flash Signal Description, mapping Shared PIO Signal Name to QSPI Signal Name and Description.

Debug an Application on MPLAB or Run an Application Executed from Serial Flash

Debug an Application Executed from the Serial Flash on MPLAB X IDE

Before debugging, ensure that the harmony.bin file in your project directory is flashed in the serial Flash offset. Refer to the sections 3.1 and 3.2 for initial device setup and tool installation procedure.

  1. Erase the serial Flash: sam-ba -p j-link -b <board> -a qspiflash -c erase
  2. Program the application starting from serial Flash offset of 0x40000: sam-ba -p j-link -b <board> -a qspiflash -c write:harmony.bin:0x40000

The screenshot below illustrates step 2 performed on the SAMA7G54-EK ( set to sam9x60-ek). The output shows the SAM-BA command being executed and its result.

Note: Do not flash boot.bin to serial Flash memory using SAM-BA to debug the application on MPLAB X IDE.

To debug the Harmony application executed from the serial Flash on MPLAB X IDE, use either at91bootstrap.elf or boot.bin file generated in 3.4.2.1 in the Harmony application project properties. If boot.bin is used, the boot entry address and boot load address must be added in the project properties as illustrated in the following screenshot. The screenshot shows the Project Properties window with settings for loading boot.bin.

Start debugging the application on MPLAB X IDE. The user can observe the program counter and see that the Harmony application is executed from the serial Flash memory. With the serial connection established between the board and host PC, open the serial console to monitor debug messages.

Running the Harmony Application Executed from Serial Flash Memory

To run the Harmony application executed from serial Flash memory upon reset, flash the boot.bin and harmony.bin files to the serial Flash memory with the SAM-BA commands shown below.

Note: To run the Harmony application executed from serial Flash upon reset, use the boot.bin file generated in section 3.4.2.2

The SAM-BA commands to program the boot and application file to serial Flash are:

  1. Erase the entire serial Flash: sam-ba -p j-link -b sam9x60-ek -a qspiflash -c erase
  2. Program the at91bootstrap in the starting address of the serial Flash: sam-ba -p j-link -b sam9x60-ek -a qspiflash -c writeboot:boot.bin
  3. Program the application starting from serial Flash offset of 0x40000: sam-ba -p j-link -b sam9x60-ek -a qspiflash -c write:harmony.bin:0x40000

Now press the reset button and the user application is executed from serial Flash.

A screenshot shows the console output after reset, indicating the boot process and application execution.

Note: A console serial communication can be enabled to observe the debug messages.

Performance

The QSPI allows the system to use high-performance serial Flash memories which are small and inexpensive, in place of larger and more expensive parallel Flash memories. Therefore, the performance of the QSPI plays an important role. The performance of the QSPI is bounded by the QSPI speed, Flash capabilities and other criteria.

Note: Refer to the application note “SAMA5D2 Quad SPI (QSPI) Performance" given in 6. References. Performance numbers in the document may vary with respect to compiler settings and optimization levels.

Conclusion

Developing a QSPI application in XIP requires an understanding of the QSPI protocols, at91bootstrap Kconfig settings and linker scripts. MPLAB Harmony v3 provides a flexible, abstracted and fully integrated firmware development platform for 32-bit MPUs. This document described how to use the XIP mode in the QSPI to work with external Flash memories and how to set up MPLAB X IDE to debug the application.

References

  1. SAM-BA In-System Programmer Download
  2. Application Note: SAMA5D2 Quad SPI (QSPI) Performance
  3. Harmony application : Blink LED QSPI-XIP application on SAMA7G54-EK
  4. Harmony application : Blink LED QSPI-XIP application on SAM9X60-EK
  5. Configure and build at91bootstrap to enable QSPI-XIP on MPLAB Harmony
  6. Step by Step guide to develop a Harmony application getting executed from Serial flash memory on SAM9X60-EK

Revision History

Revision A - 12/2023

This is the initial release of this document.

Microchip Information

The Microchip Website

Microchip provides online support via our website at www.microchip.com/. This website is used to make files and information easily available to customers. Some of the content available includes:

Product Change Notification Service

Microchip's product change notification service helps keep customers current on Microchip products. Subscribers will receive email notification whenever there are changes, updates, revisions or errata related to a specified product family or development tool of interest.

To register, go to www.microchip.com/pcn and follow the registration instructions.

Customer Support

Users of Microchip products can receive assistance through several channels:

Customers should contact their distributor, representative or ESE for support. Local sales offices are also available to help customers. A listing of sales offices and locations is included in this document.

Technical support is available through the website at: www.microchip.com/support

Microchip Devices Code Protection Feature

Note the following details of the code protection feature on Microchip products:

Legal Notice

This publication and the information herein may be used only with Microchip products, including to design, test, and integrate Microchip products with your application. Use of this information in any other manner violates these terms. Information regarding device applications is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. Contact your local Microchip sales office for additional support or, obtain additional support at www.microchip.com/en-us/support/design-help/client-support-services.

THIS INFORMATION IS PROVIDED BY MICROCHIP "AS IS". MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE, OR WARRANTIES RELATED TO ITS CONDITION, QUALITY, OR PERFORMANCE.

IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL, OR CONSEQUENTIAL LOSS, DAMAGE, COST, OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE INFORMATION OR ITS USE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THE INFORMATION OR ITS USE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THE INFORMATION.

Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights unless otherwise stated.

Trademarks

The Microchip name and logo, the Microchip logo, Adaptec, AVR, AVR logo, AVR Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch, MediaLB, megaAVR, Microsemi, Microsemi logo, MOST, MOST logo, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, PIC32 logo, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, SST Logo, SuperFlash, Symmetricom, SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron, and XMEGA are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries.

AgileSwitch, ClockWorks, The Embedded Control Solutions Company, EtherSynch, Flashtec, Hyper Speed Control, HyperLight Load, Libero, motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, ProASIC Plus logo, Quiet-Wire, SmartFusion, SyncWorld, TimeCesium, TimeHub, TimePictra, TimeProvider, and ZL are registered trademarks of Microchip Technology Incorporated in the U.S.A.

Adjacent Key Suppression, AKS, Analog-for-the-Digital Age, Any Capacitor, Anyln, AnyOut, Augmented Switching, BlueSky, BodyCom, Clockstudio, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, Dynamic Average Matching, DAM, ECAN, Espresso T1S, EtherGREEN, EyeOpen, GridTime, IdealBridge, IGAT, In-Circuit Serial Programming, ICSP, INICnet, Intelligent Paralleling, IntelliMOS, Inter-Chip Connectivity, JitterBlocker, Knob-on-Display, MarginLink, maxCrypto, maxView, memBrain, Mindi, MiWi, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, mSiC, MultiTRAK, NetDetach, Omniscient Code Generation, PICDEM, PICDEM.net, PICkit, PICtail, Power MOS IV, Power MOS 7, PowerSmart, PureSilicon, QMatrix, REAL ICE, Ripple Blocker, RTAX, RTG4, SAM-ICE, Serial Quad I/O, simpleMAP, SimpliPHY, SmartBuffer, SmartHLS, SMART-I.S., storClad, SQI, SuperSwitcher, SuperSwitcher II, Switchtec, SynchroPHY, Total Endurance, Trusted Time, TSHARC, Turing, USBCheck, VariSense, VectorBlox, VeriPHY, ViewSpan, WiperLock, XpressConnect, and ZENA are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries.

SQTP is a service mark of Microchip Technology Incorporated in the U.S.A.

The Adaptec logo, Frequency on Demand, Silicon Storage Technology, and Symmcom are registered trademarks of Microchip Technology Inc. in other countries.

GestIC is a registered trademark of Microchip Technology Germany II GmbH & Co. KG, a subsidiary of Microchip Technology Inc., in other countries.

All other trademarks mentioned herein are property of their respective companies.

© 2023, Microchip Technology Incorporated and its subsidiaries. All Rights Reserved.

ISBN: 978-1-6683-3613-7

AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Enabled, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, µVision, Versatile are trademarks or registered trademarks of Arm Limited (or its subsidiaries) in the US and/or elsewhere.

Quality Management System

For information regarding Microchip's Quality Management Systems, please visit www.microchip.com/quality.

Models: AN5218, AN5218 EXecute-In-Place XIP with Serial Flash Memories, EXecute-In-Place XIP with Serial Flash Memories, XIP with Serial Flash Memories, Serial Flash Memories

File Info : application/pdf, 27 Pages, 969.18KB

PDF preview unavailable. Download the PDF instead.

eXecute-In-Place-XIP-Serial-Flash-Memories-on-MPUs-DS00005218

References

Antenna House PDF Output Library 7.0.1621

Related Documents

Preview Microchip SAM9X60-EK Evaluation Kit: User Guide for Embedded Development
Explore the Microchip SAM9X60-EK Evaluation Kit with this comprehensive user's guide. Learn about its ARM926EJ-S processor, peripherals, power management, and development features for embedded systems.
Preview Microchip PLC & Go Application Note: Power Line Communications Guide
Learn how to get started with Power Line Communications (PLC) using Microchip's PLC & Go application. This guide covers setup, transmission, reception, and configuration for PRIME and G3-PLC standards with Microchip evaluation kits.
Preview SST25VF080B 8-Mbit SPI Serial Flash Memory Datasheet
This datasheet provides comprehensive technical information for Microchip Technology's SST25VF080B, an 8-Mbit SPI Serial Flash memory device. It details features, specifications, pin descriptions, device operation, instructions, electrical characteristics, AC timing, and packaging information.
Preview PIC32MZ EF Curiosity USB CDC Device Demo Guide
A guide to demonstrating the USB CDC Device class with the PIC32MZ EF Curiosity Development Board, enabling two serial ports on a USB host PC.
Preview SAMRH707F18-EK Evaluation Kit User Guide
User guide for the SAMRH707F18-EK evaluation kit, detailing its features, hardware overview, getting started information, and technical specifications for the SAMRH707 microcontroller.
Preview PIC32MZ EF Curiosity: USB Mass Storage Device Demo with Multiple Drives
A comprehensive guide to setting up and running the USB Mass Storage Device demo with multiple logical units (LUNs) on the Microchip PIC32MZ EF Curiosity Development Board. Learn about hardware configuration, MPLAB X IDE project setup, building, and running the application to create dual drives (SD Card and NVM).
Preview MPLAB IPE User's Guide: Integrated Programming Environment
Comprehensive user's guide for Microchip's MPLAB IPE (Integrated Programming Environment), detailing its features for programming and debugging embedded systems, installation, setup, and advanced configurations.
Preview MPLAB REAL ICE In-Circuit Emulator User's Guide
Explore the Microchip MPLAB REAL ICE In-Circuit Emulator with this comprehensive user's guide. Learn about its features for debugging, programming, and hardware integration of PICmicro and dsPIC devices, optimizing embedded system development.