This is a guest post about Heterogeneous Multicore Processing (HMP), Real-Time Linux, and Xenomai to develop real-time Linux systems written by Guilherme Fernandes, Raul Muñoz, Leonardo Veiga, Brandon Shibley, all working for Toradex. Introduction Application processor usage continues to broaden. System-on-Chips, usually powered by ARM Cortex-A cores, are taking over several spaces where small ARM Cortex-M, and other microcontroller devices, have traditionally dominated. This trend is driven by several facts, such as: The strong requirements for connectivity, often related to IoT and not only from a hardware point of view but also related to software, protocols, and security The need for highly interactive interfaces such as multi-touch, high-resolution screens, and elaborate graphical user interfaces; The decreasing price of SoCs, a consequence of its volume gain and new production capabilities. Typical cases exemplifying the statement above are the customers we see every day starting a product redesign upgrading from a microcontroller […]
Top 10 Programming Languages in 2016 for Embedded Software Development
IEEE Spectrum has published a list of the top programming languages in 2016 for Web, Mobile, Enterprise, and Embedded sectors with rankings created by weighting and combining 12 metrics from 10 sources. So I thought it would be fun to have a look at the top 10 of languages used for embedded software, and the results are: As expected, C and C++ are at the top, but I’m quite surprised that “Arduino” is now considered a programming language, as it is simply based on C/C++. When I worked as an embedded software engineer a few years ago, I personally used C, and Assembly, and to a lesser extend C++ and VHDL. I only recently started to play with Arduino code, and while I’ve heard of most other languages in the list, it’s the first time I’ve ever seen Ladder Logic, probably because it’s designed to program PLCs in industrial control […]
Google Summer of Code 2015 is Now Open for Student Applications
Google has now announced that students applications for Google Summer of Code (GSoC) are now open. Students can get paid up to $5,500 to work on various open source projects selected for the event. Fewer companies have been accepted this year, and even big names like the Linux Foundation and Mozilla got their application rejected. There are still over 137 open source projects to work on including: MinnowBoard project – Potential software projects for the Intel Atom embedded board include making low speed I/O buses more accessible via intermediate open source libraries (e.g. SMBus/PMBus/Wiring libraries), and improving the open source firmware. lowRISC SoC project – Potential projects: Schematic Viewer for Netlists (SVG/JavaScript), open source FPGA compilation flow using Yosys, accessing the OpenCores ecosystem, etc… BeagleBoard.org – Lots of project ideas relying on the BeagleBone Black board, dealing with Linux kernel support for embedded devices and interfaces, ARM processor support in […]
Learn How to Write a Driver for Linux 3.x With The Linux Driver Template
A Linux Driver Template (LDT) has been published to help new Linux kernel developers writing hardware device drivers. Constantine Shulyupin posted the Linux Driver Template (LDT) on the Linux mailing list in order to merge it into the mainline Linux kernel. The code can be used as as a starting point for new drivers, and shows how to use several Linux facilities such as module, platform driver, file operations (read/write, mmap, ioctl, blocking and nonblocking mode, polling), kfifo, completion, interrupt, tasklet, work, kthread, timer, simple misc device, multiple char devices, Device Model, configfs, UART, hardware loopback, software loopback and ftracer. This sample has been added to other device drivers samples in eLinux.org. And if you want to learn further there’s always the Linux driver bible: “Linux Device Drivers, Third Edition” which can be downloaded for free as PDF, although it’s for 2.6.10 kernel and many parts may not be up-to […]
Debian is Worth a Lot (Yet it’s Free) and C/C++ Language Still Rules
James E. Bromberger (JEB) , a contributor to Perl CPAN and Debian, has estimated the cost of developing Debian Wheezy (7.0) from scratch based on the the number of lines of code (LOC) counted with SLOCCount tool, the Constructive Cost Model (COCOMO) and the average wage of a developer of 72,533 USD (using median estimates from Salary.com and PayScale.com for 2011). He found 419,776,604 lines of code in 31 programming languages giving an estimated cost of producing Debian Wheezy in February 2012 of 19 billion US dollar (14.4 Billion Euros), making each package source code (out of the 17,141 packages) worth an average of 1,112,547.56 USD to produce. He also estimated the cost of Linux 3.1.8 Kernel with almost 10 millions lines of source code would be worth 540 million USD at standard complexity, or 1.877 billions USD when rated as ‘complex’. I don’t know which tool he used for […]
Android Training & Tutorials
The Android team just announced the launch of Android Training a collection of classes aimed at helping developers to build better Android applications. Each class explains the steps required to solve a problem, or implement a feature, with code snippets and sample code. They’ll add more materials over time, but right now developers can already learn (more) about the following topics: Designing for Multiple Screens Improving Layout Performance Managing Audio Playback Optimizing Battery Life Remembering Users Sharing Content Capturing Photos Maintaining Multiple APKs Developing for Enterprise Monetizing Your App Designing Effective Navigation There are currently 34 lessons on all those topics, and most include code samples such as the News Reader (Designing for Multiple Screens). You can get started immediately by visiting Android Training page. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write […]
Qt Quick QML Digital Signage Demo Part 2
Following up on Qt Quick QML Digital Signage Demo Part 1, I’ve updated the digital signage demo to support the following: Play 5 videos in a loop Display 5 pictures in a loop where the picture is changed every 5 seconds Use a (twitter) RSS feed for the scrolling text I initially planned to use QML to list the media files, but it is apparently not possible without using C/C++ and I may do it later on. So instead, I hard-coded the video and picture playlists in the QML files with the ListModel element. Videos are located in the video directory and pictures in the pic folder. An index is needed to scroll thru the playlist, but QML does not support global variables, so I created a JavaScript file (globals.js) to store the video and picture index: // Global variables in JavaScript file var iVideoIndex = 0 var iPicIndex = […]
Qt Quick QML Digital Signage Demo Part 1
I’ve recently started to play around with Qt and since I’d like to do a digital signage player running on Raspberry Pi, I’ve decided to try to make a simple digital signage demo application to evaluate the development platform. In Part 1, my goal was to make a 3 zones layout with a video zone, a picture zone and a scrolling text zone. I would just play one hard-coded media in each zone and the video and scrolling text would have to continuously loop. I used Qt Creator to create a “Pigital Signage” application (or should it be Πgital Signage ?). To create the 3 zones I used the Gridview Element with 3 rectangles: Video zone: 600×432 Picture zone: 200×432 Text zone: 800×48 Displaying the image is very easy with the Image Element:
1 2 3 |
Image { source: "pic/phone.jpg" } |
The video playback was also supposed to be easy with the Video Element but it can […]