Beagleboard.org launched the Beaglebone Cape Design Contest back in November, several designs were submitted, and yesterday, they announced the 3 winning CAPEs who will be manufactured and sold by Circuitco Electronics: Replicape by Elias Bakken – 3D printer cape Interacto by Chris Clark – Cape with a triple axis accelerometer,a gyroscope, a magnetometer and a 640×480 30fps camera. Geiger cape by Matt Ranostay – Geiger counter cape Since today I’ve started to write about 3D printing, let’s carry on and have a closer look at the Replicape. The Replicape 3D printer cape includes: 5 stepper motors (X, Y, Z, Ext1, Ext2) 3 high power MOSFETs (PWM controlled) for 2 extruders and 1 HPB 3 medium power MOSFETs (PWM controlled) for up to 3 fans 3 analog input ports for thermistors 3 inputs for end stops (X, Y, Z) Programmable current limits on steppers motor drivers (SMD). No need to manually adjust […]
Collabora and Fluendo Release GStreamer SDK for Android
Collabora and Fluendo have recently announced the availability of GStreamer’s Software Development Kit for Android, which allows developers to create multimedia playback applications for Android smartphones and tablets using Gstreamer and the Android NDK.. The GStreamer SDK for Android targets Android 2.3.1 Gingerbread or higher (API Level 9 or greater). However, due to some of the restrictions of previous versions of Android, some features such as hardware acceleration are only available on Android 4.1 Jelly Bean (API Level 16 up). Normally, you’d need the GStreamer SDK which can be installed on Linux (Ubuntu, Fedora and Debian), Windows (XP/Vista/7/8) and Mac OS X (10.6 to 10.8). But for developing Android applications using Gstreamer, you don’t. What you do need first is a typical Android development environment with the latest Android SDK, the latest Android NDK, and optionally, but recommended, the Eclipse IDE with Android ADT and NDK plugins. Once everything is […]
Designing An Android Sensor Subsystem: Pitfalls and Considerations – Android Builder Summit 2012
Jen Costillo of Lab 126 discusses the Android sensor subsystem at the Android Builder Summit in February 2012. Abstract: This lecture will arm Android device architects with the tactical knowledge they need to navigate the Android Sensor subsystem and make knowledgeable design choices to improve user experience and improve battery performance. The talk will address: Hardware architecture and trade-offs including latency, power, and software architecture implications: Wake up events and power considerations Gesture Detection Algorithm processing location and considerations Testing methodologies (Creating tools to aid develop and collect data. This talk targets the kernel/firmware developer responsible for the sensor architecture. They should be familiar with kernel drivers, embedded systems, hardware bring up, Android services, and the C language. You can also download the presentation slides on linuxfoundation.org website. 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 […]
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 […]
Design West Summit – 26-29 March 2012
UBM Design announced the schedule and pass pricing for Design West Summit (previously Embedded System Conference) which will now bring 7 summits in one location (San Jose McEnery Convention Center) on 26-29 March 2012: Embedded Systems Conference & Exhibition – Conference Dates: March 26 – 29, 2012. Exhibition Dates: March 27-29, 2012. (See Details below) Android Summit – March 28, 2012 – Everything Android from embedded design to Apps development. Android Certification Program Android Speed Training Android Fundamentals Course on the Expo Floor Android Conference Program Multicore DevCon– March 27 & 28, 2012 – Embedded multicore and multimedia. 7th annual Multicore Conference Courses Multicore Expo Floor Zone Multicore Fundementals Courses Keynote Addresses Industry Addresses Expo floor parties and giveaways BlackHat – March 29, 2012 – One-day conference focused on security in embedded systems. Security Fundementals Course Black Hat Summit Conference Courses Security focused presentations in the expo floor theater Keynotes […]
ARM Releases Free DS-5 Community Edition For Android Developers
ARM announced a free version of its Eclipse-based DS-5 tools for small development firms (with 10 or fewer developers) and individuals who publish applications for Android. The ARM Development Studio 5 (DS-5) Community Edition (CE) helps create performance- and power-optimized native software by integrating a graphical debugger for code generated for the Android Native Development Kit (NDK) and a basic version of the ARM Streamline performance analysis tool. DS-5 CE is designed to work with Android Virtual Devices ( AVDs), development boards and devices that run Android 2.2 and API 8 or higher. ARM Development Studio 5 (DS-5) Community Edition is distributed as plug-in for Eclipse and completes the app developer toolkit with a C, C++ and Assembly graphical debugger that builds on the Android Debug Bridge (ADB), a software performance profiler and system analyzer (ARM Streamline). To get started, you’ll need Eclipse IDE, the Android SDK and the Android NDK […]
ARM NEON Tutorial in C and Assembler
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 similar to MMX, SSE and 3DNow! extensions found in x86 processors. Doulos has a video tutorial showing how you can exploit NEON instructions in assembler, how to modify your C code and provides the compile options for gcc to enable NEON during the build. Abstract: With the v7-A architecture, ARM has introduced a powerful SIMD implementation called NEON™. NEON is a coprocessor which comes with its own instruction set for vector operations. While NEON instructions could be hand coded in assembler language, ideally we want our compiler to generate them for us. Automatic analysis whether an iterative algorithm can be mapped to parallel vector operations is not trivial not the least because the C language is […]
Development Testing with Static Analysis
I’ve recently come across an EE Times article written by Coverity stressing the benefits of static analysis and how it can help finding potential issues in the code early. They mentioned 3 static analysis techniques: Dataflow analysis This technique can find the defect in the listing below during compile time.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
void null_pointer_deref(int x) { char *p; if (x == 0) { p = foo(); } else { p = 0; } if(x != 0) { *p; } else { ... } } |
If value of x passed into the function is not zero, p is assigned a null pointer with p=0. Then, the next conditional check (x!=0) takes a true branch and in the next line p is dereferenced, leading to a null pointer dereference. This type of issue can be detected at compiled time with dataflow analysis. Interprocedural analysis This technique can find defects across function and method boundaries. See listing below:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
void *zero_alloc(size_t size) { void *p = malloc(size); if (!p) return NULL; memset(p,0,size); return p; } struct S *create_S(int initial_value) { struct S *s = (struct S *) zero_alloc(sizeof(*s)); if (!s) return NULL; s->field = initial_value; return s; } int example_leak(struct S *s, int value) { struct S *tmp = s; if(!tmp) { tmp = create_S(value); } if(!tmp) return -1; ... return 0; } |
There are 3 functions: example_leak, create_S and zero_alloc. Interprocedural analysis can go through the code and identify the memory leak. The analysis engine has to trace the […]