From 0fef5a870e748d47ef1992b1ba88834551881515 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Sun, 3 Mar 2019 10:38:53 +0100 Subject: Installfest 2019: Nuttx na STM32 --- 2019-installfest/nuttx-stm23/NuttX_logo.png | Bin 0 -> 4961 bytes .../nuttx-stm23/STM32_Blue_Pill_perspective.jpg | Bin 0 -> 2148096 bytes 2019-installfest/nuttx-stm23/makefile | 10 ++ 2019-installfest/nuttx-stm23/pres.pdf | Bin 0 -> 2307449 bytes 2019-installfest/nuttx-stm23/pres.tex | 186 +++++++++++++++++++++ 5 files changed, 196 insertions(+) create mode 100644 2019-installfest/nuttx-stm23/NuttX_logo.png create mode 100644 2019-installfest/nuttx-stm23/STM32_Blue_Pill_perspective.jpg create mode 100644 2019-installfest/nuttx-stm23/makefile create mode 100644 2019-installfest/nuttx-stm23/pres.pdf create mode 100644 2019-installfest/nuttx-stm23/pres.tex diff --git a/2019-installfest/nuttx-stm23/NuttX_logo.png b/2019-installfest/nuttx-stm23/NuttX_logo.png new file mode 100644 index 0000000..360e657 Binary files /dev/null and b/2019-installfest/nuttx-stm23/NuttX_logo.png differ diff --git a/2019-installfest/nuttx-stm23/STM32_Blue_Pill_perspective.jpg b/2019-installfest/nuttx-stm23/STM32_Blue_Pill_perspective.jpg new file mode 100644 index 0000000..a48f212 Binary files /dev/null and b/2019-installfest/nuttx-stm23/STM32_Blue_Pill_perspective.jpg differ diff --git a/2019-installfest/nuttx-stm23/makefile b/2019-installfest/nuttx-stm23/makefile new file mode 100644 index 0000000..7b97a99 --- /dev/null +++ b/2019-installfest/nuttx-stm23/makefile @@ -0,0 +1,10 @@ +FILE=pres + +$(FILE).pdf: $(FILE).tex $(patsubst %.svg,%.pdf,$(wildcard *.svg)) + pdflatex -shell-escape $< + +%.pdf: %.svg + inkscape -D -z --file=$< --export-pdf=$@ --export-latex + +clean: + ls | grep -v -E "($(FILE).tex|makefile|scheme|svg|png|jpg|eps)$$" | xargs rm -rf diff --git a/2019-installfest/nuttx-stm23/pres.pdf b/2019-installfest/nuttx-stm23/pres.pdf new file mode 100644 index 0000000..6dc878b Binary files /dev/null and b/2019-installfest/nuttx-stm23/pres.pdf differ diff --git a/2019-installfest/nuttx-stm23/pres.tex b/2019-installfest/nuttx-stm23/pres.tex new file mode 100644 index 0000000..310acef --- /dev/null +++ b/2019-installfest/nuttx-stm23/pres.tex @@ -0,0 +1,186 @@ +\documentclass[aspectratio=169]{beamer} +\usetheme{metropolis} +\usepackage{lmodern} +\usepackage[czech]{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{graphicx} +\usepackage{wrapfig} +\usepackage{color} +\usepackage{mathtools} +\usepackage{hyperref} +\usepackage{epstopdf} +\usepackage{amsmath} +\usepackage{minted} +\hypersetup{ + colorlinks, + citecolor=black, + filecolor=black, + linkcolor=black, + urlcolor=black +} +\usepackage{pdflscape} +\definecolor{omnia}{rgb}{0, 0.635, 0.886} + +\title{Nuttx na STM32} +\author{Karel Kočí} +\date{3.3.2018} + +\begin{document} + +\frame{\titlepage} + +\begin{frame}[fragile] + \frametitle{NuttX?} + \includegraphics[width=60px]{NuttX_logo.png} + \begin{itemize} + \item RTOS pro 8-bit až 32-bit + \item Vyvíjen Gregory Nuttem + \item Poprvé vydán v roce 2007 + \item Posix a ANSI standardy + podobné API jako VxWorks + \item Dobré vrstvení (arch, board, config, app / lower, upper drivers) + \item Open-source + \end{itemize} + \url{https://nuttx.org} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Proč?} + \begin{itemize} + \item Posix a standardní API + \item Jednotná implementace + \item Velký výběr z driverů + \item Easy to hack + \item Dobře dokumentovaný kód + \item Dobře konfigurovatelný + \item Široká podpora architektur i prototypových desek + \item Podpora ELF + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Na čem?} + \begin{columns}[T] + \begin{column}[T]{5cm} + stm32f103-minimum + + (Blue Pill) + \begin{itemize} + \item STM32F103C8 + \item Flash: 64KB (128KB) + \item RAM: 20KB + \item Clock: 72MHz + \item Micro-USB, LED + \item Cena: \textasciitilde 50Kč + \end{itemize} + \end{column} + \begin{column}[T]{5cm} + \includegraphics[width=6cm]{STM32_Blue_Pill_perspective.jpg} + \end{column} + \end{columns} + \vspace{0.5cm} + + \url{https://wiki.stm32duino.com/index.php?title=Blue_Pill} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Co potřebujeme?} + \begin{itemize} + \item Blue Pill + \item ST-link (v2) + \item USB to TTL (serial cable) + \end{itemize} + + \begin{itemize} + \item NuttX (\url{https://bitbucket.org/nuttx/nuttx}) + \item NuttX apps (\url{https://bitbucket.org/nuttx/apps}) + \item Kconfig (NuttX tools: \url{https://bitbucket.org/nuttx/tools}) + \item Toolchain: arm-none-eabi (\url{https://crosstool-ng.github.io/}) + \item OpenOCD + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Clone me.. tool me..} + \begin{verbatim} +git clone https://bitbucket.org/nuttx/nuttx +git clone https://bitbucket.org/nuttx/apps +git clone https://bitbucket.org/nuttx/tools +\end{verbatim} + + \begin{verbatim} +cd tools/kconfig-frontends +autoreconf -fi +./configure --disable-shared --enable-static \ + --enable-frontends=kconf,conf,mconf \ + --prefix=$HOME/.local +make install +\end{verbatim} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Konfigurace a build} + \begin{enumerate} + \item Vygeneruj výchozí konfiguraci + \item Použij mconf pro doladění + \end{enumerate} + + \begin{verbatim} +./tools/configure.sh stm32f103-minimum/nsh +make menuconfig +\end{verbatim} + + \begin{verbatim} +make -j$(nproc) +\end{verbatim} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Nahrání do pilulky} + + \begin{verbatim} +openocd -f /usr/share/openocd/scripts/interface/stlink-v2.cfg \ + -f /usr/share/openocd/scripts/target/stm32f1x.cfg + +telnet localhost 4444 +> reset halt +> program nuttx.bin 0x08000000 verify +> reset run +\end{verbatim} + + \begin{verbatim} +NuttShell (NSH) +nsh> +\end{verbatim} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Vlastní aplikace} + Přečtěte si: apps/README.txt (Předvedu třetí metodu) +\end{frame} + +\begin{frame}[fragile] + \frametitle{Dokumentace k přečtení} + \begin{enumerate} + \item nuttx/configs/stm32f103-minimum/README.txt + \item nuttx/Documentation/NuttxUserGuide.html + \item nuttx/Documentation/NuttShell.html + \item nuttx/Documentation/NuttxPortingGuide.html + \end{enumerate} +\end{frame} + +\begin{frame} + \Large Děkuji za pozornost. + + \url{git.cynerd.cz} +\end{frame} + +{ +\setbeamercolor{background canvas}{bg=omnia} +\begin{frame} + \pagecolor{yellow!30!orange} + \center \color{white} \Huge play.turris.cz +\end{frame} +} + +\end{document} -- cgit v1.2.3