long ago: bs in cs with math minor and a german minor from allegheny college, pa (near erie). have...

11

Upload: shannon-mitchell

Post on 03-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Long ago: BS in CS with Math minor and a German minor from Allegheny College, PA (near Erie).

Have been working for Rome Research Corp as a programmer/system analyst for 24 years

Unix/Linux user since early 1990’s, with no sys-admin experience or kernel hacking.

Fortran and C programming with some VB thrown in, and then Java.

Plan A: use the ARM 7 or ARM9 and a motion sensor, to control a usb webcam, sending photos to a web server.

Plan A fizzled out after 40-50 hours of not being able to get 3 different web cams to work.

Plan B: devise a device similar to the thermostat project, but the Arm has no parallel port. It morphed into seven-segment display with pushbuttons and toggle switches.

After melting 1 ARM9 and one 7-seg, I scaled back to prevent further injuries.

Acquire a system to embed upon – this was done by asking people at work. If none was found, I would use the ARM7.

Read 100 manuals on how to configure, boot, use the ARM9 (ok, that’s an exaggeration, but it was at least 100 pages of pdf files)

With no parallel port, I decided to use the DIO and LCD headers are directly readable/writable

My Co-workers like to make gadgets with wires.

The ARM9 has a bootable flash Debian system. To embed a different kernel , I used an SD card. From the EmbeddedArm.com site, I downloaded an embeddable Debian tarball.

The SD card was fdisk-d and partitioned. The unzipped tarball SD image was

written to the SD card using dd if=512mbsd-debian-sarge.dd

of=sda Jumper 1 was set, and the ARM9 booted

from the card upon restart

Wrote C code to cycle through the segments of the 7-seg display in a figure 8 pattern.

Wrote C code to read switches and buttons, but due to component melting, those devices will not be used.

Wrote C code, using the timer code from Jitter.c to observe results of 7-seg display with cpu dragging.

ARM9 became unbootable upon smoking at the power source◦ With the 7-seg connected to the LCD pins and

the switches/button connected to the DIO pins, something went wrong..

◦ Either a ground wire came loose or an unused connection wire touched something and caused a short

7-seg display melted◦ Totally wrong connector

Parport driver and thermostat program: The driver needed some changes to allow it

to register and unregister consistently. But still doesn’t work. Changed trgdriver.c to write to parport

without the driver. That works. Still trying to get the driver to work.

Download “vanilla” kernel 2.6.23 from kernel.org.

Download rtai-2.6.2.tar.gz from rtai.org Unpack kernel source, make menuconfig,

Apply patch from rtai/base/arch/i386/patches/linux-hal-…patch

Build the patched kernel, make, make modules_install, make install.

Boot new kernel , make and make install RTAI. So far, so good.

No Adeos present. Modules won’t insmod. Backing up to the version that the book

uses.

The high priority task behaves the way I would expect a real time task to behave.

When I find a kernel and rtai/adeos that works, I will compare the timing results.

Also, port the RTAI kernel to the ARM9 device.

Find a way to get the parport driver to work.