SlideShare a Scribd company logo
11 Avenue Marigny 13014 Marseille www.ciose.fr christian.charreyre@ciose.fr
Developing an embedded video application on dual Linux + FPGA architecture 109/26/17
Developing an embedded videoDeveloping an embedded video
application on dual Linux + FPGAapplication on dual Linux + FPGA
architecturearchitecture
C. CharreyreC. Charreyre
christian.charreyre@ciose.frchristian.charreyre@ciose.fr
http://www.ciose.frhttp://www.ciose.fr
https://twitter.com/CIO_SysEmbhttps://twitter.com/CIO_SysEmb
http://fr.slideshare.net/charreyrehttp://fr.slideshare.net/charreyre
License
Developing an embedded video application on dual Linux + FPGA architecture 209/26/17
Attribution-Noncommercial-Share Alike 4.0 International
● You are free:
to Share - copy and redistribute the material in any medium or format
to Adapt - remix, transform, and build upon the material
The licensor cannot revoke these freedoms as long as you follow the license terms.
● Under the following conditions:
Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so
in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
NonCommercial — You may not use the material for commercial purposes.
ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license
as the original.
● No additional restrictions — You may not apply legal terms or technological measures that
legally restrict others from doing anything the license permits.
● License text : http://creativecommons.org/licenses/by-nc-sa/4.0/legalcode
 Small company dedicated to embedded solutions (16 persons)
 Electronics and software developments
 Embedded Linux expertise since 15 years
 Open Embedded and Yocto expertise since 7 years
 Headquarters in Saint-Etienne
 Agency in Marseilles
 Embedded Linux expert for Cap’tronic program
Developing an embedded video application on dual Linux + FPGA architecture 309/26/17
Presentation of CIO Systèmes Embarqués
Developing an embedded video application on dual Linux + FPGA architecture 4
 Responsible of Embedded Linux technologies in CIO Systèmes Embarqués
 Embedded Linux trainer
 30 years in embedded and Unix / Linux world
 Developer and maintainer of kernel, u-boot ports on Arm boards
 Developer and maintainer of Yocto layers
09/26/17
Presentation of the speaker
Developing an embedded video application on dual Linux + FPGA architecture 509/26/17
The embedded video application
● High performance video acquisition, real time treatments and
display
● Merge and synchronization of 2 images issued by 2 cameras
● Deployed in a device with safety constraints related to video
● Latency between real world and display < 200 ms
● Video must be available 7 s after Power On
● Device developed on an ARM architecture (CIO’s skills) →
embedded Linux software environment
Developing an embedded video application on dual Linux + FPGA architecture 609/26/17
Why use a FPGA ?
● Previous video applications developed on iMX.6 processor with
gstreamer to manage video pipeline
● This architecture can’t be used here :
– Safety certification problem on Linux
– Real time performances (latency, jitter) ???
● High performance IP for FPGA dedicated to video applications available
● We decided to share the application between Embedded Linux on ARM
processor and FPGA
– Video processing is done by the FPGA
– Configuration, errors monitoring and utilities done by Embedded
Linux distribution
Developing an embedded video application on dual Linux + FPGA architecture 709/26/17
The hardware platform
● The choosen hardware platform is a PicoZed board mounted on a custom base board developed
by CIO
● PicoZed = System On Module based on the Xilinx Zynq®-7000 All Programmable (AP) SoC
● Zynq 7000 offers a dual core ARM processor + FPGA in the same chip
● ARM processor is called Processing System (PS)
● FPGA is called Programmable Logic (PL)
Developing an embedded video application on dual Linux + FPGA architecture 809/26/17
Linux software environment
● PicoZed Linux environment proposed with 2 options :
– Petalinux is the Linux environment proposed by Xilinx
– Wind River Pulsar Linux, a Yocto based environment
● CIO has great experience of OpenEmbedded and Yocto tools :
– Petalinux quickly eliminated as Yocto is a de facto standard in
Embedded Linux
– Wind River Pulsar Linux evaluated :
● Rejected due to the presence of containerization in the solution. We did
not want to loose time with this technology
– We finally selected meta-xilinx layer and assembled it with other
layers to build our Embedded Linux environment
Developing an embedded video application on dual Linux + FPGA architecture 909/26/17
Linux software environment
● All necessary layers selected from OpenEmbedded Layer Index
● Layer coherency assured by repo tool
● Finally we have made a Yocto based build system tailored for the
embedded distribution
● The embedded distribution is built by customizing Yocto recipes
and creating new ones for in house applications
● A more complex Board Support Package due to interactions
between PS and PL (detailed later)
Developing an embedded video application on dual Linux + FPGA architecture 1009/26/17
FPGA developments
● FPGA developments made with Xilinx Vivado tool (Eclipse based)
Developing an embedded video application on dual Linux + FPGA architecture 1109/26/17
FPGA developments
● FPGA engineer designs its IPs inside Vivado
● When the design is finished, the final VHDL code for the FPGA is
generated
● But we don’t want to have 2 isolated parts : Embedded Linux
distribution & logic design. AXI interface allow us to communicate
between PS and PL.
– AXI stream : dedicated to stream data
– AXI ACP : allow copy data to cache memory (close to the processor)
– AXI light : allow exchange of some data
– AXI HP : allow access to the DDR and store data like images without
bandwidth issues.
Developing an embedded video application on dual Linux + FPGA architecture 1209/26/17
How can PS and PL interact ?
● It is possible to design hardware components in the PL that can be
seen by the PS
● Potential use cases :
– Add additional hardware resources for the embedded Linux
distribution, normally not available on PS → extend PS capabilities
● Create an additional serial line
– Use dedicated hardware to communicate between PL and PS
● Create GPIOs in the PL and make Embedded Linux use them to read / write
logic data from / to the VHDL application
– Allow dynamic customization of IPs
● Perform a specific crop on an image which can be changed from Linux
(position, size).
Developing an embedded video application on dual Linux + FPGA architecture 1309/26/17
Technically, how does it work ?
● We have seen
– The application constraints
– The selected hardware and software architecture
– The tools
● But of does it work ?
Developing an embedded video application on dual Linux + FPGA architecture 1409/26/17
Boot Mechanism
● PicoZed needs a First Stage Boot Loader (FSBL) before u-boot
● FSBL code is generated by Vivado according to the design
– This code can be compiled inside Vivado or externally with
and ARM toolchain
● FSBL then starts u-boot which in turn starts Linux
● The FPGA code (bitstream) must be loaded by FSBL or by u-boot
– The FPGA can’t start alone
– The VHDL code is reloaded at each boot → impact on boot
time
Developing an embedded video application on dual Linux + FPGA architecture 1509/26/17
Interactions between PS and PL
● The Xilinx Linux kernel (founder specific) has dedicated drivers for
hardware resources implemented by PL and shared with PS
● These resources are appended to the device tree, thus making
them available to Linux kernel
● Vivado automatically generates a pl.dtsi file that is included
in the board device tree
● pl.dtsi reflects selection and design of hardware resources of
the PL accessible to the PS
Developing an embedded video application on dual Linux + FPGA architecture 1609/26/17
Interactions between PS and PL
/*
 * CAUTION: This file is automatically generated by Xilinx.
 * Version: HSI 2016.4
 * Today is: Fri Aug  4 16:29:54 2017
*/
/ {
amba_pl: amba_pl {
#address­cells = <1>;
#size­cells = <1>;
compatible = "simple­bus";
Ranges ;
RS485_PL: serial@42c00000 {
clock­names = "ref_clk";
clocks = <&clkc 0>;
compatible = "xlnx,xps­uartlite­1.00.a";
current­speed = <115200>;
device_type = "serial";
interrupt­parent = <&intc>;
interrupts = <0 35 1>;
port­number = <0>;
reg = <0x42c00000 0x10000>;
xlnx,baudrate = <0x2580>;
xlnx,data­bits = <0x8>;
xlnx,odd­parity = <0x0>;
xlnx,s­axi­aclk­freq­hz­d = "50.0";
xlnx,use­parity = <0x0>;
};
Additional serial line
Link with Xilinx driver
Developing an embedded video application on dual Linux + FPGA architecture 1709/26/17
Interactions between PS and PL
…
video_in_0_Status: gpio@41230000 {
#gpio­cells = <2>;
compatible = "xlnx,xps­gpio­1.00.a";
gpio­controller ;
reg = <0x41230000 0x10000>;
xlnx,all­inputs = <0x1>;
xlnx,all­inputs­2 = <0x0>;
xlnx,all­outputs = <0x0>;
xlnx,all­outputs­2 = <0x0>;
xlnx,dout­default = <0x00000000>;
xlnx,dout­default­2 = <0x00000000>;
xlnx,gpio­width = <0x5>;
xlnx,gpio2­width = <0x20>;
xlnx,interrupt­present = <0x0>;
xlnx,is­dual = <0x0>;
xlnx,tri­default = <0xFFFFFFFF>;
xlnx,tri­default­2 = <0xFFFFFFFF>;
};
};
};
Information towards PS
Link with Xilinx driver
Developing an embedded video application on dual Linux + FPGA architecture 1809/26/17
Device tree generation
● In fact, Vivado generates the whole device tree :
– PS part through zynq­7000.dtsi
– PL part through pl.dtsi
– And the final system.dts that includes PS and PL part, + nodes
customizations according to Vivado design
● Vivado covers PL but also parameters impacting PS
● Device tree must be rebuilt after each change in Vivado → automation
of the workflow welcome
– Development of dedicated Yocto recipes to manage generation and
dispatch of all these files in Board Support Package dedicated recipes
● U-boot and device tree recipes impacted
Developing an embedded video application on dual Linux + FPGA architecture 1909/26/17
Boot time optimization
● The requirement is to have the image completely stable at much 7 s
after Power ON
● Tasks necessary before image :
– FSBL
– U-boot
– Bitstream loading and FPGA programming
– Kernel initialization
– Userland startup (system V init)
– Cameras initialization through spi communication
– FPGA video IP configuration
Developing an embedded video application on dual Linux + FPGA architecture 2009/26/17
Boot time optimization
● Misc techniques used to minimize image arrival time :
– Activation of bootstage report feature of u-boot
– Use of bootchart to identify where boot time is consumed during Linux start-up
– U-boot optimization to reduce peripherals inits
– Linux kernel optimization to reduce kernel size (media access time) and
peripherals init
– System console removal
– Completely reorder init scripts to start video application as early as possible
– Use of read only root file system to avoid file system checks and corrections
(power off without halt)
– Maximize spi speed on spi bus with camera
● Finally image is here and stable 5.6 s after Power On.
Developing an embedded video application on dual Linux + FPGA architecture 2109/26/17
Consequences of safety requirements
● The design has been done so that the safety certification will impact
only the FPGA
– Linux developments not directly impacted by certification
process
● But the software must be updated through IP communication over
Ethernet
● As FPGA software is updated through Linux IP features, the
installation & upgrade process must be secured to avoid potential
hacking
● Installer and updater utilities use asymmetric cryptography
mechanism to authenticate all software elements before
installation / update
Developing an embedded video application on dual Linux + FPGA architecture 2209/26/17
Conclusion
● At the beginning of the project, 2 major decisions :
– Use a mixed design based on Embedded Linux + FPGA
– Use meta-xilinx layer and assemble layers by ourself instead
of standard solutions (Petalinux or Wind River Pulsar Linux)
● What are the results ?
Developing an embedded video application on dual Linux + FPGA architecture 2309/26/17
Conclusion
● The main concerns regarding the dual architecture was about :
– Splitted design
– Communication between PS and PL
– Kernel management of peripherals built in PL part
● Splitted design is a constraint but the advantages of using a FPGA are more
important than the drawbacks
● AXI interface offers many solutions to implement communications between PS and
PL
● Drivers available in Xilinx kernel + automatic generation of device tree make the
peripherals designed in PL well supported by the kernel
● PL design make the final platform easily adaptive to new requirements
– Ex : debug GPIOs useful only during development phase synthesized in the PL
part then removed
Developing an embedded video application on dual Linux + FPGA architecture 2409/26/17
Conclusion
● Using meta-xilinx and assembling them by ourselves with other
layers from OE layers repository was a good choice
– Good quality of meta-xilinx layer
– We select exactly the layers we need
– Finally we have a very well adapted distribution
● This was also possible because we have good skills on Yocto build
tool and layers architecture and features.
Developing an embedded video application on dual Linux + FPGA architecture 2509/26/17
Questions ?
● Thank you for your attention
● Time for questions

More Related Content

What's hot

FPGA_Overview_Ibr_2014
FPGA_Overview_Ibr_2014FPGA_Overview_Ibr_2014
FPGA_Overview_Ibr_2014Ibrahim Hejab
 
FPGAs : An Overview
FPGAs : An OverviewFPGAs : An Overview
FPGAs : An Overview
Sanjiv Malik
 
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
Linaro
 
FPGA Introduction
FPGA IntroductionFPGA Introduction
FPGA Introduction
Kamlesh Kumar
 
FPGA workshop
FPGA workshopFPGA workshop
FPGA workshop
Alex Borisevich
 
Traditional vs. SoC FPGA Design Flow A Video Pipeline Case Study
Traditional vs. SoC FPGA Design Flow A Video Pipeline Case StudyTraditional vs. SoC FPGA Design Flow A Video Pipeline Case Study
Traditional vs. SoC FPGA Design Flow A Video Pipeline Case Study
Altera Corporation
 
Linux Conference Australia 2018 : Device Tree, past, present, future
Linux Conference Australia 2018 : Device Tree, past, present, futureLinux Conference Australia 2018 : Device Tree, past, present, future
Linux Conference Australia 2018 : Device Tree, past, present, future
Neil Armstrong
 
BUD17 Socionext SC2A11 ARM Server SoC
BUD17 Socionext SC2A11 ARM Server SoCBUD17 Socionext SC2A11 ARM Server SoC
BUD17 Socionext SC2A11 ARM Server SoC
Linaro
 
Smart logic
Smart logicSmart logic
SoC~FPGA~ASIC~Embedded
SoC~FPGA~ASIC~EmbeddedSoC~FPGA~ASIC~Embedded
SoC~FPGA~ASIC~Embedded
Chili.CHIPS
 
Design options for digital systems
Design options for digital systemsDesign options for digital systems
Design options for digital systems
dennis gookyi
 
FPGA/Reconfigurable computing (HPRC)
FPGA/Reconfigurable computing (HPRC)FPGA/Reconfigurable computing (HPRC)
FPGA/Reconfigurable computing (HPRC)
rinnocente
 
LAS16-403: GDB Linux Kernel Awareness
LAS16-403: GDB Linux Kernel AwarenessLAS16-403: GDB Linux Kernel Awareness
LAS16-403: GDB Linux Kernel Awareness
Linaro
 
Secure IoT Firmware for RISC-V
Secure IoT Firmware for RISC-VSecure IoT Firmware for RISC-V
Secure IoT Firmware for RISC-V
RISC-V International
 
Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...
Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...
Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...
Neil Armstrong
 
VHDL Practical Exam Guide
VHDL Practical Exam GuideVHDL Practical Exam Guide
VHDL Practical Exam Guide
Eslam Mohammed
 
Xilinx virtex 7 fpga - Semester Presentation
Xilinx virtex 7 fpga - Semester PresentationXilinx virtex 7 fpga - Semester Presentation
Xilinx virtex 7 fpga - Semester Presentation
Muhammad Muzaffar Khan
 
Fpga Device Selection
Fpga Device SelectionFpga Device Selection
Fpga Device Selection
Vikram Singh
 
Security issues in FPGA based systems.
Security issues in FPGA based systems.Security issues in FPGA based systems.
Security issues in FPGA based systems.
Rajeev Verma
 

What's hot (20)

FPGA_Overview_Ibr_2014
FPGA_Overview_Ibr_2014FPGA_Overview_Ibr_2014
FPGA_Overview_Ibr_2014
 
FPGAs : An Overview
FPGAs : An OverviewFPGAs : An Overview
FPGAs : An Overview
 
FPGA Configuration
FPGA ConfigurationFPGA Configuration
FPGA Configuration
 
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
 
FPGA Introduction
FPGA IntroductionFPGA Introduction
FPGA Introduction
 
FPGA workshop
FPGA workshopFPGA workshop
FPGA workshop
 
Traditional vs. SoC FPGA Design Flow A Video Pipeline Case Study
Traditional vs. SoC FPGA Design Flow A Video Pipeline Case StudyTraditional vs. SoC FPGA Design Flow A Video Pipeline Case Study
Traditional vs. SoC FPGA Design Flow A Video Pipeline Case Study
 
Linux Conference Australia 2018 : Device Tree, past, present, future
Linux Conference Australia 2018 : Device Tree, past, present, futureLinux Conference Australia 2018 : Device Tree, past, present, future
Linux Conference Australia 2018 : Device Tree, past, present, future
 
BUD17 Socionext SC2A11 ARM Server SoC
BUD17 Socionext SC2A11 ARM Server SoCBUD17 Socionext SC2A11 ARM Server SoC
BUD17 Socionext SC2A11 ARM Server SoC
 
Smart logic
Smart logicSmart logic
Smart logic
 
SoC~FPGA~ASIC~Embedded
SoC~FPGA~ASIC~EmbeddedSoC~FPGA~ASIC~Embedded
SoC~FPGA~ASIC~Embedded
 
Design options for digital systems
Design options for digital systemsDesign options for digital systems
Design options for digital systems
 
FPGA/Reconfigurable computing (HPRC)
FPGA/Reconfigurable computing (HPRC)FPGA/Reconfigurable computing (HPRC)
FPGA/Reconfigurable computing (HPRC)
 
LAS16-403: GDB Linux Kernel Awareness
LAS16-403: GDB Linux Kernel AwarenessLAS16-403: GDB Linux Kernel Awareness
LAS16-403: GDB Linux Kernel Awareness
 
Secure IoT Firmware for RISC-V
Secure IoT Firmware for RISC-VSecure IoT Firmware for RISC-V
Secure IoT Firmware for RISC-V
 
Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...
Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...
Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...
 
VHDL Practical Exam Guide
VHDL Practical Exam GuideVHDL Practical Exam Guide
VHDL Practical Exam Guide
 
Xilinx virtex 7 fpga - Semester Presentation
Xilinx virtex 7 fpga - Semester PresentationXilinx virtex 7 fpga - Semester Presentation
Xilinx virtex 7 fpga - Semester Presentation
 
Fpga Device Selection
Fpga Device SelectionFpga Device Selection
Fpga Device Selection
 
Security issues in FPGA based systems.
Security issues in FPGA based systems.Security issues in FPGA based systems.
Security issues in FPGA based systems.
 

Viewers also liked

FPGA Architecture Presentation
FPGA Architecture PresentationFPGA Architecture Presentation
FPGA Architecture Presentationomutukuda
 
Speech Reognition Using FPGA Technology
Speech Reognition Using FPGA TechnologySpeech Reognition Using FPGA Technology
Speech Reognition Using FPGA Technology
Carlos
 
What is FPGA?
What is FPGA?What is FPGA?
What is FPGA?
GlobalLogic Ukraine
 
FPGA Applications in Finance
FPGA Applications in FinanceFPGA Applications in Finance
FPGA Applications in Finance
zpektral
 
FPGA
FPGAFPGA
Fundamentals of FPGA
Fundamentals of FPGAFundamentals of FPGA
Fundamentals of FPGA
velamakuri
 
FPGA
FPGAFPGA
Speech Recognition System By Matlab
Speech Recognition System By MatlabSpeech Recognition System By Matlab
Speech Recognition System By Matlab
Ankit Gujrati
 

Viewers also liked (8)

FPGA Architecture Presentation
FPGA Architecture PresentationFPGA Architecture Presentation
FPGA Architecture Presentation
 
Speech Reognition Using FPGA Technology
Speech Reognition Using FPGA TechnologySpeech Reognition Using FPGA Technology
Speech Reognition Using FPGA Technology
 
What is FPGA?
What is FPGA?What is FPGA?
What is FPGA?
 
FPGA Applications in Finance
FPGA Applications in FinanceFPGA Applications in Finance
FPGA Applications in Finance
 
FPGA
FPGAFPGA
FPGA
 
Fundamentals of FPGA
Fundamentals of FPGAFundamentals of FPGA
Fundamentals of FPGA
 
FPGA
FPGAFPGA
FPGA
 
Speech Recognition System By Matlab
Speech Recognition System By MatlabSpeech Recognition System By Matlab
Speech Recognition System By Matlab
 

Similar to Developing an embedded video application on dual Linux + FPGA architecture

ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projects
Christian Charreyre
 
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processorUplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
Satya Harish
 
kocialkowski-overview-linux-userspace-graphics-stack.pdf
kocialkowski-overview-linux-userspace-graphics-stack.pdfkocialkowski-overview-linux-userspace-graphics-stack.pdf
kocialkowski-overview-linux-userspace-graphics-stack.pdf
VishalKumarJha10
 
"Building Complete Embedded Vision Systems on Linux—From Camera to Display," ...
"Building Complete Embedded Vision Systems on Linux—From Camera to Display," ..."Building Complete Embedded Vision Systems on Linux—From Camera to Display," ...
"Building Complete Embedded Vision Systems on Linux—From Camera to Display," ...
Edge AI and Vision Alliance
 
Modern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - BerlinModern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - Berlin
Djalal Harouni
 
Bringing Tizen to a Raspberry Pi 2 Near You
Bringing Tizen to a Raspberry Pi 2 Near YouBringing Tizen to a Raspberry Pi 2 Near You
Bringing Tizen to a Raspberry Pi 2 Near You
Samsung Open Source Group
 
Developing new zynq based instruments
Developing new zynq based instrumentsDeveloping new zynq based instruments
Developing new zynq based instruments
Graham NAYLOR
 
Efabless Marketplace webinar slides 2024
Efabless Marketplace webinar slides 2024Efabless Marketplace webinar slides 2024
Efabless Marketplace webinar slides 2024
Nobin Mathew
 
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
Toradex
 
Introduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkIntroduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkBenjamin Zores
 
Xilinx manual
Xilinx manualXilinx manual
Xilinx manual
anilkusuma
 
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
ICS
 
Using open source software to build an industrial grade embedded linux platfo...
Using open source software to build an industrial grade embedded linux platfo...Using open source software to build an industrial grade embedded linux platfo...
Using open source software to build an industrial grade embedded linux platfo...
SZ Lin
 
Embedded Linux Multimedia
Embedded Linux MultimediaEmbedded Linux Multimedia
Embedded Linux MultimediaCaglar Dursun
 
LlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and NotaryLlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and Notary
Docker, Inc.
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
Sherif Mousa
 
ELCE 2010 - State Of Multimedia In 2010 Embedded Linux Devices
ELCE 2010 - State Of Multimedia In 2010 Embedded Linux DevicesELCE 2010 - State Of Multimedia In 2010 Embedded Linux Devices
ELCE 2010 - State Of Multimedia In 2010 Embedded Linux DevicesBenjamin Zores
 
How to Manage OSS Licenses in CI/CD Development
How to Manage OSS Licenses in CI/CD DevelopmentHow to Manage OSS Licenses in CI/CD Development
How to Manage OSS Licenses in CI/CD Development
Shane Coughlan
 

Similar to Developing an embedded video application on dual Linux + FPGA architecture (20)

ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projects
 
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processorUplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
 
Embedded project
Embedded projectEmbedded project
Embedded project
 
kocialkowski-overview-linux-userspace-graphics-stack.pdf
kocialkowski-overview-linux-userspace-graphics-stack.pdfkocialkowski-overview-linux-userspace-graphics-stack.pdf
kocialkowski-overview-linux-userspace-graphics-stack.pdf
 
"Building Complete Embedded Vision Systems on Linux—From Camera to Display," ...
"Building Complete Embedded Vision Systems on Linux—From Camera to Display," ..."Building Complete Embedded Vision Systems on Linux—From Camera to Display," ...
"Building Complete Embedded Vision Systems on Linux—From Camera to Display," ...
 
Modern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - BerlinModern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - Berlin
 
Bringing Tizen to a Raspberry Pi 2 Near You
Bringing Tizen to a Raspberry Pi 2 Near YouBringing Tizen to a Raspberry Pi 2 Near You
Bringing Tizen to a Raspberry Pi 2 Near You
 
Developing new zynq based instruments
Developing new zynq based instrumentsDeveloping new zynq based instruments
Developing new zynq based instruments
 
Efabless Marketplace webinar slides 2024
Efabless Marketplace webinar slides 2024Efabless Marketplace webinar slides 2024
Efabless Marketplace webinar slides 2024
 
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
 
Introduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkIntroduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux Framework
 
Xilinx manual
Xilinx manualXilinx manual
Xilinx manual
 
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
 
Using open source software to build an industrial grade embedded linux platfo...
Using open source software to build an industrial grade embedded linux platfo...Using open source software to build an industrial grade embedded linux platfo...
Using open source software to build an industrial grade embedded linux platfo...
 
Embedded Linux Multimedia
Embedded Linux MultimediaEmbedded Linux Multimedia
Embedded Linux Multimedia
 
LlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and NotaryLlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and Notary
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
 
ELCE 2010 - State Of Multimedia In 2010 Embedded Linux Devices
ELCE 2010 - State Of Multimedia In 2010 Embedded Linux DevicesELCE 2010 - State Of Multimedia In 2010 Embedded Linux Devices
ELCE 2010 - State Of Multimedia In 2010 Embedded Linux Devices
 
Video Drivers
Video DriversVideo Drivers
Video Drivers
 
How to Manage OSS Licenses in CI/CD Development
How to Manage OSS Licenses in CI/CD DevelopmentHow to Manage OSS Licenses in CI/CD Development
How to Manage OSS Licenses in CI/CD Development
 

More from Christian Charreyre

Meetup Cybersécurité RGPD Conséquences dans l'Embarqué
Meetup Cybersécurité RGPD Conséquences dans l'EmbarquéMeetup Cybersécurité RGPD Conséquences dans l'Embarqué
Meetup Cybersécurité RGPD Conséquences dans l'Embarqué
Christian Charreyre
 
Créer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou AngströmCréer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou Angström
Christian Charreyre
 
OS libres pour l'IoT - Zephyr
OS libres pour l'IoT - ZephyrOS libres pour l'IoT - Zephyr
OS libres pour l'IoT - Zephyr
Christian Charreyre
 
Meetup Systemd vs sysvinit
Meetup Systemd vs sysvinitMeetup Systemd vs sysvinit
Meetup Systemd vs sysvinit
Christian Charreyre
 
Créer une distribution Linux embarqué professionnelle avec Yocto Project
Créer une distribution Linux embarqué professionnelle avec Yocto ProjectCréer une distribution Linux embarqué professionnelle avec Yocto Project
Créer une distribution Linux embarqué professionnelle avec Yocto Project
Christian Charreyre
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015
Christian Charreyre
 
Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015
Christian Charreyre
 
Autotools
AutotoolsAutotools
Créer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou AngströmCréer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou Angström
Christian Charreyre
 
Licences libres et embarqué
Licences libres et embarquéLicences libres et embarqué
Licences libres et embarqué
Christian Charreyre
 
Séminaire Captronic Yocto 24 février 2015
Séminaire Captronic Yocto 24 février 2015Séminaire Captronic Yocto 24 février 2015
Séminaire Captronic Yocto 24 février 2015
Christian Charreyre
 
Concevoir un système Linux embarqué avec Yocto Project - Version révisée
Concevoir un système Linux embarqué avec Yocto Project - Version réviséeConcevoir un système Linux embarqué avec Yocto Project - Version révisée
Concevoir un système Linux embarqué avec Yocto Project - Version révisée
Christian Charreyre
 
Concevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto ProjectConcevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto Project
Christian Charreyre
 
Yocto une solution robuste pour construire des applications à fort contenu ap...
Yocto une solution robuste pour construire des applications à fort contenu ap...Yocto une solution robuste pour construire des applications à fort contenu ap...
Yocto une solution robuste pour construire des applications à fort contenu ap...
Christian Charreyre
 
Open Embedded un framework libre pour assurer la cohérence de son projet
Open Embedded un framework libre pour assurer la cohérence de son projetOpen Embedded un framework libre pour assurer la cohérence de son projet
Open Embedded un framework libre pour assurer la cohérence de son projet
Christian Charreyre
 
Conference Informatique Embarquée Synergie-NTIC
Conference Informatique Embarquée Synergie-NTICConference Informatique Embarquée Synergie-NTIC
Conference Informatique Embarquée Synergie-NTIC
Christian Charreyre
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
Christian Charreyre
 
Logiciels libres en milieu industriel
Logiciels libres en milieu industrielLogiciels libres en milieu industriel
Logiciels libres en milieu industriel
Christian Charreyre
 
ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projects
Christian Charreyre
 

More from Christian Charreyre (19)

Meetup Cybersécurité RGPD Conséquences dans l'Embarqué
Meetup Cybersécurité RGPD Conséquences dans l'EmbarquéMeetup Cybersécurité RGPD Conséquences dans l'Embarqué
Meetup Cybersécurité RGPD Conséquences dans l'Embarqué
 
Créer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou AngströmCréer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou Angström
 
OS libres pour l'IoT - Zephyr
OS libres pour l'IoT - ZephyrOS libres pour l'IoT - Zephyr
OS libres pour l'IoT - Zephyr
 
Meetup Systemd vs sysvinit
Meetup Systemd vs sysvinitMeetup Systemd vs sysvinit
Meetup Systemd vs sysvinit
 
Créer une distribution Linux embarqué professionnelle avec Yocto Project
Créer une distribution Linux embarqué professionnelle avec Yocto ProjectCréer une distribution Linux embarqué professionnelle avec Yocto Project
Créer une distribution Linux embarqué professionnelle avec Yocto Project
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015
 
Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015
 
Autotools
AutotoolsAutotools
Autotools
 
Créer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou AngströmCréer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou Angström
 
Licences libres et embarqué
Licences libres et embarquéLicences libres et embarqué
Licences libres et embarqué
 
Séminaire Captronic Yocto 24 février 2015
Séminaire Captronic Yocto 24 février 2015Séminaire Captronic Yocto 24 février 2015
Séminaire Captronic Yocto 24 février 2015
 
Concevoir un système Linux embarqué avec Yocto Project - Version révisée
Concevoir un système Linux embarqué avec Yocto Project - Version réviséeConcevoir un système Linux embarqué avec Yocto Project - Version révisée
Concevoir un système Linux embarqué avec Yocto Project - Version révisée
 
Concevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto ProjectConcevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto Project
 
Yocto une solution robuste pour construire des applications à fort contenu ap...
Yocto une solution robuste pour construire des applications à fort contenu ap...Yocto une solution robuste pour construire des applications à fort contenu ap...
Yocto une solution robuste pour construire des applications à fort contenu ap...
 
Open Embedded un framework libre pour assurer la cohérence de son projet
Open Embedded un framework libre pour assurer la cohérence de son projetOpen Embedded un framework libre pour assurer la cohérence de son projet
Open Embedded un framework libre pour assurer la cohérence de son projet
 
Conference Informatique Embarquée Synergie-NTIC
Conference Informatique Embarquée Synergie-NTICConference Informatique Embarquée Synergie-NTIC
Conference Informatique Embarquée Synergie-NTIC
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
 
Logiciels libres en milieu industriel
Logiciels libres en milieu industrielLogiciels libres en milieu industriel
Logiciels libres en milieu industriel
 
ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projects
 

Recently uploaded

When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 

Recently uploaded (20)

When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 

Developing an embedded video application on dual Linux + FPGA architecture

  • 1. 11 Avenue Marigny 13014 Marseille www.ciose.fr christian.charreyre@ciose.fr Developing an embedded video application on dual Linux + FPGA architecture 109/26/17 Developing an embedded videoDeveloping an embedded video application on dual Linux + FPGAapplication on dual Linux + FPGA architecturearchitecture C. CharreyreC. Charreyre christian.charreyre@ciose.frchristian.charreyre@ciose.fr http://www.ciose.frhttp://www.ciose.fr https://twitter.com/CIO_SysEmbhttps://twitter.com/CIO_SysEmb http://fr.slideshare.net/charreyrehttp://fr.slideshare.net/charreyre
  • 2. License Developing an embedded video application on dual Linux + FPGA architecture 209/26/17 Attribution-Noncommercial-Share Alike 4.0 International ● You are free: to Share - copy and redistribute the material in any medium or format to Adapt - remix, transform, and build upon the material The licensor cannot revoke these freedoms as long as you follow the license terms. ● Under the following conditions: Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. NonCommercial — You may not use the material for commercial purposes. ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. ● No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. ● License text : http://creativecommons.org/licenses/by-nc-sa/4.0/legalcode
  • 3.  Small company dedicated to embedded solutions (16 persons)  Electronics and software developments  Embedded Linux expertise since 15 years  Open Embedded and Yocto expertise since 7 years  Headquarters in Saint-Etienne  Agency in Marseilles  Embedded Linux expert for Cap’tronic program Developing an embedded video application on dual Linux + FPGA architecture 309/26/17 Presentation of CIO Systèmes Embarqués
  • 4. Developing an embedded video application on dual Linux + FPGA architecture 4  Responsible of Embedded Linux technologies in CIO Systèmes Embarqués  Embedded Linux trainer  30 years in embedded and Unix / Linux world  Developer and maintainer of kernel, u-boot ports on Arm boards  Developer and maintainer of Yocto layers 09/26/17 Presentation of the speaker
  • 5. Developing an embedded video application on dual Linux + FPGA architecture 509/26/17 The embedded video application ● High performance video acquisition, real time treatments and display ● Merge and synchronization of 2 images issued by 2 cameras ● Deployed in a device with safety constraints related to video ● Latency between real world and display < 200 ms ● Video must be available 7 s after Power On ● Device developed on an ARM architecture (CIO’s skills) → embedded Linux software environment
  • 6. Developing an embedded video application on dual Linux + FPGA architecture 609/26/17 Why use a FPGA ? ● Previous video applications developed on iMX.6 processor with gstreamer to manage video pipeline ● This architecture can’t be used here : – Safety certification problem on Linux – Real time performances (latency, jitter) ??? ● High performance IP for FPGA dedicated to video applications available ● We decided to share the application between Embedded Linux on ARM processor and FPGA – Video processing is done by the FPGA – Configuration, errors monitoring and utilities done by Embedded Linux distribution
  • 7. Developing an embedded video application on dual Linux + FPGA architecture 709/26/17 The hardware platform ● The choosen hardware platform is a PicoZed board mounted on a custom base board developed by CIO ● PicoZed = System On Module based on the Xilinx Zynq®-7000 All Programmable (AP) SoC ● Zynq 7000 offers a dual core ARM processor + FPGA in the same chip ● ARM processor is called Processing System (PS) ● FPGA is called Programmable Logic (PL)
  • 8. Developing an embedded video application on dual Linux + FPGA architecture 809/26/17 Linux software environment ● PicoZed Linux environment proposed with 2 options : – Petalinux is the Linux environment proposed by Xilinx – Wind River Pulsar Linux, a Yocto based environment ● CIO has great experience of OpenEmbedded and Yocto tools : – Petalinux quickly eliminated as Yocto is a de facto standard in Embedded Linux – Wind River Pulsar Linux evaluated : ● Rejected due to the presence of containerization in the solution. We did not want to loose time with this technology – We finally selected meta-xilinx layer and assembled it with other layers to build our Embedded Linux environment
  • 9. Developing an embedded video application on dual Linux + FPGA architecture 909/26/17 Linux software environment ● All necessary layers selected from OpenEmbedded Layer Index ● Layer coherency assured by repo tool ● Finally we have made a Yocto based build system tailored for the embedded distribution ● The embedded distribution is built by customizing Yocto recipes and creating new ones for in house applications ● A more complex Board Support Package due to interactions between PS and PL (detailed later)
  • 10. Developing an embedded video application on dual Linux + FPGA architecture 1009/26/17 FPGA developments ● FPGA developments made with Xilinx Vivado tool (Eclipse based)
  • 11. Developing an embedded video application on dual Linux + FPGA architecture 1109/26/17 FPGA developments ● FPGA engineer designs its IPs inside Vivado ● When the design is finished, the final VHDL code for the FPGA is generated ● But we don’t want to have 2 isolated parts : Embedded Linux distribution & logic design. AXI interface allow us to communicate between PS and PL. – AXI stream : dedicated to stream data – AXI ACP : allow copy data to cache memory (close to the processor) – AXI light : allow exchange of some data – AXI HP : allow access to the DDR and store data like images without bandwidth issues.
  • 12. Developing an embedded video application on dual Linux + FPGA architecture 1209/26/17 How can PS and PL interact ? ● It is possible to design hardware components in the PL that can be seen by the PS ● Potential use cases : – Add additional hardware resources for the embedded Linux distribution, normally not available on PS → extend PS capabilities ● Create an additional serial line – Use dedicated hardware to communicate between PL and PS ● Create GPIOs in the PL and make Embedded Linux use them to read / write logic data from / to the VHDL application – Allow dynamic customization of IPs ● Perform a specific crop on an image which can be changed from Linux (position, size).
  • 13. Developing an embedded video application on dual Linux + FPGA architecture 1309/26/17 Technically, how does it work ? ● We have seen – The application constraints – The selected hardware and software architecture – The tools ● But of does it work ?
  • 14. Developing an embedded video application on dual Linux + FPGA architecture 1409/26/17 Boot Mechanism ● PicoZed needs a First Stage Boot Loader (FSBL) before u-boot ● FSBL code is generated by Vivado according to the design – This code can be compiled inside Vivado or externally with and ARM toolchain ● FSBL then starts u-boot which in turn starts Linux ● The FPGA code (bitstream) must be loaded by FSBL or by u-boot – The FPGA can’t start alone – The VHDL code is reloaded at each boot → impact on boot time
  • 15. Developing an embedded video application on dual Linux + FPGA architecture 1509/26/17 Interactions between PS and PL ● The Xilinx Linux kernel (founder specific) has dedicated drivers for hardware resources implemented by PL and shared with PS ● These resources are appended to the device tree, thus making them available to Linux kernel ● Vivado automatically generates a pl.dtsi file that is included in the board device tree ● pl.dtsi reflects selection and design of hardware resources of the PL accessible to the PS
  • 16. Developing an embedded video application on dual Linux + FPGA architecture 1609/26/17 Interactions between PS and PL /*  * CAUTION: This file is automatically generated by Xilinx.  * Version: HSI 2016.4  * Today is: Fri Aug  4 16:29:54 2017 */ / { amba_pl: amba_pl { #address­cells = <1>; #size­cells = <1>; compatible = "simple­bus"; Ranges ; RS485_PL: serial@42c00000 { clock­names = "ref_clk"; clocks = <&clkc 0>; compatible = "xlnx,xps­uartlite­1.00.a"; current­speed = <115200>; device_type = "serial"; interrupt­parent = <&intc>; interrupts = <0 35 1>; port­number = <0>; reg = <0x42c00000 0x10000>; xlnx,baudrate = <0x2580>; xlnx,data­bits = <0x8>; xlnx,odd­parity = <0x0>; xlnx,s­axi­aclk­freq­hz­d = "50.0"; xlnx,use­parity = <0x0>; }; Additional serial line Link with Xilinx driver
  • 17. Developing an embedded video application on dual Linux + FPGA architecture 1709/26/17 Interactions between PS and PL … video_in_0_Status: gpio@41230000 { #gpio­cells = <2>; compatible = "xlnx,xps­gpio­1.00.a"; gpio­controller ; reg = <0x41230000 0x10000>; xlnx,all­inputs = <0x1>; xlnx,all­inputs­2 = <0x0>; xlnx,all­outputs = <0x0>; xlnx,all­outputs­2 = <0x0>; xlnx,dout­default = <0x00000000>; xlnx,dout­default­2 = <0x00000000>; xlnx,gpio­width = <0x5>; xlnx,gpio2­width = <0x20>; xlnx,interrupt­present = <0x0>; xlnx,is­dual = <0x0>; xlnx,tri­default = <0xFFFFFFFF>; xlnx,tri­default­2 = <0xFFFFFFFF>; }; }; }; Information towards PS Link with Xilinx driver
  • 18. Developing an embedded video application on dual Linux + FPGA architecture 1809/26/17 Device tree generation ● In fact, Vivado generates the whole device tree : – PS part through zynq­7000.dtsi – PL part through pl.dtsi – And the final system.dts that includes PS and PL part, + nodes customizations according to Vivado design ● Vivado covers PL but also parameters impacting PS ● Device tree must be rebuilt after each change in Vivado → automation of the workflow welcome – Development of dedicated Yocto recipes to manage generation and dispatch of all these files in Board Support Package dedicated recipes ● U-boot and device tree recipes impacted
  • 19. Developing an embedded video application on dual Linux + FPGA architecture 1909/26/17 Boot time optimization ● The requirement is to have the image completely stable at much 7 s after Power ON ● Tasks necessary before image : – FSBL – U-boot – Bitstream loading and FPGA programming – Kernel initialization – Userland startup (system V init) – Cameras initialization through spi communication – FPGA video IP configuration
  • 20. Developing an embedded video application on dual Linux + FPGA architecture 2009/26/17 Boot time optimization ● Misc techniques used to minimize image arrival time : – Activation of bootstage report feature of u-boot – Use of bootchart to identify where boot time is consumed during Linux start-up – U-boot optimization to reduce peripherals inits – Linux kernel optimization to reduce kernel size (media access time) and peripherals init – System console removal – Completely reorder init scripts to start video application as early as possible – Use of read only root file system to avoid file system checks and corrections (power off without halt) – Maximize spi speed on spi bus with camera ● Finally image is here and stable 5.6 s after Power On.
  • 21. Developing an embedded video application on dual Linux + FPGA architecture 2109/26/17 Consequences of safety requirements ● The design has been done so that the safety certification will impact only the FPGA – Linux developments not directly impacted by certification process ● But the software must be updated through IP communication over Ethernet ● As FPGA software is updated through Linux IP features, the installation & upgrade process must be secured to avoid potential hacking ● Installer and updater utilities use asymmetric cryptography mechanism to authenticate all software elements before installation / update
  • 22. Developing an embedded video application on dual Linux + FPGA architecture 2209/26/17 Conclusion ● At the beginning of the project, 2 major decisions : – Use a mixed design based on Embedded Linux + FPGA – Use meta-xilinx layer and assemble layers by ourself instead of standard solutions (Petalinux or Wind River Pulsar Linux) ● What are the results ?
  • 23. Developing an embedded video application on dual Linux + FPGA architecture 2309/26/17 Conclusion ● The main concerns regarding the dual architecture was about : – Splitted design – Communication between PS and PL – Kernel management of peripherals built in PL part ● Splitted design is a constraint but the advantages of using a FPGA are more important than the drawbacks ● AXI interface offers many solutions to implement communications between PS and PL ● Drivers available in Xilinx kernel + automatic generation of device tree make the peripherals designed in PL well supported by the kernel ● PL design make the final platform easily adaptive to new requirements – Ex : debug GPIOs useful only during development phase synthesized in the PL part then removed
  • 24. Developing an embedded video application on dual Linux + FPGA architecture 2409/26/17 Conclusion ● Using meta-xilinx and assembling them by ourselves with other layers from OE layers repository was a good choice – Good quality of meta-xilinx layer – We select exactly the layers we need – Finally we have a very well adapted distribution ● This was also possible because we have good skills on Yocto build tool and layers architecture and features.
  • 25. Developing an embedded video application on dual Linux + FPGA architecture 2509/26/17 Questions ? ● Thank you for your attention ● Time for questions