+ All Categories
Home > Documents > PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

Date post: 15-Jan-2016
Category:
Upload: gerardo-daby
View: 221 times
Download: 0 times
Share this document with a friend
Popular Tags:
22
PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009
Transcript
Page 1: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

PIKA Technologies Inc.PADS for the PIKA WARP Appliance

March 2009

Page 2: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

PIKA WARP Customization

• PIKA WARP is a customizable platform• It can run stock Asterisk but it does not have to

• Why customize?• Put my custom application on the appliance

• Make a modification to the stock Asterisk

• Ideal for applications like alert notification systems, IVRs and PBXs

Page 3: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

What does the appliance offer to developers?

• Hardware – a full computer • Embedded processor

• Solid state memory

• USB, NIC, Audio ports

• Up to 9 analog ports

• Software – many default packages• Full Pika suite of voice processing like tone detection and generation,

play/record, VoIP and conferencing

• Pre-loaded with operating system, drivers and tools

• Initial SSH access and Asterisk

• Database, web server, web language, common tools

• With the ability to add any software package

Page 4: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

Pre-loaded Software

• Bootloader (uBoot 1.3)• 2.6.26 linux kernel (stripped down)• Pika’s All-on-Host and Grandprix drivers• Asterisk 1.4.21• AsteriskGUI• Busybox 1.8.2 (binaries linux tools)• SQlite3 database • Httpd webserver• PHP5 with support for SQLite, XML, PDO, etc.• NTP, DHCP (client), TFTP (server and client), VLAN, DNS• Dropbear (for ssh access)

Page 5: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

What API will be available?

• To access telephony hardware outside of Asterisk …

• High level Grandprix API • the same used on standard PCs!!

• Low level AoH API will also be available• Many sample of this on the web• Some additional APIs will be added to our SDK.

• For example, to control the audio in/out ports and the LCD

• (Note: In Asterisk, audio ports are referenced in the dialplan and the LCD is integrated in channel driver but can be changed)

Page 6: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

/root

/kernel

Custom User Application

Linux Kernel

PIKA Kernel Modules

Busybox

/persistent

/persistent1

/persistent2

/u-boot

Your Application

Grandprix

Warploader

HMP

LCD libraryConfiguration

files

Logs

NTP

Database

Database server

Dropbear

Skeleton

Page 7: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

/root

/kernel

Asterisk Application

Linux Kernel PIKA Kernel Modules

Busybox

/persistent

/persistent1

/persistent2

/u-boot

Asterisk Application

Grandprix

Warploader

HMP

LCD library

Configuration

files

Logs

NTP

Dropbear

Skeleton

Channel PIKA (glue)

Page 8: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

Pika’s Development Kit

• Pika Application Development Suite (PADS)

• Software package – “framework”• Full development kit• The kit will provide a toolchain - compiler (for our processor), linker

and debugger• Installed on independent Linux machine (distribution independent)

• Host machine is used to bypass the resource limitation of the embedded device

• Attached through Ethernet• Allows all software on the appliance to be built (kernel and user)• Creates a PowerPC virtual environment• Retrieved through svn• Opens embedded development to Linux developers

Page 9: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

PADS

• Package – this is where makefiles are included to describe where to get the code and how to compile it

• DL – this is where the source code is automatically downloaded• Build_warp – this is where the resulting power pc binaries reside

after being compiled. (after ‘make’)• Images – this contains compressed binaries (after ‘make image’)• Bin – this folder contains utilities such as a Flash Burning tool

Page 10: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

PADS diagram

Page 11: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

Steps to Building – the 3 ‘makes’

1) make menuconfig

2) make

3) make image

Page 12: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

Step #1 – select packages

• ‘make menuconfig’ allows you to select packages, tools and programs to include on the appliance through a package menu

• Examples include Asterisk, webserver, etc.

Page 13: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

Step #2 – compiling

• ‘make’ cross-compiles all the selected packages • The PADS framework defines where to retrieve the

code and how to build the code• The result is Power PC binaries that can be directly

run on the appliance

Page 14: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

Background - Memory

• Four memory types• Small Flash (NOR) – 4 Mb

• Contains bootloader• Quick boot-up• Can not be written by developers

• Internal Flash (NAND) – 256 Mb• Compressed (read-only)

• contains the kernel, tools and applications like asterisk and database• At runtime this image is uncompressed and run from RAM• Changes to this partition must be made through PADS (otherwise will be lost on reboot)

• Uncompressed (persistent read-write) • Initial creation through PADS• Contains configuration files, play prompts, etc.• Memory that acts like a hard disk • Changes to this partition are saved even after reboot

• SD card – up to 4 Gb• Read-write • Expands uncompressed persistent memory on the internal flash• Good for heavy write tasks like voicemails, logs and backups

• RAM – 256 Mb• Run-time memory

Page 15: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

Background – Memory (cont’d)

Page 16: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

Step #3 – Creating and burning images

• ‘make image’ creates three image types:• Core Kernel (filename -> cuImage.warp)• Applications (filename -> uRamdisk)• Persistent (filename -> image.jffs2)• Persistent1 (filename-> image1.jffs2)• Persistent2 (filename-> image2.jffs2)

• Once happy with the images created by PADS they can be burnt to the flash on the appliance – this commits it to memory

• An image file can be burnt to multiple appliances

• Images can be burnt to appliance • through AsteriskGUI • command line tool (Warploader)

• Copy the file locally to the appliance (scp,wget or tftp) and then …• warploader –p kernel cuImage.warp• warploader –p root uRamdisk• warploader –p persistent image.jffs2• warploader –p persistent1 image1.jffs2• warploader –p persistent2 image2.jffs2

• USB flash “hook”

Page 17: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

Development approach

• Burn new images when necessary• Run locally

• Drop files on the persistent file system• Web pages• Binary libraries created using the Pika development framework or

from the web

• Good for when only making a small number of changes

Page 18: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

Alternate approach – NFS

• Optional –useful for large development projects• For development

• Quick, volatile• Remotely mounted file system (in build_warp folder)• Use NFS server to mirror appliance memory on development PC• Changes made on remote machine but run by the processor on the appliance• Run without flashing to reduce development time• No code changes on the appliance• Attached through Ethernet (initially setup by serial cable)

Page 19: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

More Details on NFS

Page 20: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

Adding packages

• If a package is not included in the list …• Add a new folder in the ‘package’ directory

• In this directory add:• Config.in – to make the new package appear in the package menu• Yourapp.mk – a makefile to tell PADS how to get and build your package

• Some packages are available in pikawarp.org

Page 21: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

Programming Considerations

• Lots of resources for an embedded device!!

• Be conscious of memory (256Mb total)• Mallocs may fail

• Be careful where logs go, etc.

• Memory chips have life span

• Be conscious of processing (1200Mips total)• Speed optimizations are important

• Big endian (not little endian)• Careful when communicating with other machine

• C++ and threading is fine

Page 22: PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.

Thank youfor your time.


Recommended