SlideShare a Scribd company logo
1 of 20
TI DaVinci : Embedded Software
Development and Image Processing
Introducing DaVinci
Unboxed
Contents
• Introduction to OMAP and DaVinci –
Heterogeneous Multicore GPP + DSP
• Linux OS and Kernel DSP/BIOS
• Standards
• Frameworks
• Practical
A GPP or General Purpose Processor is capable of doing and handling
I/O running os but is lot slower on video and imaging task where GPU
wins because of MAC units but GPU fails in general computing tasks. So
a mixture of both is norm of todays computing world
A problem comes up when powering such a hybrid Davinci SOC (System
on Chip) which includes both a GPP(General Purpose Processor) and a
DSP (Digital Signal Processor). The OS that must run this must schedule
tasks properly and have proper IPC (inter processor communication).
For the DSP, the task scheduler is a light weight scheduler called the
DSP/BIOS. For GPP we consider the world of Linux.
Heterogenous Multicore – Power of GPP + GPU
CPU: ARM926EJ 270Mhz & TMS320C64x+™DSP Core at 600 MHz
Memory APU : 16K I-Cache, 8K D-Cache, 32K TCM RAM, 8K Boot ROM
Memory GPU : 32K L1 I-Cache, 32K L1 D-Cache, 128K L2 Cache, 64K
Boot ROM
JPEG Video Coprocessors – Video and Imaging Coprocessor
ARCHITECTURE
Video Processing Sub System (VPSS) is
comprised of two blocks: Front End
(VPFE) & Back End (VPBE).
VPFE Consists of CCD Controller (CCDC),
Statistics Engine (H3A), Previewer,
Resizer whereas
VPBE consists of On-screen Display
(OSD) and Video Encoding (VENC).
When previewing the image the image
goes from camera to VPFE, then to DDR,
SCR(Switched Central Resource) and then
back to output. In case of image
processing the image from DDR ram goes
to EDMA then to cache and then to
processor where it is processing and then
it goes back to the VPFE for display.
VPSS : VPFE & VPBE
Software Layer
APIs
It has xDAIS (eXpress DSP Algo
Interoperability Std): An
eXpressDSP-compliant algorithm is a
module that implements the abstract
interface IALG. The IALG API takes
the memory management function
away from the algorithm and places
it in the hosting framework. Thus, an
interaction occurs between the
algorithm and the framework. This
interaction allows the client
application to allocate memory for
the algorithm and share memory
between algorithms. It also allows
the memory to be moved around
while an algorithm is operating
xDM (eXpress DSP Digital
Media): Set of APIs for multimedia
compressing algo, Resource allocation,
initialization and start APIs. Runtime
process & control APIs. Stop algorithm
and resource de-allocation APIs.
Embedded Linux Device
• 4 Elements - Tool chain; boot loader; kernel; user space
• Tool Chain:
• In software, a toolchain is the set of programming tools that
are used to create a product (typically another computer
program or system of programs).
● A tool chain consists of at least binutils: GNU
assembler, linker, etc.
• gcc: GNU C compiler
● C library (libc): the interface to the operating system
● gdb: debugger
• Types: Native (runs for the target, target really fast) and Cross
Compiler tool chain (can run anywhere on PC)
• Compiler mostly gcc , different for vendor like arm-gcc or
arm-angstom-linux-gcc etc .
• select toolchain if it supports your needs ARM A8 or ARMv4
or higher, FP support, community support eg- Codesourcery
g++, angstom, buildroot, Montavista & most imp it must have
lib support which in form of .so or src
• Goodies like IDE, Memory analyse tool, debugger etc
Elements of a Linux System : Toolchain
• Bootloader is a piece of code that runs before any operating system is
running.
• Bootloader are used to boot other operating systems, usually each
operating system has a set of bootloaders specific for it.
• It initializes the hardware, Sets up SDRAM controller
Map memory, Set processor mode and features
• Load a kernel
• Load images via Ethernet, serial, SD card
• Erase and program flash memory
• Nowadays a pre-bootloader is boots the system from flash and
transfers control to secondary bootlloader in NAND as this is edited
much more often.
• Most popular is the U-Boot. PC used bootmbr, linux uses grub/lilo
• Uboot has lot of options which can be set like booting from SD, NFS,
NAND. It erases NAND, set ipaddress for NFS, can give address to load
kernel
Elements of Linux System : Bootloader
• Why MontaVista? http://www.mvista.com/
• Steps:
• Make SW7 both up to boot from nand (left up right
down to boot from SD Card)
• Connect LAN, Audio, Composite Video, Power, UART
and set it up
• From minicom using settings bps : 115200, dbits – 8
connect to serial port
• You would see EVM# promt and davinci interface on
screen
Starting the Device
• Install all the softwares given with the OEM
CD 1: MontaVista Linux Pro System Tools
CD 2: MontaVista Linux Pro Target File System
CD 3: TI DVSDK Software
• INSTALLING THE TARGET LINUX SOFTWARE:
• SETTING UP THE NFS SERVER FILE SYSTEM:
• BUILDING THE LINUX RTOS
• REBUILDING THE DVEVM SOFTWARE FOR THE TARGET:
• BOOTING THE NEW LINUX KERNEL: set env var
Setting of Project
• We have to install these softwares on host Linux pc in
this order
• ❏ mvl_4_0_1_demo_sys_setuplinux.bin
• ❏ mvl_4_0_1_demo_target_setuplinux.bin
• ❏ mvl_4_0_1_demo_lsp_setuplinux_#_#_#_#.bin
• ❏ dvsdk_setuplinux_#_#_#_#.bin
• ❏ xdc_setuplinux_#_#_#_#.bin
Installing all the Softwares
• Create a shared folder ~workdir/filesys
• Copy this folder into it
/opt/mv_pro_4.0.1/montavista/pro/devkit/arm/v5t_le/t
arget/
• In /etc/exports file add the filesys folder
/home/<useracct>/workdir/filesys
*(rw,no_root_squash,no_all_squash,sync)
• Restart nfs service and add the folder to sys path
SETTING UP THE NFS SERVER FILE SYSTEM
• You need mvl toolchain present in lsp/ti-davinci
• Go to ti-davinci/linux-2.6.10_mvl401
• make ARCH=arm CROSS_COMPILE=arm_v5t_le-
davinci_dm355_evm_defconfig
• To modify any args use make menuconfig and then again
build it
• BUILDING THE LINUX RTOS
• Now write your own program
• Cross compile arm_v5t_le-gcc *.c –o <obj name>
• ./<obj name>
Make your own program
• A simple img zooming app
• Steps:
• arm_v5t_le-gcc img2zoom.c -o ../binaries/img2zoom
• ./img2zoom <args>
Practical – Simple Image Processing
Add sale davinci

More Related Content

What's hot

HP-UX Dynamic Root Disk Boot Disk Cloning Benefits and Use Cases by Dusan Bal...
HP-UX Dynamic Root Disk Boot Disk Cloning Benefits and Use Cases by Dusan Bal...HP-UX Dynamic Root Disk Boot Disk Cloning Benefits and Use Cases by Dusan Bal...
HP-UX Dynamic Root Disk Boot Disk Cloning Benefits and Use Cases by Dusan Bal...Circling Cycle
 
Revisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS SchedulerRevisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS SchedulerYongseok Oh
 
2nd ARM Developer Day - NXP USB Workshop
2nd ARM Developer Day - NXP USB Workshop2nd ARM Developer Day - NXP USB Workshop
2nd ARM Developer Day - NXP USB WorkshopAntonio Mondragon
 
Audio in linux embedded
Audio in linux embeddedAudio in linux embedded
Audio in linux embeddedtrx2001
 
A Reimplementation of NetBSD Based on a Microkernel by Andrew S. Tanenbaum
A Reimplementation of NetBSD Based on a Microkernel by Andrew S. TanenbaumA Reimplementation of NetBSD Based on a Microkernel by Andrew S. Tanenbaum
A Reimplementation of NetBSD Based on a Microkernel by Andrew S. Tanenbaumeurobsdcon
 
Running Applications on the NetBSD Rump Kernel by Justin Cormack
Running Applications on the NetBSD Rump Kernel by Justin Cormack Running Applications on the NetBSD Rump Kernel by Justin Cormack
Running Applications on the NetBSD Rump Kernel by Justin Cormack eurobsdcon
 
Realtime scheduling for virtual machines in SKT
Realtime scheduling for virtual machines in SKTRealtime scheduling for virtual machines in SKT
Realtime scheduling for virtual machines in SKTThe Linux Foundation
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDKKernel TLV
 
Cloud Computing and the Gaming Industry - ProfitBricks Talk
Cloud Computing and the Gaming Industry - ProfitBricks TalkCloud Computing and the Gaming Industry - ProfitBricks Talk
Cloud Computing and the Gaming Industry - ProfitBricks TalkProfitBricks
 
XPDS13: Enabling Fast, Dynamic Network Processing with ClickOS - Joao Martins...
XPDS13: Enabling Fast, Dynamic Network Processing with ClickOS - Joao Martins...XPDS13: Enabling Fast, Dynamic Network Processing with ClickOS - Joao Martins...
XPDS13: Enabling Fast, Dynamic Network Processing with ClickOS - Joao Martins...The Linux Foundation
 
Project ACRN Device Passthrough Introduction
Project ACRN Device Passthrough IntroductionProject ACRN Device Passthrough Introduction
Project ACRN Device Passthrough IntroductionProject ACRN
 
Modeling & design multi-core NUMA simulator
Modeling & design multi-core NUMA simulatorModeling & design multi-core NUMA simulator
Modeling & design multi-core NUMA simulatorAbed Maatalla
 
XPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, Arm
XPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, ArmXPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, Arm
XPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, ArmThe Linux Foundation
 
并行计算与分布式计算的区别
并行计算与分布式计算的区别并行计算与分布式计算的区别
并行计算与分布式计算的区别xiazdong
 

What's hot (20)

HP-UX Dynamic Root Disk Boot Disk Cloning Benefits and Use Cases by Dusan Bal...
HP-UX Dynamic Root Disk Boot Disk Cloning Benefits and Use Cases by Dusan Bal...HP-UX Dynamic Root Disk Boot Disk Cloning Benefits and Use Cases by Dusan Bal...
HP-UX Dynamic Root Disk Boot Disk Cloning Benefits and Use Cases by Dusan Bal...
 
Revisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS SchedulerRevisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS Scheduler
 
2nd ARM Developer Day - NXP USB Workshop
2nd ARM Developer Day - NXP USB Workshop2nd ARM Developer Day - NXP USB Workshop
2nd ARM Developer Day - NXP USB Workshop
 
Audio in linux embedded
Audio in linux embeddedAudio in linux embedded
Audio in linux embedded
 
Sitaram_Chalasani_CV
Sitaram_Chalasani_CVSitaram_Chalasani_CV
Sitaram_Chalasani_CV
 
A Reimplementation of NetBSD Based on a Microkernel by Andrew S. Tanenbaum
A Reimplementation of NetBSD Based on a Microkernel by Andrew S. TanenbaumA Reimplementation of NetBSD Based on a Microkernel by Andrew S. Tanenbaum
A Reimplementation of NetBSD Based on a Microkernel by Andrew S. Tanenbaum
 
Running Applications on the NetBSD Rump Kernel by Justin Cormack
Running Applications on the NetBSD Rump Kernel by Justin Cormack Running Applications on the NetBSD Rump Kernel by Justin Cormack
Running Applications on the NetBSD Rump Kernel by Justin Cormack
 
Realtime scheduling for virtual machines in SKT
Realtime scheduling for virtual machines in SKTRealtime scheduling for virtual machines in SKT
Realtime scheduling for virtual machines in SKT
 
Medusa Project
Medusa ProjectMedusa Project
Medusa Project
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDK
 
Cloud Computing and the Gaming Industry - ProfitBricks Talk
Cloud Computing and the Gaming Industry - ProfitBricks TalkCloud Computing and the Gaming Industry - ProfitBricks Talk
Cloud Computing and the Gaming Industry - ProfitBricks Talk
 
OMAP
OMAPOMAP
OMAP
 
Lecture4
Lecture4Lecture4
Lecture4
 
Bios glossary
Bios glossaryBios glossary
Bios glossary
 
XPDS13: Enabling Fast, Dynamic Network Processing with ClickOS - Joao Martins...
XPDS13: Enabling Fast, Dynamic Network Processing with ClickOS - Joao Martins...XPDS13: Enabling Fast, Dynamic Network Processing with ClickOS - Joao Martins...
XPDS13: Enabling Fast, Dynamic Network Processing with ClickOS - Joao Martins...
 
Project ACRN Device Passthrough Introduction
Project ACRN Device Passthrough IntroductionProject ACRN Device Passthrough Introduction
Project ACRN Device Passthrough Introduction
 
Modeling & design multi-core NUMA simulator
Modeling & design multi-core NUMA simulatorModeling & design multi-core NUMA simulator
Modeling & design multi-core NUMA simulator
 
XPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, Arm
XPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, ArmXPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, Arm
XPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, Arm
 
并行计算与分布式计算的区别
并行计算与分布式计算的区别并行计算与分布式计算的区别
并行计算与分布式计算的区别
 
Ignite ux-quickstart
Ignite ux-quickstartIgnite ux-quickstart
Ignite ux-quickstart
 

Viewers also liked

Agnesian HealthCare Know & Go Showcase: daVinci Surgical System
Agnesian HealthCare Know & Go Showcase: daVinci Surgical SystemAgnesian HealthCare Know & Go Showcase: daVinci Surgical System
Agnesian HealthCare Know & Go Showcase: daVinci Surgical SystemAgnesian HealthCare
 
The Value Of Da Vinci Surgery
The Value Of Da Vinci SurgeryThe Value Of Da Vinci Surgery
The Value Of Da Vinci Surgeryrfagin
 
Lonnie M. Smith - Intuitive Surgical
Lonnie M. Smith - Intuitive SurgicalLonnie M. Smith - Intuitive Surgical
Lonnie M. Smith - Intuitive Surgicalab medica
 
Robotic Surgery(minimally invasive surgery)
Robotic Surgery(minimally invasive surgery)Robotic Surgery(minimally invasive surgery)
Robotic Surgery(minimally invasive surgery)Sgtm Saha
 
Robotics in medicine team3
Robotics in medicine team3Robotics in medicine team3
Robotics in medicine team3e-twinning
 
Presentation on Intuitive Robotics
Presentation on Intuitive RoboticsPresentation on Intuitive Robotics
Presentation on Intuitive RoboticsJoel Samen
 
Open class cctv y domotica
Open class cctv y domoticaOpen class cctv y domotica
Open class cctv y domoticaDomotica daVinci
 
Robotic Surgery - Dr. Meenakshi Sundaram
Robotic Surgery - Dr. Meenakshi SundaramRobotic Surgery - Dr. Meenakshi Sundaram
Robotic Surgery - Dr. Meenakshi SundaramApollo Hospitals
 
Intuitive Surgical Investor presentation q315
Intuitive Surgical Investor presentation q315Intuitive Surgical Investor presentation q315
Intuitive Surgical Investor presentation q315Ilya Friedman, CFA
 
Robotics in surgery by DR.Mahipal reddy
Robotics in surgery  by DR.Mahipal reddyRobotics in surgery  by DR.Mahipal reddy
Robotics in surgery by DR.Mahipal reddymahipal33
 
Robotic surgery presentation
Robotic surgery presentationRobotic surgery presentation
Robotic surgery presentationMayank Kataria
 
Robotic Surgery PPT
Robotic Surgery PPTRobotic Surgery PPT
Robotic Surgery PPTSai Charan
 
Robotics & Artificial Intelligence
Robotics &  Artificial  IntelligenceRobotics &  Artificial  Intelligence
Robotics & Artificial IntelligenceAnthony Caramele
 

Viewers also liked (16)

Agnesian HealthCare Know & Go Showcase: daVinci Surgical System
Agnesian HealthCare Know & Go Showcase: daVinci Surgical SystemAgnesian HealthCare Know & Go Showcase: daVinci Surgical System
Agnesian HealthCare Know & Go Showcase: daVinci Surgical System
 
Robotic surgery
Robotic surgeryRobotic surgery
Robotic surgery
 
The Value Of Da Vinci Surgery
The Value Of Da Vinci SurgeryThe Value Of Da Vinci Surgery
The Value Of Da Vinci Surgery
 
Lonnie M. Smith - Intuitive Surgical
Lonnie M. Smith - Intuitive SurgicalLonnie M. Smith - Intuitive Surgical
Lonnie M. Smith - Intuitive Surgical
 
Intera 2011 davinci
Intera 2011 davinciIntera 2011 davinci
Intera 2011 davinci
 
Robotic Surgery(minimally invasive surgery)
Robotic Surgery(minimally invasive surgery)Robotic Surgery(minimally invasive surgery)
Robotic Surgery(minimally invasive surgery)
 
Robotics in medicine team3
Robotics in medicine team3Robotics in medicine team3
Robotics in medicine team3
 
Robotic surgery
Robotic surgeryRobotic surgery
Robotic surgery
 
Presentation on Intuitive Robotics
Presentation on Intuitive RoboticsPresentation on Intuitive Robotics
Presentation on Intuitive Robotics
 
Open class cctv y domotica
Open class cctv y domoticaOpen class cctv y domotica
Open class cctv y domotica
 
Robotic Surgery - Dr. Meenakshi Sundaram
Robotic Surgery - Dr. Meenakshi SundaramRobotic Surgery - Dr. Meenakshi Sundaram
Robotic Surgery - Dr. Meenakshi Sundaram
 
Intuitive Surgical Investor presentation q315
Intuitive Surgical Investor presentation q315Intuitive Surgical Investor presentation q315
Intuitive Surgical Investor presentation q315
 
Robotics in surgery by DR.Mahipal reddy
Robotics in surgery  by DR.Mahipal reddyRobotics in surgery  by DR.Mahipal reddy
Robotics in surgery by DR.Mahipal reddy
 
Robotic surgery presentation
Robotic surgery presentationRobotic surgery presentation
Robotic surgery presentation
 
Robotic Surgery PPT
Robotic Surgery PPTRobotic Surgery PPT
Robotic Surgery PPT
 
Robotics & Artificial Intelligence
Robotics &  Artificial  IntelligenceRobotics &  Artificial  Intelligence
Robotics & Artificial Intelligence
 

Similar to Add sale davinci

10. GPU - Video Card (Display, Graphics, VGA)
10. GPU - Video Card (Display, Graphics, VGA)10. GPU - Video Card (Display, Graphics, VGA)
10. GPU - Video Card (Display, Graphics, VGA)Akhila Dakshina
 
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...The Linux Foundation
 
TMSLF2407 DSP Controller
TMSLF2407 DSP ControllerTMSLF2407 DSP Controller
TMSLF2407 DSP ControllerANIRUDDHMAINI1
 
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese..."Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...Edge AI and Vision Alliance
 
Stream Processing
Stream ProcessingStream Processing
Stream Processingarnamoy10
 
Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0guest72e8c1
 
Computer specifications
Computer specificationsComputer specifications
Computer specificationsLeonel Rivas
 
Current and Future of Non-Volatile Memory on Linux
Current and Future of Non-Volatile Memory on LinuxCurrent and Future of Non-Volatile Memory on Linux
Current and Future of Non-Volatile Memory on Linuxmountpoint.io
 
Embedded platform choices
Embedded platform choicesEmbedded platform choices
Embedded platform choicesTavish Naruka
 
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM SystemsXPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM SystemsThe Linux Foundation
 
hardware software basics
hardware software basicshardware software basics
hardware software basicsDeepa Rani
 
Richard Bronson Full Resume 2015
Richard Bronson Full Resume 2015Richard Bronson Full Resume 2015
Richard Bronson Full Resume 2015Richard Bronson
 
Develop Your Own Operating Systems using Cheap ARM Boards
Develop Your Own Operating Systems using Cheap ARM BoardsDevelop Your Own Operating Systems using Cheap ARM Boards
Develop Your Own Operating Systems using Cheap ARM BoardsNational Cheng Kung University
 
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
 Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo... Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo...
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...Rogue Wave Software
 
The Forefront of the Development for NVDIMM on Linux Kernel
The Forefront of the Development for NVDIMM on Linux KernelThe Forefront of the Development for NVDIMM on Linux Kernel
The Forefront of the Development for NVDIMM on Linux KernelYasunori Goto
 

Similar to Add sale davinci (20)

10. GPU - Video Card (Display, Graphics, VGA)
10. GPU - Video Card (Display, Graphics, VGA)10. GPU - Video Card (Display, Graphics, VGA)
10. GPU - Video Card (Display, Graphics, VGA)
 
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
 
TMSLF2407 DSP Controller
TMSLF2407 DSP ControllerTMSLF2407 DSP Controller
TMSLF2407 DSP Controller
 
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese..."Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
 
Stream Processing
Stream ProcessingStream Processing
Stream Processing
 
RMLL / LSM 2009
RMLL / LSM 2009RMLL / LSM 2009
RMLL / LSM 2009
 
Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0
 
Computer specifications
Computer specificationsComputer specifications
Computer specifications
 
Current and Future of Non-Volatile Memory on Linux
Current and Future of Non-Volatile Memory on LinuxCurrent and Future of Non-Volatile Memory on Linux
Current and Future of Non-Volatile Memory on Linux
 
Embedded platform choices
Embedded platform choicesEmbedded platform choices
Embedded platform choices
 
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM SystemsXPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
XPDDS18: CPUFreq in Xen on ARM - Oleksandr Tyshchenko, EPAM Systems
 
hardware software basics
hardware software basicshardware software basics
hardware software basics
 
Richard Bronson Full Resume 2015
Richard Bronson Full Resume 2015Richard Bronson Full Resume 2015
Richard Bronson Full Resume 2015
 
Develop Your Own Operating Systems using Cheap ARM Boards
Develop Your Own Operating Systems using Cheap ARM BoardsDevelop Your Own Operating Systems using Cheap ARM Boards
Develop Your Own Operating Systems using Cheap ARM Boards
 
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
 Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo... Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo...
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
 
Embedded systems_upded1.ppt
Embedded systems_upded1.pptEmbedded systems_upded1.ppt
Embedded systems_upded1.ppt
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
The Forefront of the Development for NVDIMM on Linux Kernel
The Forefront of the Development for NVDIMM on Linux KernelThe Forefront of the Development for NVDIMM on Linux Kernel
The Forefront of the Development for NVDIMM on Linux Kernel
 
Cpu
CpuCpu
Cpu
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 

Add sale davinci

  • 1. TI DaVinci : Embedded Software Development and Image Processing
  • 4. Contents • Introduction to OMAP and DaVinci – Heterogeneous Multicore GPP + DSP • Linux OS and Kernel DSP/BIOS • Standards • Frameworks • Practical
  • 5. A GPP or General Purpose Processor is capable of doing and handling I/O running os but is lot slower on video and imaging task where GPU wins because of MAC units but GPU fails in general computing tasks. So a mixture of both is norm of todays computing world A problem comes up when powering such a hybrid Davinci SOC (System on Chip) which includes both a GPP(General Purpose Processor) and a DSP (Digital Signal Processor). The OS that must run this must schedule tasks properly and have proper IPC (inter processor communication). For the DSP, the task scheduler is a light weight scheduler called the DSP/BIOS. For GPP we consider the world of Linux. Heterogenous Multicore – Power of GPP + GPU
  • 6. CPU: ARM926EJ 270Mhz & TMS320C64x+™DSP Core at 600 MHz Memory APU : 16K I-Cache, 8K D-Cache, 32K TCM RAM, 8K Boot ROM Memory GPU : 32K L1 I-Cache, 32K L1 D-Cache, 128K L2 Cache, 64K Boot ROM JPEG Video Coprocessors – Video and Imaging Coprocessor ARCHITECTURE
  • 7. Video Processing Sub System (VPSS) is comprised of two blocks: Front End (VPFE) & Back End (VPBE). VPFE Consists of CCD Controller (CCDC), Statistics Engine (H3A), Previewer, Resizer whereas VPBE consists of On-screen Display (OSD) and Video Encoding (VENC). When previewing the image the image goes from camera to VPFE, then to DDR, SCR(Switched Central Resource) and then back to output. In case of image processing the image from DDR ram goes to EDMA then to cache and then to processor where it is processing and then it goes back to the VPFE for display. VPSS : VPFE & VPBE
  • 9. APIs It has xDAIS (eXpress DSP Algo Interoperability Std): An eXpressDSP-compliant algorithm is a module that implements the abstract interface IALG. The IALG API takes the memory management function away from the algorithm and places it in the hosting framework. Thus, an interaction occurs between the algorithm and the framework. This interaction allows the client application to allocate memory for the algorithm and share memory between algorithms. It also allows the memory to be moved around while an algorithm is operating xDM (eXpress DSP Digital Media): Set of APIs for multimedia compressing algo, Resource allocation, initialization and start APIs. Runtime process & control APIs. Stop algorithm and resource de-allocation APIs.
  • 11. • 4 Elements - Tool chain; boot loader; kernel; user space • Tool Chain: • In software, a toolchain is the set of programming tools that are used to create a product (typically another computer program or system of programs). ● A tool chain consists of at least binutils: GNU assembler, linker, etc. • gcc: GNU C compiler ● C library (libc): the interface to the operating system ● gdb: debugger • Types: Native (runs for the target, target really fast) and Cross Compiler tool chain (can run anywhere on PC) • Compiler mostly gcc , different for vendor like arm-gcc or arm-angstom-linux-gcc etc . • select toolchain if it supports your needs ARM A8 or ARMv4 or higher, FP support, community support eg- Codesourcery g++, angstom, buildroot, Montavista & most imp it must have lib support which in form of .so or src • Goodies like IDE, Memory analyse tool, debugger etc Elements of a Linux System : Toolchain
  • 12. • Bootloader is a piece of code that runs before any operating system is running. • Bootloader are used to boot other operating systems, usually each operating system has a set of bootloaders specific for it. • It initializes the hardware, Sets up SDRAM controller Map memory, Set processor mode and features • Load a kernel • Load images via Ethernet, serial, SD card • Erase and program flash memory • Nowadays a pre-bootloader is boots the system from flash and transfers control to secondary bootlloader in NAND as this is edited much more often. • Most popular is the U-Boot. PC used bootmbr, linux uses grub/lilo • Uboot has lot of options which can be set like booting from SD, NFS, NAND. It erases NAND, set ipaddress for NFS, can give address to load kernel Elements of Linux System : Bootloader
  • 13. • Why MontaVista? http://www.mvista.com/ • Steps: • Make SW7 both up to boot from nand (left up right down to boot from SD Card) • Connect LAN, Audio, Composite Video, Power, UART and set it up • From minicom using settings bps : 115200, dbits – 8 connect to serial port • You would see EVM# promt and davinci interface on screen Starting the Device
  • 14. • Install all the softwares given with the OEM CD 1: MontaVista Linux Pro System Tools CD 2: MontaVista Linux Pro Target File System CD 3: TI DVSDK Software • INSTALLING THE TARGET LINUX SOFTWARE: • SETTING UP THE NFS SERVER FILE SYSTEM: • BUILDING THE LINUX RTOS • REBUILDING THE DVEVM SOFTWARE FOR THE TARGET: • BOOTING THE NEW LINUX KERNEL: set env var Setting of Project
  • 15. • We have to install these softwares on host Linux pc in this order • ❏ mvl_4_0_1_demo_sys_setuplinux.bin • ❏ mvl_4_0_1_demo_target_setuplinux.bin • ❏ mvl_4_0_1_demo_lsp_setuplinux_#_#_#_#.bin • ❏ dvsdk_setuplinux_#_#_#_#.bin • ❏ xdc_setuplinux_#_#_#_#.bin Installing all the Softwares
  • 16. • Create a shared folder ~workdir/filesys • Copy this folder into it /opt/mv_pro_4.0.1/montavista/pro/devkit/arm/v5t_le/t arget/ • In /etc/exports file add the filesys folder /home/<useracct>/workdir/filesys *(rw,no_root_squash,no_all_squash,sync) • Restart nfs service and add the folder to sys path SETTING UP THE NFS SERVER FILE SYSTEM
  • 17. • You need mvl toolchain present in lsp/ti-davinci • Go to ti-davinci/linux-2.6.10_mvl401 • make ARCH=arm CROSS_COMPILE=arm_v5t_le- davinci_dm355_evm_defconfig • To modify any args use make menuconfig and then again build it • BUILDING THE LINUX RTOS
  • 18. • Now write your own program • Cross compile arm_v5t_le-gcc *.c –o <obj name> • ./<obj name> Make your own program
  • 19. • A simple img zooming app • Steps: • arm_v5t_le-gcc img2zoom.c -o ../binaries/img2zoom • ./img2zoom <args> Practical – Simple Image Processing