Sunday, August 1, 2010

driver design

1.layer abstraction
2.unified events and serialization
3.reference counting based ... serialization with no context information
4.discontinuities in the layers

home data wiring

usually at apartments uses cat3 wires with 2 data wire pairs, maximum data rate is 10mbps
apartments use serial wiring , if any point is currently unused it will be in the shorted stage
even cable wiring inside the home is serial wiring

wifi routers can act as clients , ie we can chain wifi routers
netgear router needs fw upgrade

protocol and hardware comparison

driver handles the events from system and the hardware, rest everything is data
when a protocol is added to this , it needs to interpret events originating at the remote system as well, so data in the previous case gets categorised into protocol events and data

hardware development

xilinx board
~75k
opencore libraries -- opencore.org
verilog code
opencore lib for pc interface --- pci

electrical connections

230v

2 Amps sockets
5 Amps sockets
16 Amps sockets

circuit breakers

inverters
power conditioners
KVA ratings %load

thick copper more conductivity than thin copper

memory barriers

smp systems have multiple processors
each processor has a cache
a cache can have multiple banks (odd and even)

a cache is a hash table
4 bit table with 2 entries -- total 16 + 16 entires -- both code and data lines
bit 8-11 are used a lines rest 8 bits form the cache line

on a dual processor system 2 threads are executing each one one proc,both accessing the flag
if one proc writes to the flag, behind the scene the value needs to be taken from the cache,moved
through the cache interconnect to the memory and again the interconnect need to update the cache of the second processor

Android - display

Android has a 2D and 3D software renderer

2D sw renderer the skia library

3D sw renderer is called pixel flinger

in addition hw support can be provided for 3D rendering

libhgl.so is the hardware renderer support .so

overlay engine is used for video acceleration

choice of 3D sw and hw renderer can be made by an activity using setEgl.... command

skia is used by default for menus

GL and canvas are different entities

both are bound to an activity using instance.. analogy ... like socket, process and tcp driver(==graphics driver)

an activity has a surface by default in view root,all menus are drawn on it, surfaceview and GLSurface view creates additional associated surfaces with the activity.Each surface is associated
with a graphics context ... context is either canvas by reference or EGL context by reference

wince

debugging
1.Needs two ethernet interfaces to properly use debugging over ethernet
2.KITL

Android - components

booting
1.Kernel loads into ram, starts initialization
2.searches init in initrd,
3.initrd mounts ramdisk or RFS and calls init
4.init searches for system.img , mounts

kernel debug

to redirect the console over a serial cable
1.enable settings in kernel hacking
2.dont forget to select serial option
3.additional settings in kernel arguments

to enable kgdb based debugging
1.again repeat the same above
2.put additional settings in kernel arguments
3.on the remote side start gdb with vmlinuz as arg
4.specify the source path
5.system.map is relevent only for target system , if the kernel crashes the target refers to
symbols in system.map its not relevent on kgdb based debugging
6.additional steps are required for module debugging

OFDM

how the data rides on a wave

1.A stream of data is organized into manageble chunks
2.Perception changed from stream of bytes to stream of bits
3.Bits are grouped in symbols
4.~1200 symbols are passed through a serial to parallel converter
5.each parallel line is connected to an IFFT line of 2048 lines
6.output is a matrix representation of the input in the frequency domain
7.this is passed to D/A converter and raised by a dash? frequency
8.the outgoing wave contains the data

exactly the opposite happens on the receiving side

emdedded development

Requirements
1.hardware
devkit8000 omap353x based development board
approx price 17k IR
2.software:
kernel,toolchain binaries got with the cd
download android eclair from embest git repository
download embest kernel patch for devkit8k from web
No charge

Thats all

way to go:
1.prepare the binaries
2.prepare the RFS
3.partition the mmc
4.put the bineries into respective partitions
5.change the mmc kenel arguments
6.boot from mmc