Hardware and software development is going full-steam ahead for ARM servers. After Calxeda and AppliedMicro server SoCs – based respectively on Cortex A9 and ARMv8 architecture – have been announced and Ubuntu focusing further ARM development on Servers (Calxeda, Marvell and ARMv8), Oracle has released the Java SE server compiler – a throughput optimizing JIT compiler – for ARMv7. The ARMv7 server compiler is part of Java SE for Embedded 7 Update 2. First, some quick explanations on the 2 JIT compilers available for Java SE: Client: The client compiler is a fast start-up, lightly optimizing compiler. It’s better suited for smaller footprint systems and those running applications that require fast start-up such as Android applications. Server: The server compiler is optimizing code for throughput and produces highly-optimized code but incurs a start-up cost in achieving that. The server compiler only works on ARMv7 processors with hardfloat (VFPv3 FPU), and initial […]
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 […]
Nokia Developer Day 1 Summary – Chiang Mai
I’ve just attended the first day of Nokia Developer Day (6-7 December 2011). The focus was on software development for Nokia’s feature phones with Java or Web Apps (HTML/CSS/Javascript) and most of the time was spent on workshops to get started for developing for Nokia feature phones such as the S40 series. Introduction to Ecosystem Business Updates During the first 15 minutes, an “Introduction to Ecosystem Business Updates” was given by Jirapat Janjerdask, Head of the Ecosystem Developer Experience at Nokia Thailand. He gave an overview of the ecosystem for features phones including the brand, developer & publisher, mobile brand, mobile operator and consumer. One interesting statistics was that there are 10 millions app downloads every single day. He also talked about the new Nokia Asha 300 and 303 features phones available for 3000 to 4000 Thai Baht (100 to 130 USD) that are capable of running applications that usually […]
Android Platform Optimizations – ELCE 2011
Ruud Derwig and Mischa Jonker, both working at Synopsys, present different Android optimization methods at Embedded Linux Conference Europe 2011. Abstract: Although compute platforms gain performance with every new generation, getting the most out of every cycle and milliwatt remains a key value driver for Consumer Electronics. This presentation opens up the Android platform and explain what platform components and frameworks can benefit from performance optimizations. The optimizations are illustrated using real-life examples from the porting and optimization of the Android platform for the DesignWare ARC CPU. Both Android platform and application developers will gain insight in how to improve Android performance. Topics that are addressed include the Pixelflinger, Linux kernel and drivers, Javascript engine, Bionic C library, and the Dalvik VM. We’ll demonstrate the portability of Android and suitability of the ARC architecture for building efficiently Android systems. You can also download the presentation slides. Jean-Luc Aufranc (CNXSoft)Jean-Luc started […]
Embedded Linux Optimization Techniques – ELCE 2011
Benjamin Zores, Alcatel-Lucent, describes different optimization techniques (focusing on hardware choice and software architecture) that can be used to improve the performance of embedded linux at Embedded Linux Conference Europe 2011. Abstract: This presentation provides a series of techniques that can be used for Linux embedded systems fine-grain tuning and performances optimization. Embedded systems are, by definition, always limited in terms of resources while people keep on trying to use desktop-oriented software on top of it. This talk presents a series of tips that can be used to actually measure, find and isolate bottlenecks in your system, whether it is by complete system profiling or software architecture optimization. Focus is also made on the traditional caveats that need to be avoided for your system not to be slow by design. You can also download the presentation slides. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before […]
What Programming Language Should I Learn ?
“What programming language should I learn ?” is a question often asked by people new to software development. The answer is always “it depends”. But for embedded systems, it seems C language is a must as you can see in the chart below (Source: “The 2011 Embedded Market Study” by Embedded.com). For the 2011 survey, 1886 respondents from across the embedded industry answered that their embedded project was mostly programmed in C language (62%), followed by C++ (22%), assembler (5%) and Java (2%). The other languages were all under 1%. 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 daily news, and reviews full time later in 2011. www.cnx-software.com
Drawing Charts in Android with AChartEngine Library
AChartEngine is a charting library for Android applications that currently supports the following chart types: line chart area chart scatter chart time chart bar chart pie chart bubble chart doughnut chart range (high-low) bar chart dial chart / gauge combined (any combination of line, cubic line, scatter, bar, range bar, bubble) chart cubic line chart They announced that new chart types would be added in future release (Current version is 0.7.0). You can follow the updates for the library on Google Code or Facebook at http://www.facebook.com/achartengine. You can download the aChartEngine library on Google Code. You can also download some demo code such as TemperatureChart.java which display the following chart with just 100 lines of code including comments. Here’s the code (TemperatureChart.java) to display the Chart above:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
** * Copyright (C) 2009, 2010 SC 4ViewSoft SRL * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.achartengine.chartdemo.demo.chart; import org.achartengine.ChartFactory; import org.achartengine.chart.BarChart.Type; import org.achartengine.model.RangeCategorySeries; import org.achartengine.model.XYMultipleSeriesDataset; import org.achartengine.renderer.SimpleSeriesRenderer; import org.achartengine.renderer.XYMultipleSeriesRenderer; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.graphics.Paint.Align; /** * Temperature demo range chart. */ public class TemperatureChart extends AbstractDemoChart { /** * Returns the chart name. * * @return the chart name */ public String getName() { return "Temperature range chart"; } /** * Returns the chart description. * * @return the chart description */ public String getDesc() { return "The monthly temperature (vertical range chart)"; } /** * Executes the chart demo. * * @param context the context * @return the built intent */ public Intent execute(Context context) { double[] minValues = new double[] { -24, -19, -10, -1, 7, 12, 15, 14, 9, 1, -11, -16 }; double[] maxValues = new double[] { 7, 12, 24, 28, 33, 35, 37, 36, 28, 19, 11, 4 }; XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); RangeCategorySeries series = new RangeCategorySeries("Temperature"); int length = minValues.length; for (int k = 0; k < length; k++) { series.add(minValues[k], maxValues[k]); } dataset.addSeries(series.toXYSeries()); int[] colors = new int[] { Color.CYAN }; XYMultipleSeriesRenderer renderer = buildBarRenderer(colors); setChartSettings(renderer, "Monthly temperature range", "Month", "Celsius degrees", 0.5, 12.5, -30, 45, Color.GRAY, Color.LTGRAY); renderer.setBarSpacing(0.5); renderer.setXLabels(0); renderer.setYLabels(10); renderer.addXTextLabel(1, "Jan"); renderer.addXTextLabel(3, "Mar"); renderer.addXTextLabel(5, "May"); renderer.addXTextLabel(7, "Jul"); renderer.addXTextLabel(10, "Oct"); renderer.addXTextLabel(12, "Dec"); renderer.addYTextLabel(-25, "Very cold"); renderer.addYTextLabel(-15, "Cold"); renderer.addYTextLabel(-5, "Quite cold"); renderer.addYTextLabel(5, "OK"); renderer.addYTextLabel(15, "Decent"); renderer.addYTextLabel(25, "Warm"); renderer.setMargins(new int[] {30, 70, 10, 0}); renderer.setYLabelsAlign(Align.RIGHT); SimpleSeriesRenderer r = renderer.getSeriesRendererAt(0); r.setDisplayChartValues(true); r.setChartValuesTextSize(12); r.setChartValuesSpacing(3); r.setGradientEnabled(true); r.setGradientStart(-20, Color.BLUE); r.setGradientStop(20, Color.GREEN); return ChartFactory.getRangeBarChartIntent(context, dataset, renderer, Type.DEFAULT, "Temperature range"); } } |
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 […]