Posted by Cliff Brake on 2009-01-28 |
The Socketcan test applications and utilities are now available in OpenEmbedded. The socketcan kernel modules already exist in OE. To build and deploy:
get the latest version of OE metadata
bitbake socketcan-utils-test
scp <oedir>/build/angstrom-2008.1/tmp/deploy/glibc/ipk/<machine>/socketcan-utils-test_0.0+svnr917-r0_armv5te.ipk root@<target IP address>:
And then on the target system:
opkg install socketcan-utils-test_0.0+svnr917-r0_armv5te.ipk
opkg files socketcan-utils-test
/usr/bin/tst_bcm_rx_sendto
/usr/bin/tst_bcm_tx_sendto
/usr/bin/canlogserver
/usr/bin/tst_raw_filter
/usr/bin/tst_raw
/usr/bin/isotpsniffer
/usr/bin/isotpsend
/usr/bin/tst_bcm_throttle
/usr/bin/tst_packet
/usr/bin/vcan
/usr/bin/isotprecv
/usr/bin/cansniffer
/usr/bin/tst_bcm_tx_read
/usr/bin/tst_err
/usr/bin/log2asc
/usr/bin/tst_bcm_single
/usr/bin/tst_filter_master
/usr/bin/canplayer
/usr/bin/cangen
/usr/bin/slcanpty
/usr/bin/log2long
/usr/bin/tst_bcm_rtr
/usr/bin/asc2log
/usr/bin/slcan_attach
/usr/bin/tst_bcm_filter
/usr/bin/cansend
/usr/bin/canecho
/usr/bin/tst_filter_server
/usr/bin/tst_bcm_cycle
/usr/bin/tst_bcm_dump
/usr/bin/isotpdump
/usr/bin/candump
/usr/bin/tst_raw_sendto
/usr/bin/isotptun
/usr/bin/tst_bcm_server
/usr/bin/tst_proc
/usr/bin/canbusload
An impressive array of utilities!
Posted by Cliff Brake on 2009-01-26 |
I just added a recipe to OpenEmbedded to build the Socketcan kernel modules from the socketcan SVN. So if you are using the latest OpenEmbedded metadata, you can:
bitbake socketcan-modules
scp <oedir>/build/angstrom-2008.1/tmp/deploy/glibc/ipk/<machine>/socketcan-modules_0.0+svnr917-r0_cm-x270.ipk root@<target IP address>:
and then on the target system:
opkg install socketcan-modules_0.0+svnr917-r0_cm-x270.ipk
opkg files socketcan-modules
Package socketcan-modules (0.0+svnr917-r0) is installed on root and has the following files:
/lib/modules/2.6.27/extra/net/can/can-bcm.ko
/lib/modules/2.6.27/extra/drivers/net/can/sja1000/ems_pci.ko
/lib/modules/2.6.27/extra/net/can/can-raw.ko
/lib/modules/2.6.27/extra/drivers/net/can/sja1000/sja1000.ko
/lib/modules/2.6.27/extra/drivers/net/can/softing/softing.ko
/lib/modules/2.6.27/extra/drivers/net/can/sja1000/ems_pcmcia.ko
/lib/modules/2.6.27/extra/drivers/net/can/sja1000/sja1000_platform.ko
/lib/modules/2.6.27/extra/drivers/net/can/can-dev.ko
/lib/modules/2.6.27/extra/drivers/net/can/softing/softing_cs.ko
/lib/modules/2.6.27/extra/drivers/net/can/sja1000/pipcan.ko
/lib/modules/2.6.27/extra/drivers/net/can/mcp251x.ko
/lib/modules/2.6.27/extra/net/can/can.ko
/lib/modules/2.6.27/extra/net/can/can-isotp.ko
/lib/modules/2.6.27/extra/drivers/net/can/vcan.ko
Then to use [...]
Posted by Cliff Brake on 2009-01-22 |
As we look at new projects, both the Intel Atom and the TI OMAP3 processors generate considerable interest. As we have already shown, the OMAP3 does offer a considerable performance improvement over earlier generations of ARM CPUs. The following video I found on YouTube shows a similar comparison of a OMAP3 and Atom systems rendering [...]
Posted by Cliff Brake on 2009-01-21 |
Several of my customers have built applications using the GTK+ tookit. While GTK+ works fairly well for what we have done, I have been wondering how the performance compares on the new Omap3 processors from TI. As we are evaluating the OMAP3 for several projects, I did a simple comparison with an existing application. Below [...]
Posted by Cliff Brake on 2009-01-17 |
During system verification for a customer, we noticed occasional failures when writing to a SD card using the Marvell PXA270 MMC/SD controller. The failure is a 4KB block of data is shifted on byte, where the first byte is duplicated and the last byte is dropped. The test app that found this problem is available [...]
Posted by Cliff Brake on 2009-01-15 |
UPDATE: 2009-03-17 — It appears that hard drive issues I encountered are likely due to the HW RAID formatting on the drive I tried. I just tried a brand new hard drive, and Ubuntu 8.10 installed flawlessly, and everything works.
I’m not sure why computer upgrades are always such an epic struggle for me, but here [...]
Posted by Cliff Brake on 2009-01-13 |
After using Joomla for several years, I’m switching my web site to wordpress. As I mostly use my site for writing technical articles, it makes sense to use something that works very well for just that. So far, I’m finding Wordpress very polished, and it has all the functionality I need built-in, so I don’t [...]
Posted by Cliff Brake on 2009-01-10 |
With Linux, some of the things that seem like they should be easy are not — at least at first glance. For example, how do you read an interrupt driven GPIO input in a Linux application? With simpler microcontroller systems, this is straightforward, but with a system like Linux, you have to navigate through several [...]
Posted by Cliff Brake on |
Recently I’ve been following the Vala programming language and using it some in embedded systems. Vala is a new programming language that aims to bring modern programming features to GNOME developers without imposing additional runtime requirements and without using a different ABI compared to applications and libraries written in C. A few notes and observations [...]
Posted by Cliff Brake on |
I recently added Mono 2.2 RC1 to OpenEmbedded. The last usable version of Mono in Openembedded was 1.2.6, so this is a big step up. Lots of interesting things have been happening since then (like Full Static Compilation) that continue to make Mono interesting for embedded. There is still plenty to do yet such as [...]
Posted by Cliff Brake on 2009-01-09 |
There are many options when selecting a VoIP provider to terminate your Asterisk PBX. One of the most important factors in this selection is the quality of the internet connection between your PBX and the VoIP provider. The route between you and your VoIP provider is one of the most important considerations when selecting a [...]
Posted by Cliff Brake on |
In our quest to implement an Asterisk PBX in our office, we are evaluating several VOIP (Voice Over IP) providers. VOIP provides several benefits over traditional phone lines including:
low cost (typically around $0.02 per minute)
available in pre-paid plans
can support concurrent concurrent calls on the same number
However, implementing VOIP successfully is not trivial. You must have [...]
Posted by Cliff Brake on |
Over the past month, we have been working on implementing Asterisk in our office. Asterisk (http://www.asterisk.org/ ) is a complete software PBX (Private Branch Exchange) that runs on top of Linux. Asterisk supports a number of features commonly found in a PBX including voicemail, hosted conferencing, call queuing, and many other features. Having a real [...]
Posted by Cliff Brake on |
The Python file object read() function acts a little differently than the standard read() found in C. This article describes some of these differences and how to optimize reads for general continuous data streams such as reading data from a collection device through a pipe.
Python read()
The Python read function seems to be optimized for reading [...]
Posted by Cliff Brake on |
Interfacing with a RS232 serial device is a common task when using Python in embedded applications. The easiest way to get python talking to serial ports is use the pyserial project found at http://pyserial.sourceforge.net/. This module works on most platforms and is straightforward to use (see examples on project web site). However, getting the read [...]