How ARM Nerfed NEON Permute Instructions in ARMv8

This is a guest post by blu about an issue he found with a specific instruction in ARMv8 NEON. He previously wrote an article about OpenGL ES development on Ubuntu Touch, and one or two other posts. This is not a happy-ending story. But as with most unhappy-ending stories, this is a story with certain moral for the reader. So read on if you appreciate a good moral. Once upon a time there was a very well-devised SIMD instruction set. Its name was NEON, or formally — ARM Advanced SIMD — ASIMD for short (most people still called it NEON). It was so nice, that veteran coders versed in multiple SIMD ISAs often wished other SIMD ISAs were more like NEON. NEON had originated as part of the larger ARM ISA version 7, or ARMv7, for short. After much success in the mobile and embedded domains, ARMv7 was superseded by […]

Getting Started with MediaTek X20 Android Development Board

Thanks to CNX for helping me get a hand on the 96Boards compliant Mediatek X20 board that was generously donated by Seeed Studio. In this article, I will walk through the steps to get the board up and running and also compile Android from the source code. The current Android is version 6. Unboxing the Beast First Boot Up The board boots up from the eMMC, and the first time you boot up you will get Android screen as shown in Figure-9. This is the default Android image from the factory, which surprisingly looks like it was setup for a phone screen mode, which is not sufficient for a HDMI monitor. It would be better to install the images that are made available at Linaro website or build your own. See the other section to flash the board with different images. Switching to Fastboot Mode Flashing image files are done […]

OnePlus 5 Smartphone Linux Kernel & Android Source Code Released

OnePlus 5 is a premium smartphone powered by a Qualcomm Snapdragon 835, 6 to 8 GB LPDDR4x RAM, 64 to 128 GB UFS 2.0 storage and a 5.5″ Full HD display, as well as the usual LTE, WiFi, Bluetooth, GPS.. connectivity. It was launched yesterday for $479 with 6GB RAM/64GB storage, $539 with 8GB RAM/128GB storage, and today, I’ve just read on XDA developers that the company had already released the source code for the phone. Beside the official Google Nexus/Pixel smartphones, many manufacturers will drag their feet before they eventually open the source code that they are legally required to release. Some companies will release the source code as tarballs, which works, but OnePlus has done better with Linux 4.4.21 source code available on Github. You should also be able to get the Android 7.1 Nougat source code as indicated here:

The source code should lead to improvements […]

XOD is a Visual Programming Language for Arduino, Raspberry Pi, and other Maker Boards

When you think about visual programming on the Raspberry Pi or Arduino board, Scratch may come to mind, but some developers have decided to create their own visual programming language working for Arduino, Raspberry Pi, and other boards. Meet XOD, pronounced ksəud. The developers explains their used “functional reactive programming principles and added graphical functionality”. XOD is comprised of “nodes” that represents either some physical device like a sensor, motor, or relay, or some operation such as addition, comparison, or text concatenation, which you can link together through inputs and outputs to create a program, and XOD IDE will compile the resulting diagram to create and upload a binary program to Arduino, Raspberry Pi, etc… You can also convert a XOD diagram into a node with inputs and outputs to use it in another diagram, so the language is scalable. The developers are now looking for testers to play with […]

WebAssembly is a Cross-Platform, Cross-Browser Solution for High Performance Code in Web Browsers

Most code running in a web browser runs much slower than native code (C/C++/ assembly), and it’s fine for many applications, but some others requiring higher performance like software video decoding would have to relies on native code, initially provided via browser plugins, but then Google introduced PNaCL (Portable Native Client) allowing to run native code on multiple targets (ARM, Intel, etc..) but in Chrome browser only, and now one of Chrome developers has explained that the community has moved to WebAssembly. WebAssembly works just as well as PNaCl, and is already natively supported by Chrome and Firefox, with support added to preview versions of Microsoft Edge and Apple Safari browsers.Since it works just as well as PNaCL, and adoption of the later is low enough, Google decided to drop support for PNaCl in the Chrome browser in Q1 2018, except inside Chrome Apps and Extensions. To get a feel […]

Getting Started with OpenCV for Tegra on NVIDIA Tegra K1, CPU vs GPU Computer Vision Comparison

This is a guest post by Leonardo Graboski Veiga, Field Application Engineer, Toradex Brasil Introduction Computer vision (CV) is everywhere – from cars to surveillance and production lines, the need for efficient, low power consumption yet powerful embedded systems is nowadays one of the bleeding edge scenarios of technology development. Since this is a very computationally intensive task, running computer vision algorithms in an embedded system CPU might not be enough for some applications. Developers and scientists have noticed that the use of dedicated hardware, such as co-processors and GPUs – the latter traditionally employed for graphics rendering – can greatly improve CV algorithms performance. In the embedded scenario, things usually are not as simple as they look. Embedded GPUs tend to be different from desktop GPUs, thus requiring many workarounds to get extra performance from them. A good example of a drawback from embedded GPUs is that they are […]

Using GPIOs on NanoPi NEO 2 Board with BakeBit Starter Kit

NanoPi NEO 2 is a tiny 64-bit ARM development board powered by Allwinner H5 processor. FriendlyELEC sent me a couple of NEO 2 samples together with their BakeBit Start Kit with a NanoHat and various modules via GPIOs, analog input or I2C. I’ve already tested both Armbian with Linux 4.11 and Ubuntu Core Qt with Linux 3.10, and ran a few benchmarks on NanoPi NEO 2. You would normally prefer to use the Armbian image with Linux mainline since it provided better performance, but at the time I was told GPIO support was not there. Configuring NanoPi NEO 2 board with BakeBit library So this week-end, when I decided to test GPIO support and BakeBit Starter Kit, I decided to follow this advice, especially nanopi-neo2-ubuntu-core-qte-sd4g-20170329.img.zip image is still the recommended one in the Wiki. So I went with that image. I’ll use Python examples from Bakebit library, but if you […]

Android Studio 3.0 Preview Release with Support for Kotlin Programming Language, Android O Preview Images

Most Android apps used to be programmed in Java with the Eclipse IDE, then Google introduced Android Studio in 2013 which has now replaced the latter, and with the release of Android Studio 3.0 Canary 1 preview, the company is now offering developers to program apps using Kotlin language instead of Java. Kotlin programming language is 100% compatible with Java language, and you can even mix Kotlin and Java in your code. Kotlin can make your code much more simple while declaring classes, and it has a few other improvements over Java. Android Studio also include a Java to Kotlin converter. The language has already been used by Expedia, Flipboard, Pinterest, Square, and others. Android Studio 3.0 also brings many other improvement, such as performance profiling tools for the CPU, memory, and networks showing your app performance in real-time, and faster Gradle builds for large sized app projects. Android Studio […]

EmbeddedTS embedded systems design