SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
Linux 4.6 em
Microcontroladores:
Um caso prático.
CPS | CERTI 2016
COPYRIGHT 2016 – Fundação CERTI
COPYRIGHT 2016 – Fundação CERTI
DISCLAIMER
The information in this presentation was
compiled from sources believed to be
reliable for informational purposes only.
Content includes opinions, presentations,
articles, hyperlinks or other third party
content (“Third Party Material”) that is not
intended to, nor constitutes an
endorsement by CERTI of the author or the
Third Party Materials. The content and views
within the Third Party Material are solely
those of the third party and do not reflect
the opinions of CERTI.
The opinions expressed in this presentation
and on the following slides are solely those
of the
presenter and not necessarily those of
CERTI. CERTI does not guarantee the
accuracy or
reliability of the information provided
herein.
Presentation Notes
WARM
UP
www.linkedin.com/in/bherrera
COPYRIGHT 2016 – Fundação CERTI
Present how Linux can be ported to
MCUs with low memory and low
storage how can it leverage the
MCU development environment
and avoid fragmentation(kind of).
Goal
BrunoMHerrera
WARM
UP
www.linkedin.com/in/bherrera
COPYRIGHT 2016 – Fundação CERTI
I’m a Computer Engeneer
I’m a Computer Enginere
I’m a Computer Engenere
I’m good with Computers ….
Who I Am
BrunoMHerrera
MCU
Chapter 1
Action
Chapter 4
Linux
Chapter 2
Wrap up
Chapter 5
WIP
Chapter 3
AG
EN
DA
COPYRIGHT 2016 – Fundação CERTI
COPYRIGHT 2016 – Fundação CERTI
Photo credit: Adam Greig via VisualHunt / CC BY-SA
MCU – Microcontroller Unit
“Microcontrollers are
designed for embedded
applications, in contrast to the
microprocessors used in
personal computers or other
general purpose applications
consisting of various discrete
chips.”
-Wikipedia
COPYRIGHT 2016 – Fundação CERTI
Microcontrollers
usually contain MPU
(memory protection
unit)
MMU-less
Reduced RAM <192k
Flash (ROM) <2Mb
ASP 2014 - $0.83
ASP 2015 - $0.65
*7 to 8 times in Brazil
http://www.icinsights.com/news/
bulletins/Microcontroller-Unit-
Shipments-Surge-But-Falling-Prices-
Sap-Sales-Growth/
Microcontrollers usually
contain from several to
dozens of general
purpose input/output
pins (GPIO). GPIO pins
are software
configurable to either
an input or an output
state.[1]
Microcontrollers
usually contain
several peripherals
integrated (U[S]ART,
ADC, USB, SDIO,
etc…)
Automation
Healthcare
Automotive
Aerospace
Wellness
Internet of Things
MCU - Traits
Small Footprint Low Price
ApplicationsSoCGPIO
COPYRIGHT 2016 – Fundação CERTI
BSP(board support package) / HAL
(hardware abstraction layer)
provided by the “Chip” vendor
Hardware dependent code, not
portable
No operating system
Hard to port applications
Hard to update on the field
Do not forget: it is all about
registers!!
without
addition; basic
and simple
Chapter 1 | MCU
Bare Metal
COPYRIGHT 2016 – Fundação CERTI
eLua www.eluaproject.net
Embedded power, driven by Lua
Quickly prototype and develop
embedded software applications
with the power of Lua and run
them on a wide range of
microcontroller architectures
MicroPython micropython.org
MicroPython is a lean and efficient
implementation of the Python 3
programming language that includes a
small subset of the Python standard
library and is optimised to run on
microcontrollers and in constrained
environments.
Netduino www.netduino.com
Netduino, an open-source
electronics platform using
the .NET Micro Framework.
Cont: JavaME,
Chapter 1 | MCU
Bare Metal
Not so bare
COPYRIGHT 2016 – Fundação CERTI
ATmega328P
14 Digital I/O Pins
6 PWM Digital I/O Pins
6 Analog Input Pins
32 KB Flash Memory of which 0.5 KB
used by bootloader
2KB SRAM
1KB EEPROM
16MHz Clock Speed
U$ 3.38
Chapter 1 | MCU
Arduino Uno
“The UNO is the best board to
get started with electronics
and coding. If this is your first
experience tinkering with the
platform, the UNO is the most
robust board you can start
playing with”
https://www.arduino.cc/en/Main/
ArduinoBoardUno
COPYRIGHT 2016 – Fundação CERTI
Real Time
Operating
System
FreeRTOS www.freertos.org
FreeRTOS is the market leading real
time operating system (or RTOS), and
the de-facto standard solution for
microcontrollers and small
microprocessors.
Nuttx nuttx.org
NuttX is a real-time operating system
(RTOS) with an emphasis on standards
compliance and small footprint. Scalable
from 8-bit to 32-bit microcontroller
environments, the primary governing
standards in NuttX are Posix and ANSI
standards.
Zypher www.zephyrproject.org
Zephyr Project is a small, scalable real-
time operating system for use on
resource-constrained systems supporting
multiple architectures.
Cont: Contiki (IoT), BROS, ChibiOs
Chapter 1 | MCU
RTOS
COPYRIGHT 2016 – Fundação CERTI
VxWorks windriver.com/products/vxworks
VxWorks is designed for use in embedded
systems requiring real-time, deterministic
performance and, in many cases, safety
and security certification, for industries,
such as aerospace and defense, medical
devices, industrial equipment, robotics,
energy, transportation, network
infrastructure, automotive, and consumer
electronics.[X]
Nucleus mentor.com/embedded-software/nucleus/
The Nucleus RTOS is designed for deeply
embedded systems applications
including consumer electronics, set-top
boxes, cellular phones, and other
portable and handheld devices. For
limited memory systems Nucleus RTOS
can be scaled down to a memory
footprint as small as 13 KB for both code
and data.
Cont: QNX, SAFERTOS,
Chapter 1 | MCU
RTO$
Real Time
Operating
System
COPYRIGHT 2016 – Fundação CERTI
“as one of key benefits of an MMU:
an operating system can use it to
protect against errant programs by
disallowing access to memory that
a particular program should not
have access to”
“Given the need for a high security
bar in IoT we try and design Brillo in
way that promotes a strong security
architecture in the final products.
I’m afraid if we offered a MMU-less
variant of Brillo we'd be promoting
a very insecure architecture, and for
that reason its not something we'd
consider.”
[Brillo Mailist]
Chapter 1 | MCU
MMU-less
WARNING:
No memory
management!
COPYRIGHT 2016 – Fundação CERTI
you-see-linux
www.uclinux.org
The Embedded Linux/
Microcontroller project is a port of
Linux to systems without a
Memory Management Unit
(MMU).
No elf support
Not in mainstream(2.6.x)
uClibc
Emcraft (Commercial and
Opensource)
https://github.com/
EmcraftSystems/linux-emcraft/
Chapter 1 | MCU
uClinux
COPYRIGHT 2016 – Fundação CERTI
Photo credit: Derek K. Miller via VisualHunt.com / CC BY-NC
Linux
“That's what makes
Linux so good: you put
in something, and that
effort multiplies. It's a
positive feedback
cycle.”
- Linus Torvalds
COPYRIGHT 2016 – Fundação CERTI
Linus was
wrong
Chapter 2 | Linux
History
https://groups.google.com/forum/#!msg/comp.os.minix/
dlNtH7RRrGA/SwRavCzVE7gJ
COPYRIGHT 2016 – Fundação CERTI
Video
Chapter 2 | Linux
History
The Story of Linux:
Commemorating 20 Years of the
Linux Operating System
COPYRIGHT 2016 – Fundação CERTI
Chapter 2 | Linux
History
1995
> BusyBox a collection of command
line utilies - Bruce Perens (1.44Mb)
Debian Installer
> MIPS
1996
> M68k, PPC
1998
> uClinux at m68k DragonBall on
3Com palm pilot
1999
> ARM
2000
> iPaq H3600 running X11
2005
> Nokia 770 Internet Tablet
running Maemo Linux
embedded
COPYRIGHT 2016 – Fundação CERTI
Chapter 2 | Linux
History
1995
> BusyBox a collection of command
line utilies - Bruce Perens (1.44Mb)
Debian Installer
> MIPS
1996
> M68k, PPC
1998
> uClinux at m68k DragonBall on
3Com palm pilot
1999
> ARM
2000
> iPaq H3600 running X11
2005
> Nokia 770 Internet Tablet
running Maemo Linux
embedded
COPYRIGHT 2016 – Fundação CERTI
Pros
Chapter 2 | Linux
Why Linux?
Strong Community / Big Players
contributing / Stable versions and
release cycles
Portable (ARM Cortex M3/M4
support is now mainstream)
POSIX Compliant
OSS Environment and Tools
Huge drivers support
XIP (execution in Place)
Free
COPYRIGHT 2016 – Fundação CERTI
Cons
Chapter 2 | Linux
Why not
Linux?
Big footprint (linux-tiny)
Latency / Not real time (linux-rt)
Bloated subsystems (procps,
printk, comand line parser)
Not designed for MCU : “The Linux
community is skeptical about
MCUs “[x]
Too many config parameters, hard
to find the optimal configuration
Do try this without and external
RAM (8Mb)
COPYRIGHT 2016 – Fundação CERTI
www.devicetree.org
The devicetree is a data structure
for describing hardware. Rather
than hard coding every detail of a
device into an operating system,
many aspects of the hardware can
be described in a data structure that
is passed to the operating system at
boot time.
The kernel no longer contains the
description of the hardware,
it is located in a separate binary: the
device tree blob
The Device Tree Blob is produced by
the compiler, and is
the binary that gets loaded by the
bootloader and parsed by
the kernel at boot time.
model = “TDC 2016 Linux Embarcado”;
Chapter 2 | Linux
Device Tree
COPYRIGHT 2016 – Fundação CERTI
www.devicetree.org
The devicetree is a data structure
for describing hardware. Rather
than hard coding every detail of a
device into an operating system,
many aspects of the hardware can
be described in a data structure that
is passed to the operating system at
boot time.
The kernel no longer contains the
description of the hardware,
it is located in a separate binary: the
device tree blob
The Device Tree Blob is produced by
the compiler, and is
the binary that gets loaded by the
bootloader and parsed by
the kernel at boot time.
model = “TDC 2016 Linux Embarcado”;
Chapter 2 | Linux
Device Tree
COPYRIGHT 2016 – Fundação CERTI
make menuconfig
Chapter 2 | Linux
KConfig
The configuration database is a
collection of configuration
options
organized in a tree structure
[Kernel Doc]
“Can't use strategy of manual
tuning(i.e.config options)
3.9 has about 13,000 options”
[X Tim Bird]
Start from one known
configuration
stm32_defconfig
Don’t Panic
COPYRIGHT 2016 – Fundação CERTI
Chapter 2 | Linux
BootLoader
Essentially, the boot loader should
provide (as a minimum) the
following:
1. Setup and initialize the RAM.
2. Initialize one serial port.
3. Detect the machine type.
4. Setup the kernel tagged list.
5. Load initramfs.
6. Call the kernel image.
https://www.kernel.org/doc/Documentation/arm/Booting
Run Lola Run
COPYRIGHT 2016 – Fundação CERTI
fast
Chapter 2 | Linux
BootLoader
Forget about u-Boot! It is big!
Directly load Linux kernel by
really small program
AFBoot (only works with XIP now)
Tiny Linux bootloader for the
STM32F429-Discovery
https://github.com/mcoquelin-
stm32/afboot-stm32
Bootloader + Kernel in less than
1sec. (I can prove)
COPYRIGHT 2016 – Fundação CERTI
Chapter 2 | Linux
BootLoader
Essentially, the boot loader should
provide (as a minimum) the
following:
1. Setup and initialize the RAM.
2. Initialize one serial port.
3. Detect the machine type.
4. Setup the kernel tagged list.
5. Load initramfs.
6. Call the kernel image.
https://www.kernel.org/doc/Documentation/arm/Booting
Eclipse
COPYRIGHT 2016 – Fundação CERTI
Chapter 3 | Wip
mainstream
STM32F429 support added to
mainstream kernel by Maxime
Coquelin at 2015
Peripherals already supported:
RCC
GPIO
RNG
UART
Ethernet
DMA
On Going:
USB
I2C
SDIO
WIP
COPYRIGHT 2016 – Fundação CERTI
Chapter 3 | Wip
mainstream
https://patchwork.kernel.org/
project/linux-arm-kernel/list/?
q=stm32
WIP
COPYRIGHT 2016 – Fundação CERTI
80386DX
32Bits MPU
1985
12 MHz to 40 MHz
FPU Co Processor 80387
STM32F429
32Bits MCU
??
Up to 180MHz
FPU
192Kb RAM
512Kb to 2Mb FLASH
MAC(Ethernet), SDIO, TFT, USB, SERIAL
tale of the tape
Clash of Titans
COPYRIGHT 2016 – Fundação CERTI
Chapter 4 | Action
Target
Action
COPYRIGHT 2016 – Fundação CERTI
Chapter 4 | Action
Tools
Toolchain
https://launchpad.net/gcc-arm-
embedded/4.9/4.9-2014-q4-major
sudo add-apt-repository ppa:terry.guo/
gcc-arm-embedded
sudo apt-get update
sudo apt-get install gcc-arm-none-eabi
Open OCD
git clone git://git.code.sf.net/p/openocd/
code openocd
cd openocd
git submodule init && git submodule
update && ./bootstrap && ./configure --
enable-stlink && make && sudo make
install
Action
COPYRIGHT 2016 – Fundação CERTI
Chapter 4 | Action
Talk is cheap…
git clone git://git.kernel.org/pub/scm/linux/
kernel/git/torvalds/linux.git
cd linux
make ARCH=arm CROSS_COMPILE=arm-
none-eabi- stm32_defconfig
make ARCH=arm CROSS_COMPILE=arm-
none-eabi-
Action
COPYRIGHT 2016 – Fundação CERTI
Chapter 4 | Action
COPYRIGHT 2016 – Fundação CERTI
Chapter 4 | Action
COPYRIGHT 2016 – Fundação CERTI
Chapter 4 | Action
COPYRIGHT 2016 – Fundação CERTI
Chapter 4 | Action
GPIO
What is a GPIO?
===============
A "General Purpose Input/Output" (GPIO) is
a flexible software-controlled
digital signal. They are provided from many
kinds of chip, and are familiar
to Linux developers working with
embedded and custom hardware. Each
GPIO
represents a bit connected to a particular
pin, or "ball" on Ball Grid Array
(BGA) packages. Board schematics show
which external hardware connects to
which GPIOs. Drivers can be written
generically, so that board setup code
passes such pin configuration data to
drivers.
https://www.kernel.org/doc/Documentation/gpio/gpio.txt
Action
COPYRIGHT 2016 – Fundação CERTI
Chapter 4 | Action
GPIO
The famous hello world “led blink”
at user space
gpio = (bank * 16) + pin
gpio = 6 * 16 + 14(LD4) = 110
cd /sys/class/gpio
echo 110 > export
echo out > gpio110/direction
echo 1 > gpio110/value
Action
COPYRIGHT 2016 – Fundação CERTI
Chapter 4 | Action
GPIO
The famous hello world “led blink”
at user space (cont)
while echo blink
> do
> echo 1 > gpio110/value; sleep 1
> echo 0 > gpio110/value; sleep 1
> done
Action
COPYRIGHT 2016 – Fundação CERTI
Chapter 4 | Action
LEDs
LED handling under Linux
========================
In its simplest form, the LED class
just allows control of LEDs from
userspace. LEDs appear in /sys/
class/leds/. The maximum
brightness of the
LED is defined in max_brightness
file. The brightness file will set the
brightness
of the LED (taking a value 0-
max_brightness). Most LEDs don't
have hardware
brightness support so will just be
turned on for non-zero brightness
settings.
https://www.kernel.org/doc/Documentation/leds/leds-class.txt
Action
COPYRIGHT 2016 – Fundação CERTI
Chapter 4 | Action
LEDs
The famous hello world “led blink”
using the DT
Action
COPYRIGHT 2016 – Fundação CERTI
Chapter 4 | Action
Optimization
The tip of the iceberg
./scripts/bloat-o-meterAction
COPYRIGHT 2016 – Fundação CERTI
Photo credit: Derek K. Miller via VisualHunt.com / CC BY-NC
Wrap Up
“People who are really
serious about software
should make their own
hardware”
- Alan Kay
COPYRIGHT 2016 – Fundação CERTI
Chapter 5 | Wrap Up
When developing your hardware
select components that are
supported (device drivers)
Linux has a lot of space for
optimization and tinyfication
Cannot run without external
RAM(yet)
Hardware is hard, so take care of
your design.
Try first in development boards
One size does not fit all! Linux may
not be the best option for your
case
Take away
COPYRIGHT 2016 – Fundação CERTI
References
https://en.wikipedia.org/wiki/Microcontroller
https://events.linuxfoundation.org/sites/events/files/slides/
petazzoni-device-tree-dummies.pdf
http://2net.co.uk/embedded-history
http://elinux.org/STM32
http://www.emcraft.com/stm32f429discovery/controlling-gpio-
from-linux-user-space
http://elinux.org/Kernel_Size_Tuning_Guide
COPYRIGHT 2016 – Fundação CERTI
Thanks!
Obrigado!
COPYRIGHT 2016 – Fundação CERTI
Sorteio
Good Luck!
Powered by
STMicroelectronics

Mais conteúdo relacionado

Mais procurados

Update on Video Conferencing
Update on Video ConferencingUpdate on Video Conferencing
Update on Video ConferencingVideoguy
 
RISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzakiRISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzakiKuniyasu Suzaki
 
VTI Learning Series Beyond the Convergence of Physical & Cyber Security
VTI Learning Series Beyond the Convergence of Physical & Cyber SecurityVTI Learning Series Beyond the Convergence of Physical & Cyber Security
VTI Learning Series Beyond the Convergence of Physical & Cyber SecurityShane Glenn
 
Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Mender.io
 
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...Kuniyasu Suzaki
 
Bloombase Spitfire KeyCastle Payment Systems Key Server Specifications
Bloombase Spitfire KeyCastle Payment Systems Key Server SpecificationsBloombase Spitfire KeyCastle Payment Systems Key Server Specifications
Bloombase Spitfire KeyCastle Payment Systems Key Server SpecificationsBloombase
 
Bloombase Spitfire KeyCastle Key Lifecycle Management Server Specifications
Bloombase Spitfire KeyCastle Key Lifecycle Management Server SpecificationsBloombase Spitfire KeyCastle Key Lifecycle Management Server Specifications
Bloombase Spitfire KeyCastle Key Lifecycle Management Server SpecificationsBloombase
 
Cisco VMDC Cloud Security 1.0 Design Guide
Cisco VMDC Cloud Security 1.0 Design GuideCisco VMDC Cloud Security 1.0 Design Guide
Cisco VMDC Cloud Security 1.0 Design GuideCisco Service Provider
 

Mais procurados (12)

Update on Video Conferencing
Update on Video ConferencingUpdate on Video Conferencing
Update on Video Conferencing
 
RISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzakiRISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzaki
 
VTI Learning Series Beyond the Convergence of Physical & Cyber Security
VTI Learning Series Beyond the Convergence of Physical & Cyber SecurityVTI Learning Series Beyond the Convergence of Physical & Cyber Security
VTI Learning Series Beyond the Convergence of Physical & Cyber Security
 
Security
SecuritySecurity
Security
 
IoT Meets Security
IoT Meets SecurityIoT Meets Security
IoT Meets Security
 
Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018
 
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
 
Bloombase Spitfire KeyCastle Payment Systems Key Server Specifications
Bloombase Spitfire KeyCastle Payment Systems Key Server SpecificationsBloombase Spitfire KeyCastle Payment Systems Key Server Specifications
Bloombase Spitfire KeyCastle Payment Systems Key Server Specifications
 
Bloombase Spitfire KeyCastle Key Lifecycle Management Server Specifications
Bloombase Spitfire KeyCastle Key Lifecycle Management Server SpecificationsBloombase Spitfire KeyCastle Key Lifecycle Management Server Specifications
Bloombase Spitfire KeyCastle Key Lifecycle Management Server Specifications
 
Cisco VMDC Cloud Security 1.0 Design Guide
Cisco VMDC Cloud Security 1.0 Design GuideCisco VMDC Cloud Security 1.0 Design Guide
Cisco VMDC Cloud Security 1.0 Design Guide
 
How PUF Technology is Securing Io
How PUF Technology is Securing IoHow PUF Technology is Securing Io
How PUF Technology is Securing Io
 
IoTivity: From Devices to the Cloud
IoTivity: From Devices to the CloudIoTivity: From Devices to the Cloud
IoTivity: From Devices to the Cloud
 

Destaque

TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...tdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favoritaTDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favoritatdc-globalcode
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com ArduínoTDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com Arduínotdc-globalcode
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - #NoEstimates do jeito errado
TDC2016SP - #NoEstimates do jeito erradoTDC2016SP - #NoEstimates do jeito errado
TDC2016SP - #NoEstimates do jeito erradotdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...tdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Métricas que importam!
TDC2016SP - Métricas que importam!TDC2016SP - Métricas que importam!
TDC2016SP - Métricas que importam!tdc-globalcode
 

Destaque (20)

TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favoritaTDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com ArduínoTDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com Arduíno
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - #NoEstimates do jeito errado
TDC2016SP - #NoEstimates do jeito erradoTDC2016SP - #NoEstimates do jeito errado
TDC2016SP - #NoEstimates do jeito errado
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
Testes em go
Testes em goTestes em go
Testes em go
 
Testing in go
Testing in goTesting in go
Testing in go
 
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Métricas que importam!
TDC2016SP - Métricas que importam!TDC2016SP - Métricas que importam!
TDC2016SP - Métricas que importam!
 

Semelhante a TDC2016SP - Trilha Linux Embarcado

如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备Rex Tsai
 
Software update for embedded systems
Software update for embedded systemsSoftware update for embedded systems
Software update for embedded systemsSZ Lin
 
Ap 06 4_10_simek
Ap 06 4_10_simekAp 06 4_10_simek
Ap 06 4_10_simekNguyen Vinh
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTStéphanie Roger
 
Supply Chain Security and Compliance for Embedded Devices & IoT
Supply Chain Security and Compliance for Embedded Devices & IoTSupply Chain Security and Compliance for Embedded Devices & IoT
Supply Chain Security and Compliance for Embedded Devices & IoTSource Code Control Limited
 
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019Codemotion
 
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...sparkfabrik
 
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
 
Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...
Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...
Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...Yoshitake Kobayashi
 
Coscup2018 itri android-in-cloud
Coscup2018 itri android-in-cloudCoscup2018 itri android-in-cloud
Coscup2018 itri android-in-cloudTian-Jian Wu
 
Study notes for CompTIA Certified Advanced Security Practitioner (ver2)
Study notes for CompTIA Certified Advanced Security Practitioner  (ver2)Study notes for CompTIA Certified Advanced Security Practitioner  (ver2)
Study notes for CompTIA Certified Advanced Security Practitioner (ver2)David Sweigert
 
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 projectsChristian Charreyre
 
Tsunami of Technologies. Are we prepared?
Tsunami of Technologies. Are we prepared?Tsunami of Technologies. Are we prepared?
Tsunami of Technologies. Are we prepared?msyukor
 
Bsp customization and porting of linux on arm cortex based i.mx6 processor wi...
Bsp customization and porting of linux on arm cortex based i.mx6 processor wi...Bsp customization and porting of linux on arm cortex based i.mx6 processor wi...
Bsp customization and porting of linux on arm cortex based i.mx6 processor wi...eSAT Publishing House
 
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP EcosystemWhat is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP Ecosystemsparkfabrik
 

Semelhante a TDC2016SP - Trilha Linux Embarcado (20)

如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备
 
Software update for embedded systems
Software update for embedded systemsSoftware update for embedded systems
Software update for embedded systems
 
Ap 06 4_10_simek
Ap 06 4_10_simekAp 06 4_10_simek
Ap 06 4_10_simek
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
 
How We Protected Our Router
How We Protected Our RouterHow We Protected Our Router
How We Protected Our Router
 
Supply Chain Security and Compliance for Embedded Devices & IoT
Supply Chain Security and Compliance for Embedded Devices & IoTSupply Chain Security and Compliance for Embedded Devices & IoT
Supply Chain Security and Compliance for Embedded Devices & IoT
 
Lecture 9
Lecture 9Lecture 9
Lecture 9
 
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
 
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
 
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...
 
Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...
Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...
Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...
 
Coscup2018 itri android-in-cloud
Coscup2018 itri android-in-cloudCoscup2018 itri android-in-cloud
Coscup2018 itri android-in-cloud
 
Study notes for CompTIA Certified Advanced Security Practitioner (ver2)
Study notes for CompTIA Certified Advanced Security Practitioner  (ver2)Study notes for CompTIA Certified Advanced Security Practitioner  (ver2)
Study notes for CompTIA Certified Advanced Security Practitioner (ver2)
 
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
 
IOT Exploitation
IOT Exploitation	IOT Exploitation
IOT Exploitation
 
Tsunami of Technologies. Are we prepared?
Tsunami of Technologies. Are we prepared?Tsunami of Technologies. Are we prepared?
Tsunami of Technologies. Are we prepared?
 
Bsp customization and porting of linux on arm cortex based i.mx6 processor wi...
Bsp customization and porting of linux on arm cortex based i.mx6 processor wi...Bsp customization and porting of linux on arm cortex based i.mx6 processor wi...
Bsp customization and porting of linux on arm cortex based i.mx6 processor wi...
 
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP EcosystemWhat is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
 
Linux internals v4
Linux internals v4Linux internals v4
Linux internals v4
 
Advancement on embedded linux-v2
Advancement on embedded linux-v2Advancement on embedded linux-v2
Advancement on embedded linux-v2
 

Mais de tdc-globalcode

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadetdc-globalcode
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...tdc-globalcode
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucessotdc-globalcode
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPAtdc-globalcode
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinotdc-globalcode
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...tdc-globalcode
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicestdc-globalcode
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publicatdc-globalcode
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#tdc-globalcode
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocustdc-globalcode
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?tdc-globalcode
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golangtdc-globalcode
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QAtdc-globalcode
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciatdc-globalcode
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Servicetdc-globalcode
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETtdc-globalcode
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8tdc-globalcode
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...tdc-globalcode
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#tdc-globalcode
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Coretdc-globalcode
 

Mais de tdc-globalcode (20)

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devices
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocus
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golang
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
 

Último

USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
FILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinoFILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinojohnmickonozaleda
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 

Último (20)

USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
FILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinoFILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipino
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 

TDC2016SP - Trilha Linux Embarcado

  • 1. Linux 4.6 em Microcontroladores: Um caso prático. CPS | CERTI 2016 COPYRIGHT 2016 – Fundação CERTI
  • 2. COPYRIGHT 2016 – Fundação CERTI DISCLAIMER The information in this presentation was compiled from sources believed to be reliable for informational purposes only. Content includes opinions, presentations, articles, hyperlinks or other third party content (“Third Party Material”) that is not intended to, nor constitutes an endorsement by CERTI of the author or the Third Party Materials. The content and views within the Third Party Material are solely those of the third party and do not reflect the opinions of CERTI. The opinions expressed in this presentation and on the following slides are solely those of the presenter and not necessarily those of CERTI. CERTI does not guarantee the accuracy or reliability of the information provided herein. Presentation Notes
  • 3. WARM UP www.linkedin.com/in/bherrera COPYRIGHT 2016 – Fundação CERTI Present how Linux can be ported to MCUs with low memory and low storage how can it leverage the MCU development environment and avoid fragmentation(kind of). Goal BrunoMHerrera
  • 4. WARM UP www.linkedin.com/in/bherrera COPYRIGHT 2016 – Fundação CERTI I’m a Computer Engeneer I’m a Computer Enginere I’m a Computer Engenere I’m good with Computers …. Who I Am BrunoMHerrera
  • 5. MCU Chapter 1 Action Chapter 4 Linux Chapter 2 Wrap up Chapter 5 WIP Chapter 3 AG EN DA COPYRIGHT 2016 – Fundação CERTI
  • 6. COPYRIGHT 2016 – Fundação CERTI Photo credit: Adam Greig via VisualHunt / CC BY-SA MCU – Microcontroller Unit “Microcontrollers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications consisting of various discrete chips.” -Wikipedia
  • 7. COPYRIGHT 2016 – Fundação CERTI Microcontrollers usually contain MPU (memory protection unit) MMU-less Reduced RAM <192k Flash (ROM) <2Mb ASP 2014 - $0.83 ASP 2015 - $0.65 *7 to 8 times in Brazil http://www.icinsights.com/news/ bulletins/Microcontroller-Unit- Shipments-Surge-But-Falling-Prices- Sap-Sales-Growth/ Microcontrollers usually contain from several to dozens of general purpose input/output pins (GPIO). GPIO pins are software configurable to either an input or an output state.[1] Microcontrollers usually contain several peripherals integrated (U[S]ART, ADC, USB, SDIO, etc…) Automation Healthcare Automotive Aerospace Wellness Internet of Things MCU - Traits Small Footprint Low Price ApplicationsSoCGPIO
  • 8. COPYRIGHT 2016 – Fundação CERTI BSP(board support package) / HAL (hardware abstraction layer) provided by the “Chip” vendor Hardware dependent code, not portable No operating system Hard to port applications Hard to update on the field Do not forget: it is all about registers!! without addition; basic and simple Chapter 1 | MCU Bare Metal
  • 9. COPYRIGHT 2016 – Fundação CERTI eLua www.eluaproject.net Embedded power, driven by Lua Quickly prototype and develop embedded software applications with the power of Lua and run them on a wide range of microcontroller architectures MicroPython micropython.org MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments. Netduino www.netduino.com Netduino, an open-source electronics platform using the .NET Micro Framework. Cont: JavaME, Chapter 1 | MCU Bare Metal Not so bare
  • 10. COPYRIGHT 2016 – Fundação CERTI ATmega328P 14 Digital I/O Pins 6 PWM Digital I/O Pins 6 Analog Input Pins 32 KB Flash Memory of which 0.5 KB used by bootloader 2KB SRAM 1KB EEPROM 16MHz Clock Speed U$ 3.38 Chapter 1 | MCU Arduino Uno “The UNO is the best board to get started with electronics and coding. If this is your first experience tinkering with the platform, the UNO is the most robust board you can start playing with” https://www.arduino.cc/en/Main/ ArduinoBoardUno
  • 11. COPYRIGHT 2016 – Fundação CERTI Real Time Operating System FreeRTOS www.freertos.org FreeRTOS is the market leading real time operating system (or RTOS), and the de-facto standard solution for microcontrollers and small microprocessors. Nuttx nuttx.org NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards. Zypher www.zephyrproject.org Zephyr Project is a small, scalable real- time operating system for use on resource-constrained systems supporting multiple architectures. Cont: Contiki (IoT), BROS, ChibiOs Chapter 1 | MCU RTOS
  • 12. COPYRIGHT 2016 – Fundação CERTI VxWorks windriver.com/products/vxworks VxWorks is designed for use in embedded systems requiring real-time, deterministic performance and, in many cases, safety and security certification, for industries, such as aerospace and defense, medical devices, industrial equipment, robotics, energy, transportation, network infrastructure, automotive, and consumer electronics.[X] Nucleus mentor.com/embedded-software/nucleus/ The Nucleus RTOS is designed for deeply embedded systems applications including consumer electronics, set-top boxes, cellular phones, and other portable and handheld devices. For limited memory systems Nucleus RTOS can be scaled down to a memory footprint as small as 13 KB for both code and data. Cont: QNX, SAFERTOS, Chapter 1 | MCU RTO$ Real Time Operating System
  • 13. COPYRIGHT 2016 – Fundação CERTI “as one of key benefits of an MMU: an operating system can use it to protect against errant programs by disallowing access to memory that a particular program should not have access to” “Given the need for a high security bar in IoT we try and design Brillo in way that promotes a strong security architecture in the final products. I’m afraid if we offered a MMU-less variant of Brillo we'd be promoting a very insecure architecture, and for that reason its not something we'd consider.” [Brillo Mailist] Chapter 1 | MCU MMU-less WARNING: No memory management!
  • 14. COPYRIGHT 2016 – Fundação CERTI you-see-linux www.uclinux.org The Embedded Linux/ Microcontroller project is a port of Linux to systems without a Memory Management Unit (MMU). No elf support Not in mainstream(2.6.x) uClibc Emcraft (Commercial and Opensource) https://github.com/ EmcraftSystems/linux-emcraft/ Chapter 1 | MCU uClinux
  • 15. COPYRIGHT 2016 – Fundação CERTI Photo credit: Derek K. Miller via VisualHunt.com / CC BY-NC Linux “That's what makes Linux so good: you put in something, and that effort multiplies. It's a positive feedback cycle.” - Linus Torvalds
  • 16. COPYRIGHT 2016 – Fundação CERTI Linus was wrong Chapter 2 | Linux History https://groups.google.com/forum/#!msg/comp.os.minix/ dlNtH7RRrGA/SwRavCzVE7gJ
  • 17. COPYRIGHT 2016 – Fundação CERTI Video Chapter 2 | Linux History The Story of Linux: Commemorating 20 Years of the Linux Operating System
  • 18. COPYRIGHT 2016 – Fundação CERTI Chapter 2 | Linux History 1995 > BusyBox a collection of command line utilies - Bruce Perens (1.44Mb) Debian Installer > MIPS 1996 > M68k, PPC 1998 > uClinux at m68k DragonBall on 3Com palm pilot 1999 > ARM 2000 > iPaq H3600 running X11 2005 > Nokia 770 Internet Tablet running Maemo Linux embedded
  • 19. COPYRIGHT 2016 – Fundação CERTI Chapter 2 | Linux History 1995 > BusyBox a collection of command line utilies - Bruce Perens (1.44Mb) Debian Installer > MIPS 1996 > M68k, PPC 1998 > uClinux at m68k DragonBall on 3Com palm pilot 1999 > ARM 2000 > iPaq H3600 running X11 2005 > Nokia 770 Internet Tablet running Maemo Linux embedded
  • 20. COPYRIGHT 2016 – Fundação CERTI Pros Chapter 2 | Linux Why Linux? Strong Community / Big Players contributing / Stable versions and release cycles Portable (ARM Cortex M3/M4 support is now mainstream) POSIX Compliant OSS Environment and Tools Huge drivers support XIP (execution in Place) Free
  • 21. COPYRIGHT 2016 – Fundação CERTI Cons Chapter 2 | Linux Why not Linux? Big footprint (linux-tiny) Latency / Not real time (linux-rt) Bloated subsystems (procps, printk, comand line parser) Not designed for MCU : “The Linux community is skeptical about MCUs “[x] Too many config parameters, hard to find the optimal configuration Do try this without and external RAM (8Mb)
  • 22. COPYRIGHT 2016 – Fundação CERTI www.devicetree.org The devicetree is a data structure for describing hardware. Rather than hard coding every detail of a device into an operating system, many aspects of the hardware can be described in a data structure that is passed to the operating system at boot time. The kernel no longer contains the description of the hardware, it is located in a separate binary: the device tree blob The Device Tree Blob is produced by the compiler, and is the binary that gets loaded by the bootloader and parsed by the kernel at boot time. model = “TDC 2016 Linux Embarcado”; Chapter 2 | Linux Device Tree
  • 23. COPYRIGHT 2016 – Fundação CERTI www.devicetree.org The devicetree is a data structure for describing hardware. Rather than hard coding every detail of a device into an operating system, many aspects of the hardware can be described in a data structure that is passed to the operating system at boot time. The kernel no longer contains the description of the hardware, it is located in a separate binary: the device tree blob The Device Tree Blob is produced by the compiler, and is the binary that gets loaded by the bootloader and parsed by the kernel at boot time. model = “TDC 2016 Linux Embarcado”; Chapter 2 | Linux Device Tree
  • 24. COPYRIGHT 2016 – Fundação CERTI make menuconfig Chapter 2 | Linux KConfig The configuration database is a collection of configuration options organized in a tree structure [Kernel Doc] “Can't use strategy of manual tuning(i.e.config options) 3.9 has about 13,000 options” [X Tim Bird] Start from one known configuration stm32_defconfig Don’t Panic
  • 25. COPYRIGHT 2016 – Fundação CERTI Chapter 2 | Linux BootLoader Essentially, the boot loader should provide (as a minimum) the following: 1. Setup and initialize the RAM. 2. Initialize one serial port. 3. Detect the machine type. 4. Setup the kernel tagged list. 5. Load initramfs. 6. Call the kernel image. https://www.kernel.org/doc/Documentation/arm/Booting Run Lola Run
  • 26. COPYRIGHT 2016 – Fundação CERTI fast Chapter 2 | Linux BootLoader Forget about u-Boot! It is big! Directly load Linux kernel by really small program AFBoot (only works with XIP now) Tiny Linux bootloader for the STM32F429-Discovery https://github.com/mcoquelin- stm32/afboot-stm32 Bootloader + Kernel in less than 1sec. (I can prove)
  • 27. COPYRIGHT 2016 – Fundação CERTI Chapter 2 | Linux BootLoader Essentially, the boot loader should provide (as a minimum) the following: 1. Setup and initialize the RAM. 2. Initialize one serial port. 3. Detect the machine type. 4. Setup the kernel tagged list. 5. Load initramfs. 6. Call the kernel image. https://www.kernel.org/doc/Documentation/arm/Booting Eclipse
  • 28. COPYRIGHT 2016 – Fundação CERTI Chapter 3 | Wip mainstream STM32F429 support added to mainstream kernel by Maxime Coquelin at 2015 Peripherals already supported: RCC GPIO RNG UART Ethernet DMA On Going: USB I2C SDIO WIP
  • 29. COPYRIGHT 2016 – Fundação CERTI Chapter 3 | Wip mainstream https://patchwork.kernel.org/ project/linux-arm-kernel/list/? q=stm32 WIP
  • 30. COPYRIGHT 2016 – Fundação CERTI 80386DX 32Bits MPU 1985 12 MHz to 40 MHz FPU Co Processor 80387 STM32F429 32Bits MCU ?? Up to 180MHz FPU 192Kb RAM 512Kb to 2Mb FLASH MAC(Ethernet), SDIO, TFT, USB, SERIAL tale of the tape Clash of Titans
  • 31. COPYRIGHT 2016 – Fundação CERTI Chapter 4 | Action Target Action
  • 32. COPYRIGHT 2016 – Fundação CERTI Chapter 4 | Action Tools Toolchain https://launchpad.net/gcc-arm- embedded/4.9/4.9-2014-q4-major sudo add-apt-repository ppa:terry.guo/ gcc-arm-embedded sudo apt-get update sudo apt-get install gcc-arm-none-eabi Open OCD git clone git://git.code.sf.net/p/openocd/ code openocd cd openocd git submodule init && git submodule update && ./bootstrap && ./configure -- enable-stlink && make && sudo make install Action
  • 33. COPYRIGHT 2016 – Fundação CERTI Chapter 4 | Action Talk is cheap… git clone git://git.kernel.org/pub/scm/linux/ kernel/git/torvalds/linux.git cd linux make ARCH=arm CROSS_COMPILE=arm- none-eabi- stm32_defconfig make ARCH=arm CROSS_COMPILE=arm- none-eabi- Action
  • 34. COPYRIGHT 2016 – Fundação CERTI Chapter 4 | Action
  • 35. COPYRIGHT 2016 – Fundação CERTI Chapter 4 | Action
  • 36. COPYRIGHT 2016 – Fundação CERTI Chapter 4 | Action
  • 37. COPYRIGHT 2016 – Fundação CERTI Chapter 4 | Action GPIO What is a GPIO? =============== A "General Purpose Input/Output" (GPIO) is a flexible software-controlled digital signal. They are provided from many kinds of chip, and are familiar to Linux developers working with embedded and custom hardware. Each GPIO represents a bit connected to a particular pin, or "ball" on Ball Grid Array (BGA) packages. Board schematics show which external hardware connects to which GPIOs. Drivers can be written generically, so that board setup code passes such pin configuration data to drivers. https://www.kernel.org/doc/Documentation/gpio/gpio.txt Action
  • 38. COPYRIGHT 2016 – Fundação CERTI Chapter 4 | Action GPIO The famous hello world “led blink” at user space gpio = (bank * 16) + pin gpio = 6 * 16 + 14(LD4) = 110 cd /sys/class/gpio echo 110 > export echo out > gpio110/direction echo 1 > gpio110/value Action
  • 39. COPYRIGHT 2016 – Fundação CERTI Chapter 4 | Action GPIO The famous hello world “led blink” at user space (cont) while echo blink > do > echo 1 > gpio110/value; sleep 1 > echo 0 > gpio110/value; sleep 1 > done Action
  • 40. COPYRIGHT 2016 – Fundação CERTI Chapter 4 | Action LEDs LED handling under Linux ======================== In its simplest form, the LED class just allows control of LEDs from userspace. LEDs appear in /sys/ class/leds/. The maximum brightness of the LED is defined in max_brightness file. The brightness file will set the brightness of the LED (taking a value 0- max_brightness). Most LEDs don't have hardware brightness support so will just be turned on for non-zero brightness settings. https://www.kernel.org/doc/Documentation/leds/leds-class.txt Action
  • 41. COPYRIGHT 2016 – Fundação CERTI Chapter 4 | Action LEDs The famous hello world “led blink” using the DT Action
  • 42. COPYRIGHT 2016 – Fundação CERTI Chapter 4 | Action Optimization The tip of the iceberg ./scripts/bloat-o-meterAction
  • 43. COPYRIGHT 2016 – Fundação CERTI Photo credit: Derek K. Miller via VisualHunt.com / CC BY-NC Wrap Up “People who are really serious about software should make their own hardware” - Alan Kay
  • 44. COPYRIGHT 2016 – Fundação CERTI Chapter 5 | Wrap Up When developing your hardware select components that are supported (device drivers) Linux has a lot of space for optimization and tinyfication Cannot run without external RAM(yet) Hardware is hard, so take care of your design. Try first in development boards One size does not fit all! Linux may not be the best option for your case Take away
  • 45. COPYRIGHT 2016 – Fundação CERTI References https://en.wikipedia.org/wiki/Microcontroller https://events.linuxfoundation.org/sites/events/files/slides/ petazzoni-device-tree-dummies.pdf http://2net.co.uk/embedded-history http://elinux.org/STM32 http://www.emcraft.com/stm32f429discovery/controlling-gpio- from-linux-user-space http://elinux.org/Kernel_Size_Tuning_Guide
  • 46. COPYRIGHT 2016 – Fundação CERTI Thanks! Obrigado!
  • 47. COPYRIGHT 2016 – Fundação CERTI Sorteio Good Luck! Powered by STMicroelectronics