JBLopen BASEplatform introduction logo.

Introducing BASEplatform

We are proud to announce that we are jumping in the embedded software component market with the introduction of BASEplatform™. Tackling the fundamentals, BASEplatform is a collection of low-level interface modules, drivers, and board support packages. Designed from the ground up to provide the foundation of a successful embedded software design. Whether for a bare-metal project

Read More »
Close up view of the Digilent Zybo development board showing the Xilinx Zynq-7000 SoC.

Zynq-7000 Connectivity Using the uC/OS BSP

In two previous articles, I have looked at using Micrium’s uC/OS RTOS on the Xilinx Zynq-7000. I only covered kernel and storage. This time, I will be exploring some connectivity options in combination with the Digilent Zybo. Namely, using Micrium’s USB device solution and HTTP server through the Zybo’s Ethernet port. This is also a

Read More »
Close up shot of the NXP i.MX7 Sabre development board showing the SoC BGA chip.

i.MX7D M4 Bare-Metal Bring-up and Benchmark

Following up on the last piece about the NXP i.MX 7, this article looks at the ARM Cortex-M4 companion of the Cortex-A7 present in the i.MX 7. Or to put it another way, a Kinetis-on-chip since it’s very similar to a high-end Cortex-M4 based Kinetis. This article summarizes my experience writing a brand new bare

Read More »
Close up shot of the NXP i.MX7 Sabre development board showing the SoC BGA chip.

i.MX7D Sabre Bare-Metal Bring-up and Benchmark

One of our specialties at JBLopen is board bring-up, either for bare metal or various commercial and open source RTOSes. Despite the number of different platforms, CPU architectures and RTOSes out there, low level bring-up, BSP and driver development are rarely discussed in blogs and articles on the web. The same can be said about

Read More »
Interrupt latency distribution for a Cortex-A9 with cold cache.

Improving Interrupt Latency on the ARM Cortex-A9

Continuing from the last post, this article explores features specific to early members of the ARM Cortex-A family such as the Cortex-A9 which can help reduce interrupt latency. Namely the L2 cache and TLB lockdown features found in those processors. It’s important to note that those two features are not available in more recent 32

Read More »
Histogram of access latency for random memory access on a Cortex-A9.

ARM Cortex-A Interrupt Latency

In this article, I’ll explore the interrupt latency, also known as interrupt response time, of an ARM Cortex-A9 under various scenarios — and yes, it’s still on the Xilinx Zynq-7000, since I still have that board on my desk from the last two articles. An upcoming follow-up article will describe methods of improving worst case

Read More »
krtkl snickerdoodle close up image of Zynq-7000 SoC and SD Card cage.

Embedded Storage on the snickerdoodle

This is a continuation of the snickerdoodle adventure, following last week’s successful “hello world” , using Micrium’s µC/OS RTOS. In this series of articles, I’m exploring the capabilities of the snickerdoodle as a development platform for high performance real-time operating systems. This time, I will be running an embedded file system on the snickerdoodle module, enabling

Read More »
krtkl snickerdoodle with connector down configuration and SD Card installed in cage.

snickerdoodle says Hello World!

What would make a better first post about embedded software than a hello world project on a brand-new development board. It’s the krtkl snickerdoodle I received with much excitement last week. The SoM is based on the Xilinx Zynq-7000 SoC along with storage and wifi on the SoM. In these next series of articles, I’m

Read More »

Should You (Still) Use Nor Flash for Embedded Data Storage, and How?

Introduction According to the financial and industry literature, the NOR flash memory market keeps growing. Yet, in our world, embedded system engineers often see NOR flash as being a “legacy” storage medium. The one used, for example, in countless industrial controllers since the original product used NOR flash and the designers for the next generation

Read More »

Comparing 4 Popular Embedded File Systems for NOR and NAND Flash

In this article, we discuss 4 popular file systems for both NOR and NAND flash, commonly used in bare metal and RTOS-based embedded systems: LittleFS, Yaffs, FileX and TSFS. We provide a brief description of each file system and compare their performance, RAM consumption and other specific advantages and limitations. There are plenty of other

Read More »

Setting up SPI NAND on Nordic’s nRF5340 (from A to Z)

In this article, we explain how to connect, configure and access a serial NAND device connected through SPI to the Nordic Semiconductor’s nRF5340 MCU. In the process, we discuss serial flash fundamentals, write a fully functional SPI flash driver, and compare SPI and QSPI performances. For demonstration purposes, we use the nRF5340-DK development kit which

Read More »

Serial NAND Flash: the Perfect Companion for Zephyr OS

In this article, we explain why serial SLC NAND flash is an ideal companion for Zephyr OS. We discuss some of the pitfalls to look out for when in comes to integrating NAND flash, and lay out the key ingredients to a successful and reliable integration. Finally, we introduce which are, in our opinion, two

Read More »

Why is FAT Slow on SD Card?

This article discusses the performance limitations of the FAT file system with a focus on SD Card. After a brief refresher on FAT fundamentals, we show how FAT predictably achieves high access performances in the absence of fragmentation, but how fragmentation can build up until performances suddenly collapse. We conclude with a few important recommendations about the use of the FAT file system on embedded flash memory.

Read More »

What Is a Flash File System?

In this article, we explain how flash file systems achieve native support for raw flash devices. We compare flash file systems to a common alternative, which is the combination of a block device file system (e.g., FAT) with a flash translation layer (FTL), and we make the case that the native approach is a better overall solution.

Read More »

Evaluating Embedded File System RAM Usage Under Real-Time Constraints

In this article, we discuss the impact of real-time requirements on embedded file system performances and RAM usage. We show how to calculate the amount of buffering needed to absorb a hypothetical sequence of write accesses of varying duration. We show how RAM usage, write access time and average throughput are interdependent under our real-time assumption.

Read More »

Making Sense of Flash File System Performances

In this particular article, we show how the maximum average write throughput on a given flash device varies with the amount of stored data. We provide a simple performance model that can be used for setting realistic performance expectations, comparing file system performances, and questioning application requirements with minimal assumptions regarding the actual workload or file system implementation.

Read More »

5 Things to Consider When Choosing an Embedded File System

In this article, we cover five aspects of embedded file systems that you should have in mind when deciding which one to choose, five essentials that you can’t ignore. This is by no means a complete guide to embedded file systems but it covers enough to avoid common mistakes, particularly among application engineers who have little prior experience with embedded file systems.

Read More »

Everspin MRAM Performance Benchmark Comparison

For this article, we look at Everspin’s EM064LX in the context of data storage applications, focusing on access speed metrics, that is average throughput and worst-case access latency. For context, we compare MRAM performances with NOR and NAND flash using a simple benchmark and discuss the implications of the obtained results from an application design standpoint.

Read More »

First Look at Everspin’s New xSPI STT-MRAM Lineup

In this article, we take a closer look at this promising new offering, focusing on differentiating factors compared to existing flash-based devices and previous MRAM implementations. We present 4 use case scenarios to illustrate how we believe the EMxxLX xSPI family can compete with current flash-based solutions and how it really changes the game for us embedded designers.

Read More »
Finding a Flash Replacement

Finding Flash a Successor

This article is all about emerging non-volatile (NVM) technologies, a complex and ever-evolving topic that has stimulated numerous research fields over the years, and engaged substantial investments from the biggest players in the semiconductor industry. The topic is also quickly gaining momentum among embedded developers.

Read More »