Exploring Digital Sonics with USB Hardware
Instructor:
Allan Cruse
contact: cruse@usfca.edu
   
     
Synopsis:
This website documents our development of some classroom materials
intended
to support a future course for advanced students in
Computer Science
which will
investigate hardware-level programming of
Universal Serial Bus Host Controllers
such as are commonly
found in today's personal computers in order to record and
playback
sounds using some inexpensive USB Audio Class peripheral
devices.
Familiarity with the Linux operating system and the GNU development tools,
and
with the x86-CPU architecture and instruction-set, will be assumed
here.
         
This page is currently under construction
Resources
Systems Software
- Utility program: mmake.cpp
(a tool for compiling our own Linux 2.6 kernel modules)
- Kernel module: ohci.c
a driver supporting user-mode OHCI programming experiments
- Kernel module: uhci.c
a driver supporting user-mode UHCI programming experiments
- Utility program: dynaview.cpp
offers a 'dynamic' view of volatile text in a pseudo-file
- Kernel module: dram.c
supports read-only access to system memory as a device file
- Debugging tool: fileview.cpp
lets us view the contents of any file (including device-files)
- Debugging tool: liveview.cpp
offers a 'dynamic' view of a volatile special file's contents
- Utility program: waveinfo.cpp
shows a .wav-file's parameters for formats our devices use
Readings
Handouts
Demo program: ohcitone.cpp
illustrates programming of OHCI isochronous transfers to sound a tone
-- revised on 10/31/2011
Demo program: uhcitone.cpp
illustrates programming of UHCI isochronous transfers to sound a tone
Demo program: headmike.cpp
records 10-second audio with H360 Headset's microphone and OHCI
Demo program: makeA440.cpp
creates a wavefile (named 'a440.wav') that will sound a 440-HZ tone
Demo wavefile: a440.wav
plays a pure sinewave tone having a frequency of 440 cycles-per-second
Announcements
Last updated on 12/17/2011