Sunday, August 16, 2009

ip camera

camera->video 3-10frames/s: 3-10mbps-->dsp encode -> packet formation: ENCAP:
|
rtsp/rtcp/rtp-udp: RAM
|
mux--mac-phy-ip-host stack
| |
mix--audio---audio encoder--------------------------------- |
control:

obj--sensor--scan 760*640-->camera--> buf[]-----compress--->MPEG: H264--ip pkt-
nicrophone---> A-D scaling--audio buf[]--| |
|
arch: monitor
2. platform

arm: video V4l2 DSP processor-->codec--dsp----H264
linux: converter, uart, rtsp, rtp, Mgr, http server, transport

3. bootloader: grub: flash mem ()---> RAM mapping
sp---> locals
return addr
args
stack
heap
text
data: bss
glibs: usr malloc/alloc whihc uses brk(2) and mmap system calls.
brk changes sizeof heap. mmap() used when extremly large malloc arena:
kernel: slab allocator for embedded
thread and signal async: need mask all and enable in only one thread: signal handler thread()
access hw mmap register: volatile int * pp;
memory barrier: the compiler to make sure al stores that were coded before this point
are seen before any of stores coded after this point.
write back to memory of al register.
#barrier asm volatile (""...."memory")

cpu can also change inastructor order.
signal handler intr any context: unlike threads. Locks can not provide a solution as
signal hnder can not BLOCK.
Any use of lock or accessing a shared resources static, var.. in signal handler
IS BAD.

#ksnoops
#printk--floating point fpu: not in libc, can not called from intr context.
log buffer, ring static buffer. LOG_BUF_SHIFT 2**14 + 16Kb
objdump(nm)--vmlinux
dmesg -s 12800
#map am code to xxx.c trick
insert "asm("#1"); into xxx.c
make fs/dacche.c

#CONFIG_DEBUG_INFO

No comments:

Post a Comment