Software

From Sharpfin
Revision as of 00:41, 22 November 2006 by Philipp (talk | contribs) (→‎GPIO)
Jump to navigation Jump to search

This page only discusses the non-proprietary software running on the Barracuda module. We do *not* discuss or reverse engineer the 'Reciva Radio Application'.

GPL Firmware

The reciva radio uses a distribution of Linux for the kernel / core, which is available from The Reciva Server. Interestingly, there are several different releases that contain identically marked (and sized) tarfiles !

Several versions are available, and are summarised in the following table:

GPLVersions.png

Bootloader

The good bootloader, found on the Riscstation is the ABLE Bootloader, it is possible that this is the loader which is used on the radio module.

Bootloader Information Resources

Operating system and device drivers

Linux 2.4.26 is running on the Samsung CPU. Sourcecode for drivers for the following devices is acknowledge to be available :

  • USB Host device
  • PCM audio output
  • UART
  • 'BAST' real time clock
  • I2C interface (what's on the bus?)
  • IRDA driver for 'NSC PC87108/PC87338' (is this onboard?)
  • LCD (tm13264cbcg / mg1203d / ...)

There is no network interface available onboard, a USB network adapter is used.

It seems that Reciva used the 'bast' ARM architecture as a base for their own development.

"Bast is a modern ARM 920 board with a 266MHz Samsung processor. It has integrated IDE, USB, Serial, Parallel,   
audio, video, flash and two ethernet ports. This system has a good bootloader which is also found on the CATS 
and Riscstation systems."

System libraries + utilities

The following libraries and applications will be needed at least for implementing radio software:

  • C-library (glibc/uclibc?)
  • Flash write/erase tools: mtd-utils
  • Shell + basic unix tools (busybox!)
  • codec libraries (libmad, libogg, libvorbis, libflac, etc)
  • Support for WLAN and security: wireless tools and wpa_supplicant
  • networking libraries for HTTP, RTP, RTSP, MMS, etc
  • Webserver (boa?)
  • Preferably a scripting language for rapid development and CGI scripts. Lua, perl, ruby ?

'Radio' application

On top of all this, the 'radio application' will be running. This application might consist of various processes, daemons, CGI-scripts, etc.

The main functions will be

  • Handling of the user interface: LCD, buttons and led's
  • Configuration of the device using a web server
  • Network streaming + audio decoding. VLC for a quick start ?
  • ...

GPIO

The software source refers to the various GPIO signals:

INTERFACESOURCEFILEFUNCTION
GPA0
GPA1
GPA2
GPA3
GPA4
GPA5
GPA6
GPA7
GPA8
GPA9
GPA10
GPA11
GPA12
GPA13
GPA14
GPA15
GPA16
GPA17
GPA18
GPA19
GPA20
GPA21
GPA22
GPB0
GPB1
GPB2
GPB3
GPB4
GPB5
GPB6
GPB7
GPB8
GPB9
GPB10
GPB11
GPC0
GPC1 reciva_audio_mute.c Mute Audio (option2)
GPC2
GPC3
GPC4
GPC5
GPC6
GPC7
GPC8
GPC9
GPC10
GPC11
GPC12
GPC13
GPC14
GPC15
GPD0
GPD1
GPD2
GPD3
GPD4
GPD5
GPD6
GPD7
GPD8
GPD9
GPD10
GPD11
GPD12
GPD13
GPD14
GPD15
GPE0
GPE1
GPE2
GPE3
GPE4
GPE5
GPE6
GPE7
GPE8
GPE9
GPE10
GPE11
GPE12
GPE13
GPE14
GPE15
GPF0
GPF1
GPF2
GPF3
GPF4
GPF5
GPF6
GPF7
GPG0
GPG1
GPG2
GPG3 reciva_audio_mute.c Mute Audio (option1)
GPG4
GPG5
GPG6
GPG7
GPG8
GPG9
GPG10
GPG11
GPG12
GPG13
GPG14
GPG15
GPH0
GPH1
GPH2
GPH3
GPH4
GPH5
GPH6
GPH7
GPH8
GPH9
GPH10

Got to reciva_backlight_appb.c