• 20 Apr 2017

    Transitioning to ThreadX: Event Flags

    Thread synchronization is typically done using semaphores and message queues. Developers often overlook a very efficient method for synchronizing task which is the event flag. In this post, we will examine the event flag object in detail and learn when and where we should use event flags over more traditional RTOS objects such as semaphores. An event flag group is essentially thirty-two individual bits that exist within...
    • 20 Apr 2017

    Transitioning to ThreadX: Mutexes

    In this series, we are currently examining the different objects that exist within ThreadX to help developers synchronize events, tasks and move data around their applications. In this post, we are going to examine the mutex. A mutex is used for mutual exclusion which is where its name comes from, MUTual EXclusion (MUTEX). A mutex provides a method for a thread to gain access to a shared resource or even to a critical...
    • 6 Apr 2017

    Transitioning to ThreadX: Semaphores

    In this series, we are currently examining the different objects that exist within ThreadX to help developers synchronize events, tasks and move data around their applications. In this post, we are going to examine the most commonly used RTOS object, the semaphore. A semaphore can play many roles in a real-time embedded application. First and most preferred, is that semaphores are used to notify the application that...
    • 29 Mar 2017

    Transitioning to ThreadX: Task Synchronization

    Threads are a great mechanism to break-up an application into smaller, more manageable pieces. Once a developer starts to create threads in their application, it becomes necessary to figure out how to synchronize the threads. Not every thread will exist in a vacuum all by itself. In many instances, threads will work together to fulfill the system requirements. In this post, we will examine the synchronization objects...
    • 13 Mar 2017

    Introduction to the Synergy Wi-Fi Framework

    More embedded systems are requiring internet connectivity today than ever before. A number of these systems are looking to connect to the internet through wireless solutions rather than through Ethernet for added flexibility and mobility. Integrating Wi-Fi connectivity into embedded systems is often complicated and requires developers to get support from many disparate vendors such as MCU suppliers, Wi-Fi chipset or module...
    • 4 Mar 2017

    Transitioning to ThreadX: Getting up to speed with TraceX

    In the last several posts, we have been examining how important threads are to a real-time embedded system. Each thread acts as its own semi-independent program that must have its stack properly sized and the right priority to ensure that it gets its share of CPU time. Threads are a key concept and most discussions around real-time design is focused on task behavior and synchronization. In this post, we will examine TraceX...
    • 28 Feb 2017

    Transitioning to ThreadX: Managing Thread Priorities

    So far in this series we have been discussing how to create threads and properly size their stack so that developers are able to efficiently use their RAM while not risking a stack overflow. There is far more to thread management than simply getting the stack size correct. Developers need to understand how to make sure that all their threads will be able to meet their real-time deadlines. In order to accomplish this,...
    • 22 Feb 2017

    Transitioning to ThreadX: How to Size the Stack for a Thread

    In the last post, we discussed how a thread is a semi-independent program and saw how every thread has a Thread Control Block (TCB) associated with it. The TCB allows a developer to configure how a thread will behave and set the stack size that will be associated with the thread. Don’t forget that every thread will have its own private stack in addition to the stack that is used during initialization. So how do...
    • 10 Feb 2017

    Transitioning to ThreadX: Creating Threads

    Having access to a Real-time Operating System (RTOS) provides embedded system developers many advantages such as: Breaking the software up into semi-independent programs Deterministic scheduling Providing pre-emption (highest available priority threads run first) Providing a common tool set to synchronization activities within the software In the bare-metal universe, developers must fight with their system...
    • 1 Feb 2017

    Coming up to Speed with e2 Studio 5.2.1 New Features

    There are few things that are as exciting as getting new tools and gadgets and the recent e 2 Studio 5.2.1 release is no different! The latest release is packed with exciting new features that are designed to help make life easier for developers by simplifying the development process. In this post, we are going to examine the highlights and understand how they can benefit developers. For a quick feature overview, examine...
    • 27 Jan 2017

    Using the new tool to create a Custom Board Support Package Pack

    A few months ago, I wrote a post about how to Create a Custom Board Support Package which demonstrated how to use batch files and some magic to make your very own board support packages. As you may remember, the process was far from straight forward but it got the job down. The latest e 2 studio release now includes an export tool that is built into the development environment and dramatically simplifies creating a custom...
    • 26 Jan 2017

    Switching from e2 Studio to IAR Embedded Workbench® for Renesas Synergy™

    For some time now, the Synergy Platform has had the IAR Embedded Workbench® for Renesas Synergy ™ development environment and compiler available to developers. Engineers that have been using e 2 Studio might be hesitant to convert their e2 projects into IAR Workbench projects. Doesn’t this seem like it is going to be time consuming and require quite a bit of work? As it turns out, converting an e2 Studio...
    • 19 Jan 2017

    Synergy Platform Resources Every Developer needs to Know

    Getting up to speed on a new component, framework or platform can seem like a daunting task. There is so much to learn and so little time that without a little assistance, the process is overwhelming and time consuming. Renesas has pulled together numerous resources and made them available to developers to assist them in getting through the learning curve as quickly as possible. In this post, we will walk the reader through...
    • 19 Jan 2017

    Importing and Exporting Synergy Software Projects

    One benefit that developers using the Renesas Synergy™ Platform get is the ability to leverage existing projects and integrate them into their own products. These projects could come as Synergy Application Projects that are used to become familiar with the platform or custom projects that are developed in-house to speed up development. Importing and exporting Synergy Software projects is slightly different and unique...
    • 13 Jan 2017

    Updating Application Software using a Flashloader

    Embedded systems have become extremely complex as systems have moved from disconnected, simple devices to smart and complex internet connected devices. Development teams need a way to remotely fix bugs and also add new features to their products once it has been deployed into the field. In order perform software updates, developers using the Renesas Synergy™ Platform can use the Synergy Software Flashloader Framework...
    • 13 Jan 2017

    Using Synergy Software Generated Framework Code in Applications

    In the last several posts we have been discussing how to customize the BSP and even how to add modules and frameworks to an application. Adding these components to a project is one thing, but figuring out how to use them can be a completely different animal. In this post, we are going to examine how to use the automatically generated code along with tips and tricks for looking up the API and accessing the documentation...
    • 5 Jan 2017

    Understanding SSP Framework Callbacks

    When diving into the SSP Framework, developers might have noticed that quite a few modules have a property for a callback. Embedded software developers who are new to real-time operating systems and have mostly programmed at the bare-metal level may be...
    • 4 Jan 2017

    Adding Frameworks and Modules to the Synergy Software BSP

    In the last several posts, we have been examining how to create our own customized board support packages and even export them as a pack. Today we are going to examine how to add frameworks and modules to a board support package along with important considerations...
    • 4 Jan 2017

    Configuring the Board Support Package (BSP) using the Synergy Configuration Tool

    In the last post, we discussed the fundamentals associated with creating a base project using the “Custom BSP Creator”. In that post, we saw that there are two scripts associated with creating a custom BSP; the Custom BSP Creator and the Custom...
    • 9 Nov 2016

    Creating a Custom Board Support Package (BSP)

    The Renesas Synergy™ Platform development kits are a great way to get a jump start on developing an embedded application. The development boards are readily available at an affordable cost but a development kit will only get a developer so far....
    • 7 Nov 2016

    An Introduction to the SPI Application Framework

    The SPI bus has always been my favorite communication interface. It’s blindingly fast compared to other communication protocols like UART or IIC and doesn’t have a complex protocol involving addressing, NAKs or ACKs. SPI does use a single...
    • 7 Nov 2016

    Communicating on the IIC bus is now easier than ever

    Just the other day I was searching a component suppliers’ website looking for sensors to integrate in a prototype IoT device. After scrolling through hundreds of devices, I realized that while sensors offered multiple options for interfacing to...
    • 5 Nov 2016

    Jump-start Analog Measurements using the ADC Periodic Application Framework

    In order for our digital embedded systems to interact with the analog world around us, they must convert those analog signals into a digital representation that microcontrollers can understand and process. Analog-to-digital converters (ADC) are used in...
    • 5 Nov 2016

    Saving the Day with the Thread Monitor Framework

    Systems have a tendency to work just perfectly while on the bench but once deployed into the field, it is possible for systems to experience lock-up, single event upsets or have a thread run off into the wild. Developers have often employed the watchdog...
    • 28 Oct 2016

    Simplifying Interrupts with the External IRQ Framework

    Let’s be completely honest, no matter how many years a developer may have developing embedded software, setting up and configuring interrupts is still the most error prone and rarely works on the first try. There is just something about these interrupt...