Building a Yocto Image for NXP i.MX6 Products

yocto-project-thumbdrive

Things to Know

We’re going to be walking through how to prepare a Yocto build for use with our i.MX6 products, specifically the TS-4900 which we have a special build recipe for. A build recipe is a friendly term to describe the scripts and environment variables required to build a Yocto distribution. There are many other build recipes available which work on a more generic level as well, so this guide can be applied generally as well. This guide is both an echo and extension of the TS-4900 Build Yocto Distribution wiki page. I’ll be mostly echoing (aka copy/pasting) the steps, but I’ll also add a few notes along the way. I’m going to assume you’ve landed here because you’re using search terms that make you at least familiar with what Yocto is and the terminology that surrounds a basic software development environment. If you have questions, I’m happy to try and answer them in the comments that follow.

Continue reading “Building a Yocto Image for NXP i.MX6 Products”

Risk Based Thinking, Transition to ISO9001:2015

iso-9001-2015

How Technologic Systems is preparing for the transition to ISO 9001:2015

ISO 9001 was designed to help organizations ensure that they meet the needs of customers and other stakeholders while meeting statutory and regulatory requirements related to a product or service. ISO 9001 deals with the fundamentals of Quality Management Systems, including the eight management principles upon which the family of standards is based. However, with the advent of ISO 9001:2015 upon us, it is clear that the paradigm regarding quality is changing as words and phrases like “Risk-Based Thinking”, “Leadership”, and “Evidence-based Decision Making” make their way into the forefront of Strategic Business Planning.

The new ISO 9001:2015 standard moves the subject of Management Systems into the boardroom. While this will be a cultural change, it is also a great opportunity for the enterprise leaders to improve their business overall. Continue reading “Risk Based Thinking, Transition to ISO9001:2015”

What I Wish I’d Known When I Was an Embedded Linux Newbie

 

embedded-linux-ts-board

Here are some tips compiled from our seasoned engineers on what they wish they’d known about embedded linux back when they were “newbs”.  Newcomers and seasoned veterans alike should get some good nuggets of information and possibly a fun perspective looking back at our own humble beginnings.  We’ll try not to overwhelm you as we make our way through the list.  We’re not here to rewrite the books, but do want to provide a personal perspective.  If you’re in the camp of people who’ve been using desktop Linux, just be aware embedded Linux is a different animal, especially when it comes to space constraints, different CPU architecture (ARM), resilience to sudden power outages, and inability to install any mainline Linux kernel or distribution you please.  And maybe you’re in the microprocessor camp moving towards a more generalized and capable embedded Linux system.  Either way, we’ll assume you have at least some knowledge of Linux as we walk through this guide.

Continue reading “What I Wish I’d Known When I Was an Embedded Linux Newbie”

Tag Jumping in a Codebase Using ctags and cscope in Vim

Introduction

Tag jumping is immensely helpful when developing in a CLI environment such as Vim or Emacs. Simply place a marker over the function, variable, class, macro, etc. and with a keystroke jump to the declaration or view other references across multiple files. This productivity tool will help you develop and debug faster and get a better understanding of your codebase.

There are two main solutions for tag jumping: ctags and cscope. Both are very similar in how they function: scan a codebase and index keywords (tags) and their locations. Vim understands the index and provides you with an interface for jumping back and forth between the tags.

The differences between the two are small, but important to distinguish. With ctags, you can use autocomplete (aka omnicomplete) for function and variable names as you type, something cscope doesn’t give you. Also, there’s much less setup to get ctags up and running as it’s generally already installed. The downside is ctags doesn’t do as well as cscope with a conglomerated or mostly unknown codebase. The good news is, they can co-exist!

We’re going to take a look at setting up and basic usage of both in this guide. If you need a diverse codebase to try this out on, try cloning a random trending c repository from GitHub. I settled on grpc/grpc because it was large and varied enough to really put ctags and cscope to the test.

Continue reading “Tag Jumping in a Codebase Using ctags and cscope in Vim”

Developer Notes on API Rewrite for TS-ADC16 and TS-ADC24

ts-adc24

Introduction

This is a developer’s note about rewriting the Application Programming Interface (API) for the TS-ADC16 and TS-ADC24 PC/104 peripherals. With the existing API being written in 2010 it was decided that a rewrite would be more effective than a comprehensive update. This article will cover the details of the development for the new API and also briefly describe the functions in the API.

Continue reading “Developer Notes on API Rewrite for TS-ADC16 and TS-ADC24”