The Advanced SIMD extension (aka NEON or “MPE” Media Processing Engine) is a combined 64- and 128-bit single instruction multiple data (SIMD) instruction set that provides standardized acceleration for media and signal processing applications for ARM Cortex-A (ARMv7) processors and the goal of these instructions is similar to MMX, SSE, and 3DNow! extensions for x86 processors. Starting early 2011, ARM has been working internally on a project codenamed Snappy to develop common functions accelerated by NEON. They have now released the first version of Snappy, now called the Ne10 library, which is available on GitHub at https://github.com/projectNe10/Ne10 . The code has been developed in C and Assembler and tested on Ubuntu on ARM (Linaro). A Makefile is also included to build it for Android (AOSP). The current functions include vector and matrix operations accelerated by NEON instructions. Since the library is open source, ARM hopes developers will make use of the Ne10 […]
Virtual Hardware Platforms: Test & Debug Software Before the Silicon is Ready
Historically software could only be tested and debugged when the first silicon sample was ready, and the software team could not participate in the design process. But thanks to Virtual Hardware Platforms, software can be executed at speeds close to real time on an abstract model of the hardware, available long before a design has been completed. The virtual platform is designed to simplify the creation and support of virtual prototypes and allow design teams to begin developing software weeks to months before a hardware prototype is available, and software teams can use it as their application development platform. For example, Freescale is using a Virtual Hardware Platform for their new Vybrid Controllers to emulate both Cortex A5 and Cortex M4 cores, as well as peripherals and run OS such as Linux or MQX before the Controllers are ready (Q2 2012). One Virtual Hardware Platform has just won the ACE […]
Cross-compiling the ARM Linux Kernel in Ubuntu 12.04 LTS
Yesterday I installed Ubuntu 12.04 ‘Precise’ Beta 1 in Virtual Box to give it a try (I could not manage to have HUD working btw), and today, I’ve noticed an article entitled “Ubuntu 12.04 ‘precise’ and cross compilation of ARM kernels” explaining how to build Linaro ARM kernel in Ubuntu 12.04. So I’ve decided to give it a try, especially it seems straightforward. I followed the instructions in the aforementioned link, it basically worked except I had to install dpkg-dev package that also installed the build essentials (gcc, g++, etc…) and use sudo for some commands. You’ll notice the name change for the ARM gcc toolchain as it now uses hard-float by default which seems to provide quite a boost in performance for the Pandaboard. Here are the steps I followed: Install the ARM GCC cross compiler and the development package of dpkg:
1 |
sudo apt-get install gcc-arm-linux-gnueabihf dpkg-dev |
Retrieve the kernel source:
1 |
apt-get source linux-source-3.2.0 |
Install […]
Freescale Vybrid Controllers: Cortex A5 + Cortex M4 Solutions
Freescale announced the new Vybrid platform based on Cortex A5 application processor and Cortex-M4 MCU (VF6xx and VF7xx family only) which targets building/home automation and control, industrial automation, point-of-sale systems, medical devices, smart energy equipment, and appliances. There are 5 families of Vybrid Controllers which support the following common features: Video/Camera Interface Unit + optional OpenVG GPU (except VF3xx) Up to 800 MHz data rate DDR3 and LPDDR2 support (except VF3xx) USB 2.0 OTF with Integrated PHY (1 or 2 depending on model) Ethernet 10/100 MAC (1 or 2 depending on model) Display controller (WQVGA to XGA resolutions) High-assurance boot with Crypto Acceleration Up to 1.5 MB on chip SRAM NAND Flash controller and Dual Quad-SPI with eXecute-In-Place(XIP) Dual 12-bit ADC and DAC Here are the 5 families of Vybrid platforms and key differentiating features: VF3xx: ARM Cortex-A5 up to 266 MHz, 1x USB 2.0 OTG, 2x Ethernet, display up […]
Glark, an alternative to Grep
grep is a very useful tool to search or filter strings in order to look for files, parse useful info in log files and more. glark is an alternative to grep, it has few features that grep does not such as complex expressions, Perl-compatible regular expressions, and excluding binary files. It also has a more fancy way of display results. It is described as follows in the manpage: Similar to “grep”, “glark” offers: Perl-compatible regular expressions, color highlighting of matches, context around matches, complex expressions (“and” and “or”), grep output emulation, and automatic exclusion of non-text files. Its regular expressions should be familiar to persons experienced in Perl, Python, or Ruby. File may also be a list of files in the form of a path. glark is not installed by default. To install it in Debian/Ubuntu/Mint: sudo apt-get install glark It does not appear to be available in Fedora and […]
iWave Systems Rainbow-G15M-Q7: Qseven SOMs Based on Freescale i.MX 6 Series
iWave Systems, an embedded systems company based in Bangalore, India, has launched Qseven Modules powered by Freescale i.MX 6Quad (quad-core Cortex A9 processor), i.MX 6Duo (dual -core) and i.MX6 Solo. The Rainbow-G15M-Q7 modules are compliant with Qseven specification R1.20 and target the Industrial, Automotive and Medical markets. Here are the modules specifications: CPU: Freescale i.MX6 Cortex A9 Q/D/S core @ 1 GHz Memory: 1GB DDR3 SDRAM– Expandable to 4GB Optional 8GB eMMC Flash On-Board Micro SD slot Qseven Edge Connector : PCIe v2.0 HDMI 1.4 SATA 3.0 Gigabit Ethernet Dual LVDS LCD Support 4 x USB 2.0 Host | 1x USB 2.0 device AC97 Audio 8-Bit SD/MMC CAN1, SPI & I2C ports Debug Port Expansion Connector: 2x Camera CSI MIPI CSI & DSI 24 Bit RGB LCD IF Triple UART 4×4 Key Matrix ESAI (Embedded Software Application Interface) , SPDIF MLB (Media Local Bus), CAN2 I2C, PWM, GPIO, Memory bus Form […]
uClinux Running on Freescale Kinetis K70 MCU (Cortex-M4) Module
Last year, I posted about Linux for Cortex M3 & M4 Micro-controllers and noted it was difficult to find cost effective Cortex-M based boards able to run uClinux or Linux (RAM being the main issue). Freescale TWR-K70F120M is a module based on Kinetis K70 MCU (Cortex M-4) with plenty of RAM (128MB) to run Linux or uClinux. It is available for 109 USD or 179 USD with Freescale Tower system (TWR-K70F120M-KIT). Here are the key features of the module: Freescale MK70FN1M0VMJ12 Cortex-M4 MCU @ 120 MHz (Product Brief) Touch Tower Plug-in Socket General purpose Tower Plug-in (TWRPI) socket On-board JTAG debug circuit (OSJTAG) with virtual serial port 128 MB DDR2 SDRAM memory 256 MB SLC NAND flash memory Three axis accelerometer (MMA8451Q) Potentiometer Micro-SD Card slot I could not find an open source uClinux implementation for Kinetis K70, but emCraft has a Linux Board Support Package (BSP) for the Freescale TWR-K70F120M-KIT […]
Linux 3.3 Release
Linux Torvalds announced the release of Linux Kernel 3.3 on the 18th of March: So after the extra -rc release last weekend, now the final 3.3 is out there in the usual locations. Things did indeed calm down during the last week, and the shortlog looks pretty boring. The diffstat from -rc7 is dominated by the arch/tile defconfig changes, the rest is pretty small, although there are changes spread out in various subsystems (drivers, filesystem, networking, perf tools). … And obviously, the 3.3 release means that the merge window for 3.4 is now open, although I may keep of pulling stuff for a day or so to encourage people to test the actual release. Linux 3.2 brought ext-4 and btrfs file system improvements, support for Qualcomm Hexagon processor, an improved profiling tool (perf top), and better CPU and network bandwidth management. Linux 3.3 brings the following key changes: Android merge: […]