Archive

Posts Tagged ‘debugging’

Linaro 14.01 Release with Linux Kernel 3.13 and Android 4.4.2

January 31st, 2014 No comments

The first release of the year, Linaro 14.01, is now out with Linux Kernel 3.13 (baseline), Linux Kernel 3.10.28 (LSK), Android 4.4.2, and Ubuntu Linaro 14.01.

The most important part of this release is support for Arndale Octa, which makes big.LITTLE processing code available to a low cost platform. Android 4.4.x is now on par with Android 4.3 in terms of support. Linaro has also decided to provide quarterly stable released with GCC, and Linaro GCC 4.7-2014.01 is the first quarterly stable release with the next one planned with Linaro 14.04.

Here are the highlights of this release:

  • Linaro Stable Kernel (LSK) 3.10.28-2014.01 with latest version of GTS patch set for big.LITTLE, and Android support
  • Linux Linaro 3.13-2014.01:
    • gator version 5.17
    • updated linaro-android-3.13-merge topic by John Stultz, the “Revert “PM / Sleep: Require CAP_BLOCK_SUSPEND to use wake_lock/wake_unlock” patch included
    • uprobes v4
    • updated big-LITTLE-pmu topic from ARM Landing Team (LT)
    • updated basic Capri board support from Broadcom LT (clock framework support added)
    • Arndale Octa board support added by Samsung LT
    • updated Versatile Express patches from ARM LT
    • updated big endian topic
    • vexpress64 support (FVP Base and Foundation models)
    • config fragments changes: BeagleBone / BeagleBoneBlack config fragment created, more config options enabled for libvirt support, virtio mmio support enabled in vexpress.conf.
  • Linaro Toolchain Binaries 2014.01 including Linaro GCC 4.8-2014.01, with enhanced multilib support.
  • Linaro Android 14.01
    • libjpeg-turbo refreshed on Android builds from the Graphics Working Group
    • Kernel CI loop for Android was streamlined for stability and faster builds
    • built with Linaro GCC 4.8-2014.01
  • Linaro OpenEmbedded 2014.01
    • updated LTP to 20140115 releases
    • updated apica-tools to 20131218 release
    • integrated OpenDataPlane
    • merged external toolchain fixes contributed from Freescale
    • integrated Linaro GCC 4.8-2014.01
    • allowed native builds for OpenJDK 8
    • upstreaming: updated acpica-tools to the latest release, updated LTP (Linux Test Project) to the latest release, added Aarch64 support to GRUB2, added Aarch64 support to klibc
  • Linaro Ubuntu 14.01
    • Added packages to support Arndale Octa: arndale-octa-pre-boot, linux-linaro-arndale-octa and u-boot-linaro-arndale-octa
    • Added idlestat package
    • Packages updated: edk2-uefi, flash-kernel, gator and sbsigntool
  • Linux Linaro LNG 3.10.25-2014.01 – PREEMPT_RT patchset rt23, Arndale support
  • Linux Linaro LT HiSilicon 3.13-rc2-2014.01
    • Supports both K3V2 board and S40V200 FPGA board.
    • K3V2 support includes: basic soc, smp, hotplug, clock, i2c, touch, regulator, mmc. S40V200 support includes basic soc, smp, hotplug, clock
    • Integrated into the linux-linaro tree, and HiSilicon BSP code is now available in linux-linaro monthly releases
  • Linaro UEFI 2014.01
    • Rebased to Tianocore EDK2 SVN revision 14795
    • the latest version of the EDK2 code contains support for aarch64 plaforms upstream.
  • Linaro Image Tools 2014.01 – Arndale Octa support
  • Linaro Test Suites 2014.01
    • Android: Added Ethernet Test for Linaro Android
    • Ubuntu: Added WiFi Test for Linux Linaro Ubuntu
    • ltp: Improve parser & add tests
    • netperf: Add parameters and default to eth0
    • acpica-tools: Add acpica-tools test defination
    • ubuntu: Added acpi-smoke-test
    • acpica asl: Update source repository link
    • ltp-realtime: Parse ltp-realtime results for LAVA measurements
    • ubuntu: Added SD MMC Test for Linaro Ubuntu
    • ubuntu: Added Gator Data Streaming Test for Linaro Ubuntu
    • android: Added SD MMC Test for Linaro Android
    • Fixed parse pattern in min_max_avg_parse.py
    • mauve: move the tests instead of making a copy
    • ubuntu: remove unnecessary clone operation
    • oe: remove unnecessary clone operation
    • hackbench: Running hackbench properly with timeout and removed background dd
    • ubuntu/ltp-network: add ltp network test
    • netperf: set the result to skip, remove Sz in test name
  • Linaro idlestat – Tool which can show how long a CPU or cluster enters idle state with information gathered using traces from trace-cmd or ftrace tools
  • Linaro GCC 4.8-2014.01 with enhanced multilib support
  • Linaro GCC 4.7-2014.01

Visit https://wiki.linaro.org/Cycles/1401/Release for a list of known issues, and further release details about the LEB and community builds, Android, Kernel, Graphics, Multimedia, Landing Team, Platform, Power management and Toolchain (GCC / Qemu) components.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Cheap Accessories for Raspberry Pi – Camera, microSD adapter, Debug Board, Heatsink and Enclosure

January 26th, 2014 14 comments

The Raspberry Pi just a great low cost ARM Linux board that costs $25 (Model A) to $35 (Model B), but once you start to add accessories the total cost of ownership may creep up quickly, and in some cases accessories may be more expensive than the board itself. I’ll list some alternative accessories that can be purchased online for a fraction of the cost of the more famous one.

$18 Raspberry Pi Camera

Raspberry_Pi_Camera_CloneThe official Raspberry Pi camera costs $25 + shipping and tax, but you can get a similar 5MP CSI camera for just $18.13 including shipping on Banggood.com. This camera clone should be software compatible with the original one according to the listed features:

  • Plugs directly into the CSI connector on the Raspberry Pi
  • 5MP resolution image (2592 x 1944), or 1080p HD video recording at 30fps
  • 5MP (2592 x 1944 pixels) Omnivision 5647 sensor in a fixed focus module
  • 15 pin Ribbon cable to the dedicated 15-pin MIPI camera serial interface (CSI) included
  • The camera is supported in the latest version of Raspbian
  • Dimensions – 25 x 24 x 9mm

It appears to have similar specifications as the original camera up to to sensor, so I’d guess the image quality should just be the same, but this would probably have to be tested and and compared it to the original R-Pi camera. The Raspberry Pi foundation is most likely getting some funds from your purchase via RS components or Farnell as well, which is not the case with the clone.

$1.62 microSD card adapter

The Raspberry Pi comes with a full sized SD card slot, and when you insert the SD card in the board over half of the card is outside the board, which is not always looking nice, and in some applications may be an issue due to lack of space. To solve this problem, there are a few microSD card adapters from Adafruit ($6) and Pimoroni (about $10) among others, but you could save quite a lot by purchasing a microSD card adapter with the same functionality for $1.62 including shipping from BuyinCoins.

$1.45 USB To TTL debug board

usb_tll_adapterIf you want to see what’s going on at boot time in the bootloader and the linux kernel, you need to connect a USB to TTL to the UART pins of your Raspberry Pi in order to get the boot log in putty, minicom (Linux) or hyperterminal (Windows). Adafruit sells one for $9.95, but you can also buy a cheaper one which should work just as well for $2.19, and yes, it includes shipping, from BuyinCoins. [Update: the previous product uses +5V, so using another one supporting +3.3V won't damaged the R-Pi, and is even cheaper: $1.45]

$1.26 Heat sink set for the Raspberry Pi

The Raspberry Pi should not need heat sinks, but if your board is an environment where proper ventilation is not possible, and/or you overclock your Raspberry Pi to 1GHz or more, hits may be useful, a heat sink kits with 3 heat sinks for Broadcom BCM2835 SoC, LAN9512 Ethernet chip, and the voltage regulator are sold, and made of different materials such as ABS, aluminum and copper. Banggood is probably selling one of the cheapest aluminum kit for $1.26 including shipping. If you want a copper heatsink just for the SoC, there’s one for $1.19.

$3.52 Raspberry Pi Case

Pimoroni Pibow case is one of the most commonly used case for the Raspberry Pi, and it looks very nice, but costs a little over $20. There are many cases for a cheaper price, but this transparent Raspberry Pi case may be one of the cheapest ones for $3.52 including shipping.

Do you know any other cheap accessories for the Raspberry Pi? If so, let us know in the comments.

Thanks to onebir for the links.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Raxda Rock Development Board Unboxing, Quick Start Guide, and Benchmarks

January 13th, 2014 9 comments

Radxa Rock is an Android & Linux development board based on Rockchip RK3188 with 2GB RAM, 8GB NAND Flash, several I/Os that’s been available in beta version to a small number of developers in September 2013, with general availability starting at the very end of December 2013. Radxa team has sent me a board for me to try out. I’ll start with some unboxing pictures, write a Quick Start Guide for the first boot with Android 4.2.2, and run some benchmarks on the board. In another post, I’ll try some of the instructions to build Android and Ubuntu for the platform.

Radxa Rock Unboxing Pictures & Video

I’ve received the board in the following package via Fedex.

Radxa_Rock_PackageBeside the board, we’ve got a Wi-Fi antenna, a USB power cable, and a plastic casing.

Radxa Rock Package Content

Radxa Rock Package Content

Checkout Radxa Rock unboxing video below, if you want to find out exactly what’s you get when you receive the board.

Let’s have a closer look at the board.

Top of Radxa Rock Board (Click to Enlarge)

Top of Radxa Rock Board (Click to Enlarge)

The top of the board gets most of the interesting bits. From the bottom right, clockwise: power button, microphone, micro USB OTG port, IR receiver, UART header for serial console, micro SD card, 2x USB 2.0 ports, recovery button, 40 pin “GPIO” header, battery slot, Wi-Fi antenna connector, 10/100M Ethernet port, HDMI output, S/PDIF optical output, AV out, power jack, another 40-pin header, and the reset switch.

Bottom of Radxa Rock Board (Click to Enlarge)

Bottom of Radxa Rock Board (Click to Enlarge)

On the back of the board, we’ve got the Wi-Fi/Bluetooth module (Realtek RTL8723AS), two more RAM chips, as well as the name of all 80 header pins on the silkscreen of the board, which can be convenient.

Radxa Rock Case Assembly

Radxa Rock comes with a plastic case that you have to assemble. It does not look the best, but it’s functional, and both easy to assemble and disassemble. Start by inserting two sides (length) into the base, place the board in the case, add the cover, and finish the assembly by adding the two other sides (width). You’ll also want to add the Wi-Fi antenna, if you plan to use Wi-Fi. At no point you need to force during assembly or disassembly, so it’s unlikely you’ll break the enclosure.

Radxa Rock Enclosure

Radxa Rock Enclosure

The box has been designed so that you can access all ports, including the two 40-pin expansion headers, and the UART header. The two USB ports are a little deep inside though, so I’m not sure if it will work with all USB peripherals, and you’ll have to insert the microSD card before assembly, or using a small tool, e.g. toothpick, to push the card.

[Update: To see how the casing is assembled as well unboxing and first boot, you can also watch that video]

Quick Start Guide for Radxa Rock

I’ve connected an HDMI cable to a TV, an Ethernet cable to a hub, a serial debug board for console access, a USB RF dongle for Mele F10 air mouse, and I used Tronsmart T428 (5V/2A) power adapter for power.

Radxa_Board_ConnectionThe power starts immediately, i.e. there’s no need to press the power button, which is only used to turn off the board, and during boot you’ll see 4 Linux penguins (Tux), an animated “radxa” logo, and after just over 30 seconds you’ll get to the Android Home screen. I’ve tried to take a few screenshots by installing trial versions of apps such as Screenshot IT and Screenshot UX, but the board would just lose display output while taking screenshots, and I’d just see “No signal” message from my TV, requiring a press of the reset button.

Radxa Rock Android Home Screen (Click to Enlarge)

Radxa Rock Android Home Screen (Click to Enlarge)

I could see the kernel messages from the serial console, but for some reasons I was not able to input anything in minicom. This is probably not an issue with Radxa board, as I’ve add this issue randomly with other devices too.

Here’s the boot log for reference:

DDR Version 1.04 20130517
In
DDR3
300MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=2 Die Bus-Width=16 Size=2048MB
Memory OK
OUT
BUILD=====5
F:32 1061 2 0 40
GetRemapTbl flag = 0
OK! 51786
unsigned!
SecureBootEn = 0 0
Boot ver: 2013-06-20#1.24
start_linux=====63508
2292032 Starting kernel…@0×60408000[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.0.36+ (ty@fae) (gcc version 4.6.x-google 20120103
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=10c5387d
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: RK30board
[    0.000000] memory reserve: Memory(base:0x8f000000 size:120M) reserved for <>
[    0.000000] memory reserve: Memory(base:0x8e500000 size:11M) reserved for <f>
[    0.000000] memory reserve: Memory(base:0x8dd00000 size:8M) reserved for <ca>
[    0.000000] memory reserve: Total reserved 139M
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] CPU SRAM: copied sram code from c0b55000 to fef00100 – fef02198
[    0.000000] CPU SRAM: copied sram data from c0b57098 to fef02198 – fef0291c
[    0.000000] sram_log:      4q ?&     :     4q ?)     !?, # 0q    *!  ! 3q
[    0.000000] CLKDATA_MSG: pll_flag = 0×00
[    0.000000] CLKDATA_ERR:     can’t get a available nume and deno
[    0.000000] CLKDATA_ERR:     clk_frac_div can’t get rate=48000000,uart0_fracv
[    0.000000] L310 cache controller enabled
[    0.000000] l2x0: 16 ways, CACHE_ID 0x4100c0c8, AUX_CTRL 0×76050001, Cache sB
[    0.000000] DDR DEBUG: version 1.00 20130712
[    0.000000] DDR DEBUG: DDR3 Device
[    0.000000] DDR DEBUG: Bus Width=32 Col=10 Bank=8 Row=15 CS=2 Total CapabiliB
[    0.000000] DDR DEBUG: init success!!! freq=300MHz
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×23, DGSL=10
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×24, DGSL=10
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×24, DGSL=10
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×24, DGSL=00
[    0.000000] DDR DEBUG: ZERR=0, ZDONE=0, ZPD=0×0, ZPU=0×0, OPD=0×0, OPU=0×0
[    0.000000] DDR DEBUG: DRV Pull-Up=0xb, DRV Pull-Dwn=0xb
[    0.000000] DDR DEBUG: ODT Pull-Up=0×2, ODT Pull-Dwn=0×2
[    0.000000] PERCPU: Embedded 7 pages/cpu @c313f000 s6976 r8192 d13504 u32768
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pa8
[    0.000000] Kernel command line: console=ttyFIQ0 console=tty0 androidboot.co2
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 733MB 1176MB = 1909MB total
[    0.000000] Memory: 1917812k/1917812k available, 179340k reserved, 1204224K m
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 – 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 – 0xfffe0000   ( 896 kB)
[    0.000000]     DMA     : 0xff600000 – 0xffe00000   (   8 MB)
[    0.000000]     vmalloc : 0xf7000000 – 0xfe800000   ( 120 MB)
[    0.000000]     lowmem  : 0xc0000000 – 0xf6800000   ( 872 MB)
[    0.000000]     pkmap   : 0xbfe00000 – 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 – 0xbfe00000   (  14 MB)
[    0.000000]       .init : 0xc0408000 – 0xc0434000   ( 176 kB)
[    0.000000]       .text : 0xc0434000 – 0xc0ae17f4   (6838 kB)
[    0.000000]       .data : 0xc0ae2000 – 0xc0b546a8   ( 458 kB)
[    0.000000]        .bss : 0xc0b58024 – 0xc15fdc58   (10904 kB)
[    0.000000] SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=4, 1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:352
[    0.000000] rk30_gpio_init: 128 gpio irqs in 4 banks
[    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 1789s
[    0.000000] rk_timer: version 1.2
[    0.000000] Console: colour dummy device 80×30
[    0.000000] console [tty0] enabled, bootconsole disabled
<hit enter to activate fiq debugger>
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.0.36+ (ty@fae) (gcc version 4.6.x-google 20120103
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=10c5387d
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: RK30board
[    0.000000] memory reserve: Memory(base:0x8f000000 size:120M) reserved for <>
[    0.000000] memory reserve: Memory(base:0x8e500000 size:11M) reserved for <f>
[    0.000000] memory reserve: Memory(base:0x8dd00000 size:8M) reserved for <ca>
[    0.000000] memory reserve: Total reserved 139M
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] CPU SRAM: copied sram code from c0b55000 to fef00100 – fef02198
[    0.000000] CPU SRAM: copied sram data from c0b57098 to fef02198 – fef0291c
[    0.000000] sram_log:      4q ?&     :     4q ?)     !?, # 0q    *!  ! 3q
[    0.000000] CLKDATA_MSG: pll_flag = 0×00
[    0.000000] CLKDATA_ERR:     can’t get a available nume and deno
[    0.000000] CLKDATA_ERR:     clk_frac_div can’t get rate=48000000,uart0_fracv
[    0.000000] L310 cache controller enabled
[    0.000000] l2x0: 16 ways, CACHE_ID 0x4100c0c8, AUX_CTRL 0×76050001, Cache sB
[    0.000000] DDR DEBUG: version 1.00 20130712
[    0.000000] DDR DEBUG: DDR3 Device
[    0.000000] DDR DEBUG: Bus Width=32 Col=10 Bank=8 Row=15 CS=2 Total CapabiliB
[    0.000000] DDR DEBUG: init success!!! freq=300MHz
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×23, DGSL=10
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×24, DGSL=10
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×24, DGSL=10
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×24, DGSL=00
[    0.000000] DDR DEBUG: ZERR=0, ZDONE=0, ZPD=0×0, ZPU=0×0, OPD=0×0, OPU=0×0
[    0.000000] DDR DEBUG: DRV Pull-Up=0xb, DRV Pull-Dwn=0xb
[    0.000000] DDR DEBUG: ODT Pull-Up=0×2, ODT Pull-Dwn=0×2
[    0.000000] PERCPU: Embedded 7 pages/cpu @c313f000 s6976 r8192 d13504 u32768
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pa8
[    0.000000] Kernel command line: console=ttyFIQ0 console=tty0 androidboot.co2
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 733MB 1176MB = 1909MB total
[    0.000000] Memory: 1917812k/1917812k available, 179340k reserved, 1204224K m
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 – 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 – 0xfffe0000   ( 896 kB)
[    0.000000]     DMA     : 0xff600000 – 0xffe00000   (   8 MB)
[    0.000000]     vmalloc : 0xf7000000 – 0xfe800000   ( 120 MB)
[    0.000000]     lowmem  : 0xc0000000 – 0xf6800000   ( 872 MB)
[    0.000000]     pkmap   : 0xbfe00000 – 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 – 0xbfe00000   (  14 MB)
[    0.000000]       .init : 0xc0408000 – 0xc0434000   ( 176 kB)
[    0.000000]       .text : 0xc0434000 – 0xc0ae17f4   (6838 kB)
[    0.000000]       .data : 0xc0ae2000 – 0xc0b546a8   ( 458 kB)
[    0.000000]        .bss : 0xc0b58024 – 0xc15fdc58   (10904 kB)
[    0.000000] SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=4, 1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:352
[    0.000000] rk30_gpio_init: 128 gpio irqs in 4 banks
[    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 1789s
[    0.000000] rk_timer: version 1.2
[    0.000000] Console: colour dummy device 80×30
[    0.000000] console [tty0] enabled, bootconsole disabled
[    0.014180] Calibrating delay loop (skipped) preset value.. 1631.46 BogoMIPS)
[    0.014209] pid_max: default: 32768 minimum: 301
[    0.014399] Mount-cache hash table entries: 512
[    0.014909] Initializing cgroup subsys debug
[    0.014931] Initializing cgroup subsys cpuacct
[    0.014970] Initializing cgroup subsys freezer
[    0.015003] CPU: Testing write buffer coherency: ok
[    0.095826] CPU1: Booted secondary processor
[    0.135818] CPU2: Booted secondary processor
[    0.175818] CPU3: Booted secondary processor
[    0.175847] Brought up 4 CPUs
[    0.175884] SMP: Total of 4 processors activated (6525.87 BogoMIPS).
[    0.176217] devtmpfs: initialized
[    0.182178] NET: Registered protocol family 16
[    0.182279] last_log: 0xed900000 map to 0xf7004000 and copy to 0xc0b5c1a0 (v)
[    0.196766] DVFS MSG:        AVS Value(index=0): 114 114 114 114 114 114 114
[    0.315475] lcdc0 is used as external display device contoller!
[    0.315518] lcdc1 is used as primary display device controller!
[    0.415786] rk29sdk_wifi_bt_gpio_control_init: init finished
[    0.419594] console [ttyFIQ0] enabled
[    0.419741] Registered FIQ tty driver ed83dcc0
[    0.926124] bio: create slab <bio-0> at 0
[    0.930527] SCSI subsystem initialized
[    0.930738] usbcore: registered new interface driver usbfs
[    0.930864] usbcore: registered new interface driver hub
[    0.945115] usbcore: registered new device driver usb
[    0.945385] rk30_i2c rk30_i2c.0: i2c-0: RK30 I2C adapter
[    0.945651] rk30_i2c rk30_i2c.1: i2c-1: RK30 I2C adapter
[    0.945846] rk30_i2c rk30_i2c.2: i2c-2: RK30 I2C adapter
[    0.946007] rk30_i2c rk30_i2c.3: i2c-3: RK30 I2C adapter
[    0.946309] rk30_i2c rk30_i2c.4: i2c-4: RK30 I2C adapter
[    0.976723] rk30-adc rk30-adc: rk30 adc: driver initialized
[    0.977019] Advanced Linux Sound Architecture Driver Version 1.0.24.
[    0.977470] Bluetooth: Core ver 2.16
[    0.977551] NET: Registered protocol family 31
[    0.977603] Bluetooth: HCI device and connection manager initialized
[    0.977672] Bluetooth: HCI socket layer initialized
[    0.977724] Bluetooth: L2CAP socket layer initialized
[    0.977790] Bluetooth: SCO socket layer initialized
[    0.978862] rk fb probe ok!
[    0.983665] act8846_set_init,line=17
[    0.983713] act8846_set_init:g_pmic_type=3
[    0.985507] act8846_set_init  act_dcdc1 =1200000mV end
[    0.987393] act8846_set_init  vdd_core =1000000mV end
[    0.989276] act8846_set_init  vdd_cpu =1000000mV end
[    0.991157] act8846_set_init  act_dcdc4 =3300000mV end
[    0.992410] act8846_set_init  act_ldo1 =1000000mV end
[    0.994191] act8846_set_init  act_ldo2 =1200000mV end
[    0.995973] act8846_set_init  act_ldo3 =1800000mV end
[    0.997757] act8846_set_init  act_ldo4 =3300000mV end
[    0.999539] act8846_set_init  act_ldo5 =3300000mV end
[    1.001319] act8846_set_init  act_ldo6 =1800000mV end
[    1.002470] act8846_set_init  act_ldo7 =1800000mV end
[    1.004252] act8846_set_init  act_ldo8 =2800000mV end
[    1.004314] act8846_set_init,line=78 END
[    1.004392] i2c-core: driver [act8846] using legacy suspend method
[    1.004457] i2c-core: driver [act8846] using legacy resume method
[    1.004555] rk1000_control_probe
[    1.029546] rk1000_control_probe ok
[    1.029641] Switching to clocksource rk_timer
[    1.035218] Switched to NOHz mode on CPU #0
[    1.035856] Switched to NOHz mode on CPU #2
[    1.035870] Switched to NOHz mode on CPU #3
[    1.035883] Switched to NOHz mode on CPU #1
[    1.036495] lcdc1:reg_phy_base = 0x1010e000,reg_vir_base:0xf709c000
[    1.036607] fb0:win0
[    1.036612] fb1:win1
[    1.036617] fb2:win2
[    1.036733] rk3188 lcdc1 clk enable…
[    1.036795] rk3188 lcdc1 clk disable…
[    1.064043] fb0:phy:8e500000>>vir:f8000000>>len:0xb00000
[    1.064314] rk_fb_register>>>>>fb0
[    1.064640] rk_fb_register>>>>>fb1
[    1.065084] rk3188 lcdc1 probe ok!
[    1.065152] lcdc0:reg_phy_base = 0x1010c000,reg_vir_base:0xf70a8000
[    1.065238] fb0:win0
[    1.065243] fb1:win1
[    1.065247] fb2:win2
[    1.065360] rk3188 lcdc0 clk enable…
[    1.065413] rk3188 lcdc0 clk disable…
[    1.065460] fb2:phy:8e500000>>vir:f8000000>>len:0xb00000
[    1.065681] rk_fb_register>>>>>fb2
[    1.065954] rk_fb_register>>>>>fb3
[    1.065999] rk3188 lcdc0 probe ok!
[    1.127986] IT66121 probe success.
[    1.137628] cfg80211: Calling CRDA to update world regulatory domain
[    1.213553] NET: Registered protocol family 2
[    1.213716] IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
[    1.214161] TCP established hash table entries: 131072 (order: 8, 1048576 by)
[    1.216127] TCP bind hash table entries: 65536 (order: 7, 786432 bytes)
[    1.217323] TCP: Hash tables configured (established 131072 bind 65536)
[    1.217393] TCP reno registered
[    1.217436] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    1.217523] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    1.217892] NET: Registered protocol family 1
[    1.218165] RK29 Backlight Driver Initialized.
[    1.218392] Unpacking initramfs…
[    1.276438] [EDID] check header error
[    1.276503] (NULL device *): [HDMI] parse edid base block error
[    1.276585] (NULL device *): warning: EDID error, assume sink as HDMI !!!!
[    1.276652] (NULL device *): warning: no CEA video mode parsed from EDID !!!*
[    1.276765] Support video mode:
[    1.276801]  1920x1080p@60Hz.
[    1.276835]  1920x1080p@50Hz.
[    1.276868]  1280x720p@60Hz.
[    1.276900]  1280x720p@50Hz.
[    1.276931]  720x576p@50Hz.
[    1.276962]  720x480p@60Hz.
[    1.276993] ******** Show Sink Info ********
[    1.277061] rk3188 lcdc1 clk enable…
[    1.277114] lcdc1: dclk:74250000>>fps:60
[    1.277159] rk30-lcdc rk30-lcdc.1: rk3188_load_screen for lcdc1 ok!
[    1.277231] lcdc1: dclk:74250000>>fps:60
[    1.277273] rk30-lcdc rk30-lcdc.1: rk3188_load_screen for lcdc1 ok!
[    1.277341] lcdc1 wakeup from standby!
[    1.277383] lcdc1 win0 open,atv layer:1
[    1.282616] Freeing initrd memory: 1216K
[    1.282733] PMU: registered new PMU device of type 0
[    1.282912] DVFS MSG: core: dvfs_adjust_table_lmtvolt get leakage_level = 3
[    1.282989] DVFS MSG: aclk_gpu: dvfs_adjust_table_lmtvolt get leakage_level 3
[    1.382349] rk3188 cpufreq version 2.1, suspend freq 816 MHz
[    1.382969] Loaded driver for PL330 DMAC-1 rk29-pl330
[    1.383031]  DBUFF-32x8bytes Num_Chans-6 Num_Peri-12 Num_Events-12
[    1.383252] Loaded driver for PL330 DMAC-2 rk29-pl330
[    1.383315]  DBUFF-64x8bytes Num_Chans-7 Num_Peri-20 Num_Events-14
[    1.410619] highmem bounce pool size: 64 pages
[    1.410832] ashmem: initialized
[    1.420066] fuse init (API version 7.16)
[    1.424803] Block layer SCSI generic (bsg) driver version 0.4 loaded (major )
[    1.424886] io scheduler noop registered
[    1.424933] io scheduler deadline registered
[    1.425015] io scheduler cfq registered (default)
[    1.445254] rga: Driver loaded succesfully
[    1.445378] rk3188 lcdc0 clk enable…
[    1.445428] lcdc0: dclk:74250000>>fps:60
[    1.445469] rk30-lcdc rk30-lcdc.0: rk3188_load_screen for lcdc0 ok!
[    1.445958] lcdc0: dclk:27000000>>fps:60
[    1.448266] rk30-lcdc rk30-lcdc.0: rk3188_load_screen for lcdc0 ok!
[    1.448333] lcdc0: dclk:27000000>>fps:60
[    1.450644] rk30-lcdc rk30-lcdc.0: rk3188_load_screen for lcdc0 ok!
[    1.450707] lcdc0 wakeup from standby!
[    1.450746] lcdc0 win0 open,atv layer:1
[    1.450794] rk1000_tv ver 2.0 probe ok
[    1.451033] rk_serial.c v1.3 2012-12-14
[    1.451316] rk_serial rk_serial.0: dma_rx_buffer 0xffdfc000
[    1.451373] rk_serial rk_serial.0: dma_rx_phy 0x8c956000
[    1.451431] rk_serial rk_serial.0: serial_rk_init_dma_rx sucess
[    1.451491] rk_serial.0: ttyS0 at MMIO 0×10124000 (irq = 66) is a rk29_seria0
[    1.629797] rk_serial rk_serial.0: membase 0xf70c0000
[    1.630036] rk_serial.3: ttyS3 at MMIO 0×20068000 (irq = 69) is a rk29_seria3
[    1.789791] rk_serial rk_serial.3: membase 0xf70c8000
[    1.790825] Rockchip ion module(version: 1.0) is successfully loaded
[    1.797301] loop: module loaded
[    1.797447] Android kernel panic handler initialized (bind=kpanic)
[    2.800542] rk29 vmac rk29 vmac.0: ARC VMAC at 0×10204000 irq 51 62:5f:65:2cd
[    2.800639] PPP generic driver version 2.4.2
[    2.800783] PPP Deflate Compression module registered
[    2.800825] PPP BSD Compression module registered
[    2.822530] PPP MPPE Compression module registered
[    2.822581] NET: Registered protocol family 24
[    2.822672] usbcore: registered new interface driver asix
[    2.822744] usbcore: registered new interface driver cdc_ether
[    2.822808] usbcore: registered new interface driver dm9620
[    2.822870] usbcore: registered new interface driver SR9700_android
[    2.822934] usbcore: registered new interface driver net1080
[    2.822997] usbcore: registered new interface driver cdc_subset
[    2.823060] usbcore: registered new interface driver zaurus
[    2.823111] cdc_ncm: 04-Aug-2011
[    2.823155] usbcore: registered new interface driver cdc_ncm
[    2.823199] Rockchip WiFi SYS interface (V1.00) …
[    2.823261] Initializing USB Mass Storage driver…
[    2.823326] usbcore: registered new interface driver usb-storage
[    2.823375] USB Mass Storage support registered.
[    2.823475] usbcore: registered new interface driver usbserial
[    2.823537] USB Serial support registered for generic
[    2.823599] usbcore: registered new interface driver usbserial_generic
[    2.823649] usbserial: USB Serial Driver core
[    2.823698] USB Serial support registered for GSM modem (1-port)
[    2.823769] usbcore: registered new interface driver option
[    2.823812] option: v0.7.2:USB Driver for GSM modems
[    3.035845] DWC_OTG: ^^^^^^^^^^^^^^^^^Device Mfie
] usug0_otg usb20_otg: DWC OTG Controller
[    3.036009] usb20_otg usb20_otg: new USB bus registered, assigned bus number1
[    3.036095] usb20_otg usb20_otg: irq 48, io mem 0×00000000
[    3.036141] DWC_OTG: dwc_otg_hcd_start controller in device mode,everest
[    3.036228] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    3.036285] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber1
[    3.036344] usb usb1: Product: DWC OTG Controller
[    3.036383] usb usb1: Manufacturer: Linux 3.0.36+ dwc_otg_hcd
[    3.036428] usb usb1: SerialNumber: usb20_otg
[    3.036728] hub 1-0:1.0: USB hub found
[    3.036771] hub 1-0:1.0: 1 port detected

Since I needed to access the command line to try to capture the screen, and I could not type into the serial console I used adb instead. In Linux (Ubuntu 13.10) you need to edit two files, and add one line to each:

  • ~/.android/adb_usb.ini – add 0×2207 at the end
  • /etc/udev/rules.d/51-android.rules – add the following line:
    SUBSYSTEM=="usb", ATTR{idVendor}=="2207", MODE="0666", GROUP="plugdev"

Then you can run adb devices to make sure adb finds the board:

adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
5YEA8SL1TF    device

If the adb daemon was already running before you changed the files, you should run adb kill-server first.

Radxa Rock Benchmark

I’ll just run two benchmark: Antutu and Quadrant, to see how fast the current firmware runs on the board.

Radxa_Rock_AntutuThe board gets nearly 18,000 in Antutu 4 which is consistent with other RK3188 devices.

The score in Quadrant (5464) is also fine for a RK3188 based board.

You can find more information about Radxa Rock, and its little brother Radxa Rock Lite, on radxa.com, and if interested, purchase the board for $99 + shipping via Miniand, Seeedstudio or Aliexpress.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Google Announces LG Nexus 5 Smartphone with Android 4.4 KitKat

November 2nd, 2013 No comments

Google has partnered with LG and Nestle to bring to market the latest Nexus 5 smartphone featuring Android 4.4 “Kitkat”, the latest, and brand new, release of Android. Let’s first have a look at the device, and then we’ll go through the new features and improvement brought by Android 4.4.

LG Nexus 5

Google_Nexus_5Nexus 5 has the following technical specifications:

  • SoC – Qualcomm Snapdragon 800 @ 2.26GHz with Adreno 330 GPU @ 450MHz
  • System Memory – 2GB RAM
  • Storage – 16 to 32 GB flash, but no microSD slot
  • Display – 4.95″ touchscreen display with 1920×1080 resolution, Gorilla Glass 3
  • Connectivity – Dual band 802.11a/b/g/n/ac WiFi (2.4G/5G), Bluetooth 4.0, NFC, and GPS
  • Celullar Networks – 2G/3G/4G LTE. GSM, CDMA, WCDMA, and LTE in North America, and GSM, WCDMA, and LTE for the rest of the world.
  • Camera – 8MP rear camera with Optical Image Stabilization (OIS) and 1.3MP front camera
  • Video Output -  HDMI output (via SlimPort)
  • Audio – Built-in speaker, 3.5mm stereo audio connector, dual microphones.
  • USB – microUSB
  • Sensors – GPS, Gyroscope, Accelerometer, Compass, Proximity/Ambient Light, Pressure, Hall (Magnetometer)
  • Misc – Power and volume buttons
  • Battery – 2300 mAh with talk time up to 17 hours, standby time up to 300 hours, internet use time up to 8.5 hours on Wi-Fi, and up to 7 hours on LTE. Supports wireless charging.
  • Dimensions – 69.17×137.84×8.59 mm
  • Weight – 130g

The phone is available in black or white color, and in the US, costs $349 (16GB flash version) or $399 (32GB version) on Google Play. The device can also be purchased in Canada, U.K., Australia, France, Germany, Spain, Italy, Japan and Korea, but residents from other countries will have to wait a little longer.

You can find more information on Google Nexus 5 page.

What’s new in Android 4.4 Kitkat

Android_KitKatAs a side note, If you don’t have the cash to buy the Nexus 5, Google announced upcoming KitKat support for several older devices including Nexus 4, Nexus 7, and Nexus 10, as well as the Samsung Galaxy S4 and HTC One Google Play Edition devices. It may also be possible to get beta Android 4.4 “ROMs” earlier for your device from sites like XDA Developers Forums. The factory image for Nexus 5 is already available here.

Android 4.4 brings several performance optimizations and new features for developers:

  • Memory Optimization and Debugging Tools
    Android 4.4 has been designed to run smoothly on devices with as little as 512 MB RAM. Google has optimized low level software and middleware such as the kernel and Dalvik, but also apps including Chrome, and YouTube.
    procstats tool has been added to monitor memory use over time, with run times and memory footprint for foreground apps and background services (more at the end of the post). The meminfo tool has been enhanced to make it easier to spot memory trends and issues.
  • New NFC Capabilities through Host Card Emulation
    Host Card Emulation (HCE) allows any app on an Android device to emulate an NFC smart card, without needing a provisioned secure element (SE) in the device. The only thing needed is an NFC controller in the device.
  • Printing Framework
    Android apps can now print any type of content over Wi-Fi or cloud-hosted services such as Google Cloud Print. The framework also allows printer manufacturers to develop their own print services that can be distributed via Google Play.
    Android_4.4_Kitkat_Printers
  • Storage access Framework
    This new framework provides a standard UI to let users browse and open documents, images, and other files across all of their preferred document storage providers (local or cloud storage).

  • Low-power sensors

    • Sensor batching – Hardware sensor batching is an optimization to reduce the power consumed during sensor activities. This is particularly useful for low-power, long-running use-cases such as fitness, location tracking, monitoring, etc.. This feature is hardware-dependent, and currently (only?) works on the Nexus 5.
    • Step Detector and Step Counter – Android 4.4 also adds platform support for two new composite sensors: step detector and step counter. These let your app track steps when the user is walking, running, or climbing stairs, and they are implemented in hardware for low power consumption. Currently available in Nexus 5.
  • SMS Provider – The new SMS provider and APIs define a standardized interaction model for all apps that handle SMS or MMS messages.
  • New ways to build apps
    • Full-screen Immersive mode – It’s now possible to run an app full screen, without status and navigation bar. A swipe from the top or bottom edge of the screen can bring back the system UI.
    • Transitions framework for animating scenes – The transitions framework lets developers define scenes, typically view hierarchies, and transitions, which describe how to animate or transform the scenes when the user enters or exits them.
    • Translucent system UI styling
    • Enhanced notification access - Listener services can access a notification’s actions as well as new extras fields — text, icon, picture, progress, chronometer, and many others.
    • Chromium WebView – Webview has been completely redesigned and is now based on Chromium.
  • New Media Capabilities

    • Screen recording – You can now record a video of the action on your phone with the screen recording utility. Started with the command line: adb shell screenrecord or through the DDMS panel in Android Studio.
    • Resolution switching through adaptive playback – Seamless change in resolution during playnack. Useful for MPEG-DASH among other things.
    • Visualization of how the LoudnessEnhancer effect can make speech content more audible.

      LoudnessEnhancer can make speech content more audible.

      Common Encryption for DASH

    • HTTP Live Streaming v7
    • Audio Tunneling to DSP – This lets the DSP handle audio decoding to improve battery life. In the Nexus 5, audio playback time can last up to 60 hours, an increase of over 50% over non-tunneled audio.
    • Audio monitoring – For peak and RMS levels
    • Loudness enhancer – Media playback applications can increase the loudness of spoken content by using the new LoudnessEnhancer effect, which acts as compressor with time constants that are specifically tuned for speech.
    • Audio timestamps for improved AV sync
    • Wi-Fi CERTIFIED Miracast – Android 4.4 does not introduce Miracast, Android 4.2 did that, but I understand devices running Android 4.4 Kitkat with be considered “Miracast compatible”, and a new menu has been added in Settings > Developer options > Wireless display certification.
  • RenderScript Compute

    • Performance improvement compared to Android 4.3 – No need to recompile the app
      Renderscript_Performance_Android_4.3_vs_Android_4.4
    • GPU acceleration – Available on Nexus 5, Nexus 4, Nexus 10 and Nexus 7 (2013), and coming to more devices.
    • RenderScript in the Android NDK – Native code can now leverage Renderscript thanks to a new C++ API.
  • Graphics - SurfaceFlinger has been upgraded to OpenGL ES 2.0 from OpenGL ES 1.0, and the Hardware Composer now supports virtual displays.
  • New Types of Connectivity

    • Two New Bluetooth profiles - Bluetooth HID over GATT (HOGP) gives apps a low-latency link with low-power peripheral devices such as mice, joysticks, and keyboards. Bluetooth MAP lets your apps exchange messages with a nearby device, for example an automotive terminal for handsfree use or another mobile device.
    • IR Blasters – For TV / STB control
    • Wi-Fi TDLS support – Seamless way to stream media and other data faster between devices already on the same Wi-Fi network by supporting Wi-Fi Tunneled Direct Link Setup (TDLS).
  • Accessibility

    • System-wide settings for closed captioning – Users can now go to Settings > Accessibility > Captions to set global captioning preferences, such as whether to show captions and what language, text size, and text style to use.
    • Enhanced Accessibility APIs
  • Support for International Users

    • Drawable mirroring for RTL locales - This allow to reduces the size of the code, but having only one drawable for RTL and LTR languages.
    • RTL pseudo-locale – Android includes an RTL pseudo-locale as a new developer option to make it easier to test and debug layouts.
  • Security Enhancements

    • SELinux (enforcing mode) – Android 4.4 updates its SELinux configuration from “permissive” to “enforcing.” This means potential policy violations within a SELinux domain that has an enforcing policy will be blocked.
    • Two new cryptographic algorithms:
      • Elliptic Curve Digital Signature Algorithm (ECDSA) support has been added to the keystore provider improving security of digital signing, applicable to scenarios such as signing of an application or a data connection.
      • The Scrypt key derivation function is implemented to protect the cryptographic keys used for full-disk encryption.
  • Tools for Analyzing Memory Use

    • Procstats
      Procstats keeps track of how apps are running over time, providing data about their execution durations and memory use to help determine how efficiently they are performing.

      Android_Procstats

      Procstats

      You can access procstats from the adb tool included in the Android SDK, adb shell dumpsys procstats

    • On-device memory status and profiling
      It’s also possible to monitor memory usage directly on the device by going to Settings > Developer options > Process stats

      Android_4.4_Process_Stats

      Process Stats and Use details

      The Process Stats option shows a high-level metrics on your app’s memory use. On the top of the main screen you can see a summary of system memory status. Green indicates relative amount of time spent with low RAM usage, yellow indicates moderate RAM usage, and red indicates high (critical) RAM usage. Below, there’s the list of process with their (relative computed) memory load.
      To see more details about the memory usage of one particular app, tap on it to access the window shown on the right of the image above.

You can find the full details on Android 4.4 Kitkat Developer’s page.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Embedded Linux Conference Europe 2013 Schedule – Build Systems, Security, Device Tree, Debugging & Profiling Techniques, and More

August 31st, 2013 No comments

Embedded Linux Conference Europe 2013 will conveniently start right after LinuxCon 2013, last 2 days (October 23-24), and take place at the same location: the Edinburgh International Conference Center, Edinburgh, United Kingdom.

The Linux Foundation has published the schedule for the conference, so I’ll make my own virtual schedule with sessions that I find particularly interesting.

Embedded_Linux_Conference_Europe_2013

Thursday – 24th of October

Today, Linux is woven into the fabric of our technology. Things such as printers, routers, TVs and phones all have their own “Inner Penguin”. Yet it was never originally intended to be used beyond desktop and server PCs. A lot of things had to happen before Linux could break out of the PC environment and make its way in the world as a jobbing jack-of-all-trades. Since the early beginnings of embedded Linux in the late 1990′s many people have contributed time and know-how that has resulted in today’s Linux based embedded operating systems. This talk describes some of the key milestones and the events and people behind them.

In his keynote at the last Embedded Linux Conference, David shared a sample of the paranoia embedded developers should be exhibiting over security risks but often don’t. In this follow-up, David will share the stream of surprising and useful security features added to the Yocto Project, and demonstrate some of the new features which accelerate developer productivity and fun.

The conversion of the ARM Linux kernel over to the Device Tree as the mechanism to describe the hardware has been a significant change for ARM kernel developers. Nowadays, all developers porting the Linux kernel on new ARM platforms, either new SOCs or new boards, have to work with the Device Tree. Based on practical examples, this talk intends to provide a “getting started guide” for newcomers in the Device Tree world: what is the Device Tree? How is it written and compiled? How do the bootloader and kernel interact? How are Device Tree bindings written and documented? What are the best practices for writing Device Trees and the bindings?

With increasing CPU speeds, other bottlenecks arise; e.g. branch prediction and memory latency. In this talk we’ll explore how to identify performance issues using perf, and how to take these bottlenecks away. We’ll discuss prefetching (both hardware and software), conditional execution, and how we can use the compiler to help us. Finally, we’ll do an analysis of the resulting improvements using both simulations and actual RTL.>

It’s possible to build Linux for tiny devices without MMUs through to enormous multi-core servers. But is there anything remotely similar about the resulting systems? Is it sane to run Linux on a micro-controller? This talk will compare the anatomy of a uClinux/noMMU system to ‘normal’ ones, specifically looking at the difference between Linux running on Cortex A, R and M-class cores (M-class support has recently arrived in mainline!). Areas covered will include: notable missing kernel features (eg fork()!), binary format support, shared libraries, multitasking and security, as well as some of the implications to userspace of these differences. It will also cover some of the possible improvements to the way Linux uses features of R/M class cores, hopefully provoking some discussion on, for example, how to make better use of the Memory Protection Unit (supported in 3.11).

The EFL is a set of libraries that provide stable API/ABI, high efficiency, low memory usage, and works seamlessly with and without hardware (GPU) acceleration. These reasons and more are why the EFL are being used, on refrigerators, home automation systems, mobile devices, and the Tizen mobile platform among others. In this presentation, Tom will present an overview of the EFL, review the current state, and discuss the future plans for the project. Tom will also present new and future projects that improve the EFL development experience.

The LLVM project is an extensive compiler technology suite which is becoming commonplace in many industries. Technology built with LLVM is already shipped in millions of Linux devices as a part of Android/Renderscript. Increasingly it is becoming a big part of the development process for embedded projects, all the way up through to high performance computing clusters. This session will provide an update on the status of the LLVMLinux project; a project which is cooperating with both the Linux kernel and LLVM communities to build the Linux kernel with Clang/LLVM. This talk is for developers and system integrators who are interested in LLVM technologies and using clang to build the Linux Kernel.

Friday – 25th of October

  • 9:30 – 10:10 – Keynote – Embedded Build Systems Panel with Tim Bird, Sony Mobile; Ross Burton, Intel; Thomas Petazzoni, Free Electrons; Karim Yaghmour, Opersys; Jeff Osier-Mixon, Intel (Moderator)

Embedded Linux isn’t like “normal” Linux, which is available in tidy little distros where someone else makes all the tough decisions about what gets included. In the embedded world, the developer decides everything from the system content to the method for building that content into a cohesive package, and very often that same developer also makes decisions about the hardware. This is one busy developer. So in that context, the question of “which embedded Linux is best?” takes on many facets. Which kernel, which packages, and which drivers? Which build system is best, and under which circumstances? Should I start with Buildroot, use a pre-designed solution like Android, follow emerging standards like the Yocto Project, or just DIY – which even some large corporations do? This panel brings together a team of four seasoned embedded engineers to discuss how they make decisions and solve problems.

Embedded Linux is being used in more and more fields of: consumer, industrial and communication devices. Security is becoming an increasingly important issue for producers and users of these systems. Security of embedded systems is not only about: non-trivial root password, encrypted communication protocols and signed firmware. Both: the design of the device itself and the fact that It often works autonomously, in an inaccessible location, opens up a whole new possible fields of attack. Marcin Bis will review various methods of securing and encrypting whole system on various ARM-based hardware. Complete, working solution of ecryptfs, NAND encryption and secure boot techniques combined to provide a passively-secured system will be demonstrated, including a build system. The presentation is based on experience gained during R&D on home and industrial automation products.

Debugging, tracing and profiling are key tasks of any development process, including Linux kernel ones. In this area, the mainline Linux kernel comes with support for several internal events, probe primitives and break/watch functionality. Linux kernel communities provide many tools to use these features, either maintained in the mainline kernel, either available as external modules. Of course, no tool can replace a skilled developer with a good knowledge of the kernel, however that fact does not make tools useless either. In this presentation, Nicolas Launet will review several debugging, tracing and profiling tools freely available for Linux kernel development, expose how they work and discuss their strengths and limitations. The presentation will be illustrated with examples using kgdb, lttng, systemtap, perf and others.

Node.js is one of the most trendy technologies nowadays. Node.js is built on Google’s V8 javascript engine and provides a fast development environment. This presentation will cover the areas we can use Node.js in embedded linux devices. Before talking about applications, we will explain the cross-compiling process of Node.js and the NPM package manager for embedded linux devices. After setting up the environment, the talk will explain how Node.js can be used for scripting in embedded devices. Additionally, it will focus on development story of a surveillance camera application using Node.js platform on embedded linux. Inside the camera, the messaging between server/client, the web interface and IPC are developed by using Node.js platform.

As we all know Linus is a colorful character, but his taste in software design is impeccable. So it was hardly a big surprise when the famous edict about having all new ARM boards to use Device Tree, instead of a board file, was made. That single change forced a momentous shift in Linux based embedded software development, since a long list of cherished idioms (and a lot of questionable practices) have had to change. Device Tree due to it’s purely data driver model, and focus on reusability, is quite tricky to come at terms at first, which is something we discovered during our porting efforts of the Beaglebone board support to DT. Join me in discussing they why, the how, and learn the hard lessons we at Beagleboard have learned moving to this new paradigm.

Getting a new embedded linux device up and running is not easy. It involves debugging your software, which hasn’t been tested yet, and the hardware at the same time, with no way to know which one is at fault. Software debugging techniques are well known in the community, but debugging techniques for hardware aren’t. To goal of this talk is to give an overview of how to figure out whether the problem is hardware or software, to debug hardware in an efficient manner, to spot errors in the hardware design that weren’t visible until the software has been considered and presenting a workflow with which most problems can be pinned down.

Computer vision capabilities are a key enabler of autotomous robotic control, allowing machines to make decisions based on what they “see.” The OpenCV library is an open source computer vision and machine learning library used by companies including Intel, Google, Sony, Honda, and Toyota. This talk will explore the use of OpenCV in a fun autonomous robotics project that is affordable and easy to replicate, using the power of the Yocto Project embedded Linux platform (yoctoproject.org) and the MinnowBoard (minnowboard.org).

There are also other interesting sessions as well, but since schedule conflicted, I had to make some choices.

If you want to attend the conference, you can register online.

The fees are as follows:

  • Early Registration Fee – US$400 (through July 14th)
  • Standard Registration Fee – US$475 (July 15th – October 1st)
  • Late Registration Fee – US$550 (After October 1st)
  • Hobbyist Registration Fee – US$150

If you’re also planning to attend LinuxCon Europe 2013 on October 21-23, you’ll be illegible for a $200 discount. which still make the entry fee costs $375 for LinuxCon. Automotive Linux Summit Fall 2013 will also take place on October 24-25, and if you attend ELCE 2013 too, you can get another $200 saving, with the ALS fee being reduced to $150.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

LinuxCon Europe 2013 Schedule – Web Technologies, Debugging Techniques, Wayland, and More

August 22nd, 2013 No comments

I’ve just received an email from the Linux Foundation saying the schedule for LinuxCon and CloudOpen Europe 2013 had been made available. The conference will take place for 3 days (October 21-23, 2013) in the Edinburgh International Conference Center, Edinburgh, United Kingdom. There will be over 100 conference sessions, and several co-located events including: Automotive Linux Summit, the Embedded Linux Conference, Gluster Workshop, KVM Forum, Tizen Summit, Xen Project Developer Summit.

LinuxCon_Europe_2013

As I’ve recently done with LinuxCon North America 2013 and ARM TechCon 2013, I’ll make a virtual schedule with selected developer sessions using the event’s schedule builder. You may find out several sessions will also be given in LinuxCon North America.

Monday – 21st of October

This presentation will cover a brief introduction on how the Bluetooth Low Energy technology works. Then it will present the current status of its support on Linux, including the profiles we’re currently working on what can be expected to be finished on the near future. The currently available APIs and how to interact with Bluetooth Smart devices will be shown and there will be a few demos of Bluetooth Smart devices working with Linux.

Web Browsers are quickly becoming the most frequently used individual application in any modern desktop, following the same trend in mobile devices. They are growing in capabilities and performance, enabling an era of new webapps ranging from email to vehicle navigation and games. Current browsers are powerful enough to run even the Linux kernel in a Javascript PC emulator. Browsers are enabled by web engines, but have you ever questioned how they work? The objective of this talk is to present how a modern web engine works, following the several steps from the first user input to access a webpage up to the moment where content is rendered in the screen. Topics like multiprocess browser architecture, process sandboxing, content parsing and rendering will be covered. The web engine used for the discussion will be WebKit, with some examples drawn from Blink and Gecko.

The many tracing tools available on Linux today provide a wide array of choices for the users. Deciding which of them to use to diagnose system problems on production systems can prove challenging. Various tools have various states of integration within the Linux kernel, and also within different Linux distributions. Bleeding edge features are often just being merged into the upstream Linux kernel. It takes often a long time for such features to be incorporated in commercial distributions. The required set up for the tools and their level of usability also vary significantly. This talk will cover the more popular and actively developed tracing areas focusing on their latest updates and will describe the infrastructure they rely on. An overview of the tracing tools (ftrace, perf, systemtap, DTrace for Linux, etc) will be included with some examples of usage of each.

HTML5 is going to be used widely because of its powerful specification. A lot of browsers are now supporting HTML5. It is a new technology, so that currently only few engineers can use this technology. Needs of such skillful engineers are urgent and necessary from the point of Industry, such as automotive and others. We started the development of the certification program of HTML5 skill set. The purpose of this program is to encourage engineers to learn and and improve their skill set, and increase number of skillful engineers. In this presentation, I will provide why we started this program, how we develop, and time-frame.

Being one of the most successful open source projects to date, WebKit development process consists of a series of protocols and strict policies in order to obtain committer and reviewer status. Blink follows a similar approach with committers and scoped code owners, in a similar fashion as Linux Kernel does with its subsystem maintainers. Their open source success is due to not only solid support from major technology companies, but also to the high quality and automated testing performed on patches before submission. In this presentation, Bruno explains how the development process of both WebKit and Blink projects are – from submitting well-tested patches with strict policies to check, get review from community, and commit upstream via commit-queue system (including early warning system bots). This is a very practical talk with live demonstrations of patch submissions on both projects.

Tuesday – 22nd of October

Most of the kernel messages would be intended to know developers what’s going on in the kernel, and they tend to be not friendly to users and machines. To improve this, Hidehiro Kawai is trying to add hash value for each kernel message to identify them easily. If this feature becomes available, users can consult external manuals by feeding the hash and know detailed information. Or a monitor tool can identify specific message in low overhead and trigger a fail-over or collect related information automatically. In this presentation, he explains the implementation of the first RFC patch set, on-going discussions (if there are), and how utilizing the feature in user space, while introducing a similar challenge 5 years ago and how addressed its objections.

The Wayland project is growing fast, as well as its adoption by several toolkits. EFL (Enlightenment Foundation Libraries) specifically has a Wayland backend being actively developed over the last 2 years, with its latest features being already incorporated. EFL developers are also contributing back to the Wayland project itself, helping to improve the protocol and implementation, from a toolkit point of view. This talk will present the current development state of the Wayland backend of EFL, describing the latest incorporated features. It will also present the changes that this port has passed since the beginning of its development, and its improvements so far. A comparison to the other EFL backends will be done, as well as future plans for Wayland on EFL and the Enlightenment Window Manager.

Window managers and desktop environments in the Open Source community number in the dozens, but only a small number of those include compositors; fewer still can boast that they run seamlessly on embedded devices or in Wayland. Enlightenment is so flexible that it was chosen by Samsung to be to window manager for their new Linux-based mobile operating system, Tizen, in addition to being used by tens of thousands of users worldwide for over a decade. With the current development of E19, it’s time to take a step back and look at the main feature: compositor design. This presentation will give a brief introduction to compositing and window management before jumping directly into the history of Enlightenment’s compositor architecture and its progression to the current state of full Wayland and X support.

The 2013 version of this popular talk describing the current state of kernel development and where it can be expected to go in the near future. There will be some technical content, but this talk is highly accessible to non-technical participants as well.

Concurrency issues in the software, and data races in particular, may have devastating effects but are often quite hard to reveal. Hunting down such problems is especially important for the Linux kernel, which is inherently concurrent. Although there is a variety of tools to help reveal data races in the user-space code (Helgrind, DRD, ThreadSanitizer, etc.), there are only a few that can be applied to the kernel. In his presentation, Eugene Shatokhin will give an overview of such tools and the techniques they rely upon. Among other things, he will present KernelStrider, a component of KEDR Framework that collects data about the operation of the kernel modules in runtime. The data are then analyzed by an “offline” detector in the user-space to actually reveal the races. The results obtained so far as well as possible directions of future development will also be discussed.

Wednesday – 23rd of October

git bisect” is a command that is part of the Git distributed version control system. This command enables software users, developers and testers to easily find the commit that introduced a regression. This is done by performing a kind of binary search between a known good and a known bad commit. git bisect supports both a manual and an automated mode. The automated mode uses a test script or command.People are very happy with automated bisection, because it saves them a lot of time, it makes it easy and worthwhile for them to improve their test suite, and overall it efficiently improves software quality.

The GFS2 cluster filesystem has been under development for a number of years, however there has been no up-to-date presentation covering all of the latest features since OLS 2007. The intent of this talk is to provide an overview of the current feature set, noting recent significant developments, as well as an introduction into the major algorithms of GFS2 for those less familiar with its capabilities. During the development process, many lessons were learned which would apply equally to any open source project, and these will be discussed too.

October 21, 2013 marks the Qt Project’s second anniversary. Launched in 2011 to be the home of the Qt libraries and frameworks under Open Source Governance, the Qt Project has seen quite a lot of change in these 2 years., good and bad. It lost its main sponsor and many doubted the project would continue, but it did, and it managed to release the first major release in 7 years (5.0), one more feature release and half a dozen patch releases. This presentation will review the principles of the project’s governance, who the contributors are and how they work, the major changes that happened in the past two years and how they’ve influenced the project. It will explore the development process from patch to release and to maintenance / bug fixing, and will also show how non-code contributors participate.

As the number of cores in systems steadily increases, you may find that the good old mutual exclusion synchronization is not sufficient to let your application use more cores not only for heat generation, but primarily for effective computing. The Userspace RCU library implements Read-Copy Update (RCU) synchronization and various lock-free data structures that allow user-space applications to leverage very lightweight synchronization across cores. It allows a broad range of demanding applications to scale to large numbers of cores. This library is released under LGPL v2.1, so it can be used by all applications. This tutorial will walk the audience through the basics of Read-Copy Update, and then through the synchronization and data structure APIs exposed by Userspace RCU.

You can register to LinuxCon Europe 2013 and CloudOpen Europe 2013 online for the following fees:

  • US$475 through July 14th (Early)
  • US$575 July 15th – September 1st (Standard)
  • US$675 thereafter (Late)
  • Student Registration – $150
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

ARM TechCon 2013 Schedule – ARM Servers, Internet of Things, Multicore, Hardware and Software Optimization and More

August 1st, 2013 No comments

ARM_Techcon_2013ARM Technology Conference (TechCon) 2013 will take place on October 29 – 31, 2013, in Santa Clara, and the detailed schedule for the event has just been made available. In the previous years, the conference was divided into  Chip Designs day (1 day), and the other 2 days were reserved for Software & System Design, but this year it does not appear to be the case. Whether you’ll be able to attend the event or not, it’s worth having a look at what will be discussed there in order to have a better understanding of what will be the key ARM developments in the near future in terms of hardware and software.

There will be around 90 sessions categorized into 15 tracks:

  • Accelerating Hardware Development – This track explores the resources, tools, and techniques that designers can employ to quickly bring hardware to market. Topics include multicore design, ARM IP, chip buses, analog integration, simulation, FPGA prototyping, design synthesis, debugging and certification.
  • Accelerating Software Development – Topics include open-source software, RTOSes, Android, Java, libraries, CMSIS, software development tools, development boards, hardware simulation, debug tools, optimization and analysis tools, test tools and certification.
  • Accelerating System Hardware Development – This track explores the tools and techniques for getting system hardware development rapidly launched and landed. Topics include single board computers (SBCs), development boards, RF modules, analog front ends, FPGAs, ESL tools, hardware simulation and novel techniques for rapidly assembling a functional design.
  • Applying New Technologies to New Opportunities – This track explores new chip design technologies and new applications and their impact on one another. Topics include 14nm and beyond, graphics and multimedia, servers and enterprise-class processing, gateways, high speed interfaces, ultra-low power, energy harvesting, machine vision, advanced networking, medical instrumentation, automotive systems and voice recognition.
  • Building a Foundation for Safety and Security – This track explores the chip-level and software foundations for system safety and security, including things such as as multi-core and redundant architectures, TrustZone system security technology, trusted execution environments, encryption, tamper detection and hardware/software security partitioning, as well as the hardware elements for safety-related systems such as healthcare and vision processing in advanced driver assist in automobiles.
  • Creating the Next Gen Mobile Platform – This track explores the kinds of features and system requirements mobile devices will need to provide, and the techniques and resources needed to bring those designs to market. Topics include multicore design, multimedia and graphics, GPU computing, haptics, networking, security, high speed and wireless interfaces, GUI design and development, operating systems and power management.
  • Empowering System Security – This track explores the requirements, tools, and techniques for providing security in system designs at both software and hardware levels. Topics include encryption, trusted execution environments (TEE), TrustZone system security architecture, biometrics, tamper detection, remote management, application whitelisting and blacklisting, software certificates, network attack vulnerabilities and key protection.
  • Enhancing the User Experience – This track explores the tools and techniques for enhancing a consumer’s experience of your device, from high-end through resource constrained. Topics include touchscreens, haptics, multimedia, gesture recognition, GPU computing, accelerometers, sensor fusion, voice recognition, voice synthesis and GUI design and development tools.
  • Kickstarting ARM Embedded Development – This track provides you with the information and insights needed to ease your path and begin development. Topics include ARM architectures, new device releases, development kits, development tools, software IP, libraries, 8- to 32-bit migration, code reuse, CMSIS and more.
  • Marrying Software and Hardware in Multicore Design – This track explores the interaction between hardware design and software structure as well as the techniques for ensuring an optimal working relationship between the two. Topics include big.LITTLE processing, graphics processing, redundant computing, distributed computing operating systems, software partitioning, multi-core debugging and software optimization.
  • Maximizing Chip Energy Efficiency – This track explores the processes, structures, and approaches that will help keep device power minimized without sacrificing performance. Topics include semiconductor processes, clocking and power management, big.LITTLE and other multicore architectures, sleep modes, smart peripherals, dynamic clocking, analog integration, RF integration and other design techniques for reducing device power requirements.
  • Next-Generation Networking – Rise of Software Defined Networking – This track explores advanced and high-performance networking architectures, approaches, and implementations, including such topics as software defined networking (SDN), network function virtualization (NFV), high speed interfaces, wireless, security and carrier-class platforms.
  • Optimizing System Software Blocks – This track explores options in system software and the tools and techniques for optimizing software performance and resource requirements. Topics include Android, Linux, OSes, RTOSes, GUI design, libraries, drivers, development tools, debugging tools, certification and software test tools.
  • Stacking Up for High Performance Design – This track explores multicore architecture and design, looking at criteria such as core selection and integration, clock and power management, and shared memory architectures as well as other approaches to increasing the processor resources available on chip in the light of their performance and power implications. Topics include such things as hardware accelerators, graphics processors, big.LITTLE processing, clocking and power management, high-speed interfaces and SoC design.
  • Taming the IoT Frontier – This track seeks to explore a wide range of techniques and technologies that will help system developers quickly stake their claim in the IoT frontier. Topics include RF modules, sensors, networking, gateways, WiFi, Bluetooth, Zigbee, battery-powered design, energy harvesting, analog interfaces, cloud services, and security.

I’ve used the schedule builder to select some of the tracks that I find interesting during this 3-day event:

Tuesday – 29th of October

This class discusses multicore from a more traditional embedded viewpoint.

According to Cisco, the Internet of Things (IoT) is expected to connect more than one trillion objects by 2020. Through extreme interconnectivity, devices and objects are morphing into connected experiences that will have a profound impact on everything from cities to healthcare to households. This live demonstration shows how anyone can build, connect, operate, and capitalize on the IoT opportunity. The combination of ARM mbed and the LogMeIn Xively platform accelerates time to market, as developers can rapidly progress from prototyping to volume deployment. Attendees will leave with an action plan for deploying their own IoT-enabled products.

Multicore ARM platforms are becoming the norm in embedded applications and smartphones. However, most developers do not understand the underlying hardware architecture and what that means to their software-development approach. This presentation leads attendees through the issues, such as process migration and caching control, that can increase application performance an order of magnitude or more. We discuss techniques to avoid multicore race conditions, common scheduling issues, and how to bind user threads and integrated services routers to specific processor cores in Linux and Android to guarantee the maximum performance and temporal correctness of applications and kernel code.

This session introduces both a development environment for people who are starting to use BeagleBone or BeagleBone-like ARM boards and the whole ecosystem behind OpenEmbedded. It goes through such tools and techniques as generating images, generating package feeds, customizing images, and adding your own software to images.  Developers can generate their own SDKs and use them outside of the Angstrom Linux distribution that’s shipped with BeagleBone so they can write applications. The loop is closed by showing how applications are knotted into Angstrom to become part of images. Angstrom also maintains feeds for BeagleBone, which means application developers can utilize it without rebuilding the platform software.

  • 15:30 – 16:20 – Server Solutions from ARM by Ian Forsyth, Senior Product Marketing Manager, High Performance Application Processors, ARM, and Aniket Saha  |  Product Manager, ARM

The server landscape is rapidly shifting, with workload profiles bifurcating into compute-intensive and scale-intensive. ARM designed its latest Cortex-A50 line of 64-bit processors for the needs of this evolving server workload in the enterprise data center. ARM servers can deliver high performance at a higher efficiency than similar technology based on x86-class processors. This paper details ARM-based server solutions and ecosystem developments.

Wednesday – 30th of October

SmartMesh IP is the latest generation of low-power wireless mesh solutions by the Dust Networks Product group at Linear Technology. It combines the ease of use of IPv6 and 6LoWPAN with the wired-like reliability of IEEE802.15.4e Time Synchronized Channel Hopping. It runs on the custom-built Eterna chip, which combines an ARM Cortex-M3 MCU, with an ultra low-power IEEE802.15.4 wireless radio. This gives a SmartMesh IP mote years of battery life. This session starts by discussing the challenges of building a reliable low-power wireless solution and how these were overcome in the development of SmartMesh IP. We then highlight how customers are integrating these networks, either by driving the mote with an external micro-controller over a serial port or by developing custom firmware directly on the SmartMesh IP device. Through a number of hands-on demonstrations, we present the ecosystem available to simplify integration.

GPU computing on the ARM Mali-T600 series of GPUs offers a host of benefits: it accelerates data-parallel computation while reducing system work load; reduces platform energy consumption while increasing system throughput; and enhances your system’s value by consolidating functionality while reducing programmer effort. In this talk, we show how ARM Mali-T600 processors deliver such benefits on shipping devices. By analyzing ecosystem partners’ use cases, we highlight trends in GPU computing: computational photography, computer vision, and image processing.

The Internet of Things (IoT) is a huge opportunity, as well as a huge design problem. Your key to success is to avoid trying to do everything yourself. We explore the barriers to growth and the practical steps to breaking them down, with insights from early companies in the field as well as ARM’s own engineers. Among the several key points: Today, online products are delivered vertically integrated: one vendor delivers devices, gateway, cloud services, analytics, and user-experience aspects. Increasingly, commercial necessity is forcing providers to think open and embrace a horizontal ecosystem. Different link layers such as ZigBee and WirelessHART are here for a while, but between them and the application is a layer of great commonality from application to application, ripe for standardization. The talk includes practical tips for designing devices and services for the IoT that take advantage of interoperability, lower cost, and better user experience, including easy pairing, pub-sub, and preparing for IPv6 in an IPv4 world.

As industry projections for entry-level smartphones soar, it is ever more important to achieve the required performance within ever tighter power, cost, and timescale constraints. This presentation describes how to build an extremely efficient processing subsystem, based on the very latest, lowest-power ARM Cortex-A class processors, Mali graphics and video processors, and CoreLink PD-System IP. Key factors explored are power management, cost/benefit of GPU coherency, optimal sharing of memory bandwidth, and minimizing area and IP costs.

Now that the RTX full-featured real-time operating system is under a BSD license, it really is free. RTX, part of the CMSIS-RTOS standard, has found applications in thousands of products. Created and maintained by Keil, it includes all source code. RTX is not crippled or limited in any way. Ports are provided for Keil MDK, GCC, and IAR.

This seminar looks at the overall features of RTX and shows how easy it is to implement in any project. Included are a live demonstration of the two kernel-awareness windows that are part of Keil MDK and CMSIS-RTOS and a discussion of implementation details.

Thursday – 31st of October

Understanding the compilation process is crucial to generating the tightest code from your source code. Compiler technology has not yet run it course, and new cutting-edge optimizations have made enormous savings in execution and code size. This talk surveys a few of my favorite optimizations: some are old but highly effective, others are virtually unknown outside the close community of compiler developers. All of them, in my opinion, are fascinating.

The mbed online environment (SDK,  online tools, active community of developers, and a large selection of reusable code) has been widely adopted by developers as the rapid prototyping environment of choice for ARM-powered microcontrollers. These tools combined with mbed-enabled hardware are great for prototyping designs, but what about taking those next steps to production? This session presents options for starting with mbed as a prototyping environment and moving to full production with the use of Freescale development hardware, the open-source mbed SDK and HDK, and the rich ARM ecosystem of hardware and software tools.

You can make your C code better uickly, cheaply, and easily. Simple techniques can yield surprising improvements in system performance, code size, and power consumption. This session looks at how software applications can make most efficient use of the underlying architecture to deliver significant improvements in performance, code size, and power consumption. All you need is a little inside knowledge about the ARM architecture. You will learn tricks that you can use the day you get back to your office.

ARM processors are increasingly used in automotive applications such as In-Vehicle Infotainment (IVI), Advanced Driver Assistance Systems (ADAS), powertrain, chassis and body control. Moreover, there are emerging opportunities in Vehicle-to-Vehicle and Vehicle-to-Infrastructure (V2V, V2I) applications which further extend the scope and sophistication of computation systems in vehicles of the future.  These developments are driving the next generation of automobile electronics and ARM is enabling use of its technology throughout the automotive industry.  This presentation will introduce the technology behind some of these applications in more detail and describe where and how ARM processors are used in automotive electronics and associated infrastructure applications. Today’s automotive designs are challenged by the cost and complexity of so much advanced hardware and software.  However, ARM technology will deliver solutions to these challenges, such as processors capable of enabling.

In the embedded developer space, we are hearing more about open-source low-cost development platforms such as mbed, Arduino, Raspberry Pi, and BeagleBoard that provide powerful enablers to quickly develop proof-of-concepts demos. As these products move from proof of concept to product development, continued use of open source has obligations. These obligations and risks apply to the developer and the end-users.

This year’s topics are very much a continuation of last year’s, with sessions dealing with ARM servers, the Internet of things, software and power optimization, multicore handling, etc…

If you would like to attend ARM TechCon 2013, you can register online. An alternative is to pay on-site (Regular), but it will cost you, or your company.

  Super Early
Ends August 2
Early Bird
Ends September 6
Advanced
Ends October 25
Regular
All Access Pass $799
$999 $1,199 $1,399
2-Day Pass $699
$799 $899 $999
1-Day Pass $399
$499 $599 $799
Expo Pass $0 $0 $0 $0

The best discount ends tomorrow (2nd of August 2013). Professional working for academia or/and the government can get discount by contacting Linda Kuehn at [email protected].

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter