Monthly Archives: February 2019

LaTeX: Marko und Umgebungen / Macro and Environments

Makros

Overleaf: Commands
Latex typesetting is made by using special tags or commands that provide a handful of ways to format your document. Sometimes standard commands are not enough to fulfil some specific needs, in such cases new commands can be defined and this article explains how.

Einführung in das Textsatzsystem LATEX – Komplexe Makros und Befehle

Plain TeX

\def<Befehlsname><Argument(e)>{<Befehlsdefinition>}
\let<neuer Befehlsname><alter Befehlsname>

\def\mymakro#1#2{Makro mit zwei Argumenten #1 und #2}
let\newmakro\oldmakro

LaTeX 2

\(re)newcommand{<Befehlsname>}
  [<Anzahl der Argumente>]
  [<Default für erstes (optionales) Argument>]
  {<Befehlsdefinition>}

\newenvironment{<Umgebungsname>}
  [<Anzahl der Argumente>]
  [<Default für erstes (optionales) Argument>]
  {<Definition Code vor Umgebung>}
  {<Definition Code nach Umgebung>}

LaTeX 3

Mit Paket xparse verfügbar:
\NewDocumentCommand, \RenewDocumentCommand, \NewDocumentEnvironment, ...

\NewDocumentCommand{<Befehlsname>}
  {<Argumentstrukturi}
  {<Definitioni}

Einfache Makros in TEX und LATEX (PDF)

Plain TeX

\def\name{definition}
\def\name#1{definition, die #1 benutzt}
\def\name#1#2{definition, die #1 und #2 benutzt} % bis #9
\def\name zkette#1zkette#2zkette {definition, die #1 und #2 benutzt}

Ohne Parameter

\def\hrz{Hochschulrechenzentrum (HRZ)}

Vortext \hrz Nachtext
Vortext Hochschulrechenzentrum (HRZ)Nachtext (ohne Abstand)

Vortext \hrz\ Nachtext
Vortext \hrz{} Nachtext
Vortext {\hrz} Nachtext
Vortext Hochschulrechenzentrum (HRZ) Nachtext (mit Abstand)

Mit mehreren Parametern

% Makro bild
% #1 : Grafikdatei
% #2 : Bildunterschrift
% #3 : Verweis-Label
\def\bild#1#2#3{%
\begin{figure}[htp]
\centering
\includegraphics{#1}
\vspace{0.5cm}
\caption{#2}\label{#3}
\end{figure}
}

\bild{template-1.png}{Eine Kr¨ote oder ein Frosch}{fig:1}

Eingabemuster

% Makro ganzwichtig
% #1 : Farbe
% #2 : Text
\def\ganzwichtig(#1 in #2){\fbox{\textcolor{#2}{#1}}}
% .................................
% Makro referenz
% #1 : Gattung (Abbildung, Tabelle)
% #2 : Verweisziel
\def\referenz#1#2{#1~\ref{#2} auf Seite~\pageref{#2} }

Das ist \wichtig{neu} und das \ganzwichtig(ganz neu in red).
Siehe \referenz{Abbildung}{fig:1}

LaTeX-Art

\newcommand{\name}{definition}
\newcommand{\name}[1]{definition, die #1 benutzt}
\newcommand{\name}[2]{definition, die #1 und #2 benutzt} % bis #9

\renewcommand       (Re-Definition)
\providenewcommand  (Re-Definition oder Neu-Definition)
\newcommand*
\renewcommand*
\providenewcommand*

Ohne Parameter

\newcommand{\HRZ}{Hochschulrechenzentrum (HRZ)}

Vortext \hrz Nachtext
Vortext Hochschulrechenzentrum (HRZ)Nachtext (ohne Abstand)

Vortext \hrz\ Nachtext
Vortext \hrz{} Nachtext
Vortext {\hrz} Nachtext
Vortext Hochschulrechenzentrum (HRZ) Nachtext (mit Abstand)

Mit mehreren Parametern

% Makro Bild
% #1 : Grafikdatei
% #2 : Bildunterschrift
% #3 : Verweis-Label
\newcommand{\Bild}[3]{%
\begin{figure}[htp]
\centering
\includegraphics{#1}
\vspace{0.5cm}
\caption{#2}\label{#3}
\end{figure}
}

\Bild{template-2.png}{Ein Waldsee}{fig:2}

Eingabemuster – so einfach geht das in LATEX nicht

% Makro Ganzwichtig
% #1 : Farbe
% #2 : Text
\newcommand{\Ganzwichtig}[2]{\fbox{\textcolor{#1}{#2}}}

Das ist \WICHTIG{neu} und das \Ganzwichtig{red}{ganz neu}.
Siehe \Referenz{Abbildung}{fig:2}

Interne Makros

Was machen eigentlich \makeatletter und \makeatother?

LaTeX 2e

@ für interne Makros

\makeatletter % setzt Kategorie-Code von @ auf 11
<Code mit Befehlen, die @ im Namen haben>
\makeatother % setzt Kategorie-Code von @ auf 12

\makeatletter
\def\name#1{\gdef\@name{#1}}
\makeatother

LaTeX 3

: und _ für interne Makros

\usepackage{expl3}
\ExplSyntaxOn
[...]
\ExplSyntaxOff

Umgebungen

What are LaTeX “environments”
While TeX makes direct provision for commands, LaTeX adds a concept of “environment”; environments perform an action on a block (of something or other) rather than than just doing something at one place in your document.

Overleaf: Environments
Environments are used to format blocks of text in a LATEX documents. This article explains how to use environments and how to define new ones.

List of LaTeX environments

  • Float environments:
    figure, table
  • List environments:
    description, enumerate, itemize, list
  • Math environments:
    math, displaymath, array, eqnarray, equation [subequations, multiline, gather], theorem
  • Matrix environments:
    matrix, pmatrix, bmatrix, Bmatrix, vmatrix, Vmatrix, smallmatrix
  • Cases environment:
    cases
  • Align environments:
    align, alignat, flalign
  • Paragraph environments:
    center, flushleft, flushright, minipage, quotation, quote, verbatim, verse
  • Paragraph commands:
    centering, raggedright, raggedleft, parbox, footnote, footnotetext, verb
  • Picture environment:
    picture
  • Picture commands:
    \circle, \dashbox, \frame, \framebox, \line, \linethickness, \makebox, \multiput, \oval, \put, \shortstack, \vector
  • Table environments:
    tabbing, tabular

LaTeX: Boxes / Kasten

What are the different kinds of boxes in (La)TeX?
LaTeX/Boxes

\fbox, Zeichnet einen Rahmen um einen Text.
\parbox, Eine parbox ist eine Box mit einem Inhalt in Blocksatz.
\mbox, Wird zur Klammerung von Texten verwendet.
\makebox, Erzeugt eine Box mit einer fest vorgegebenen Breite.
\raisebox

LATEX für Fortgeschrittene (PDF)
Rahmen um …
framebox
LaTeX-Wörterbuch: colorbox
Boxes and Mini-Pages
using fbox in a newenvironment [duplicate]

TSM_SignProc

Bücher

Digitale Signalübertragung im Mobilfunk, Heinrich Nuszkowski, “Mobilfunkkanal”
Introduction to 3G Mobile Communications, Juha Korhonen, “Time Diversity”

Grundlagen

Elektrische Schaltung
Elektronische Schaltung
Elektrisches Signal
Tastgrad (duty cycle)
Gleichwert (DC offset)
Scheitelwert
Effektivwert
Frequenz
Grenzfrequenz, Übergangsfrequenz, Eckfrequenz (fg), (fc = cutoff frequency = “Höchstfrequenz”)
Nachrichtentechnik
Filter (Elektrotechnik)
Filter mit endlicher Impulsantwort (FIR)
Impulsantwort
Sprungantwort
Frequenzgang
Übertragungsfunktion
Basisband

DSP auf FPGAs

DSP auf FPGAs, Christian Münker

Digital Communication

Multiple Access
Communication channel
Symbols: timing/bandwidth
Symbols: amplitudes
OFDM

Symbol rate (Baud rate) / Bit rate

Baud Rate, Bit Rate, Bandwidth and Latency

Antennen

How do antennas work?
How Does An Antenna Work? | weBoost

Woche 1

Fragen

  • Warum gibt es Seitenbänder bei der Modulation?

Tutorials

What is the difference between a low pass signal and a band pass signal? Please illustrate with diagrams.

YouTube

Komplexe Zahlen, Z mal komplex konjugiert zu Z ergibt immer Betrag Z hoch 2
Die zwei wichtigsten Tricks beim Rechnen mit komplexen Zahlen
Hilber Transform
Hilbert Transform (Basics, Properties and Applications), Cross Correlation and Autocorrelation, PSD
CFC: What does the Hilbert transform do? (V9)
CFC: What does the Hilbert transform do? (V10)
Hilbert Transform of Cos Function

Wikipedia

English

Bandlimiting
Hilbert transform
Analytic signal
Heaviside step function
Independent sideband
Sideband
Envelope detector
Radio spectrum
Single-sideband modulation
Modulation
Amplitude modulation
Frequency modulation
Bandwidth (signal processing)
Additive white Gaussian noise (AWGN)
Passband
Band-pass filter
Stopband

Transfer function
Frequency response
Impulse response

Deutsch

Bandbegrenzung
Faltung (Mathematik)
Hilbert-Transformation
Analytisches Signal
Heaviside-Funktion
unabhängiges unteres/oberes Seitenband
Seitenband
Hüllkurvendemodulator
Frequenzband
Einseitenbandmodulation
Modulation (Technik)
Amplitudenmodulation
Frequenzmodulation
Bandbreite
Additives weißes gaußsches Rauschen (AWGR / AWGN)
Übertragungsfunktion
Frequenzgang
Impulsantwort

Woche 2

Fragen

Wikipedia

English

Communication channel
Binary symmetric channel (BSC)
Error function erf()
Cumulative distribution function
Q-function
Spectral density
Noise spectral density
Matched filter
Non-return-to-zero (NRZ)
Matched filter
Discrete Fourier transform (DFT)
Discrete-time Fourier transform (DTFT)
Constellation diagram

Deutsch

Kanal (Informationstheorie)
Binary Symmetric Channel (BSC) / binärer symmetrischer Kanal
Fehlerfunktion erf()
Verteilungsfunktion
Q-Funktion
Spektrale Leistungsdichte
Rausch Spektral Leistungsdichte
Non Return to Zero (NRZ)
Optimalfilter
Diskrete Fourier-Transformation (DFT)
Fouriertransformation für zeitdiskrete Signale (DTFT)

Tutorials

The Q-function
Zweiphasenumtastung (BPSK)

YouTube

Normalverteilung bzw. Gauß-Verteilung
Normalverteilung und Fehlerfunktion
TTT152 Digital Modulation Concepts
#170: Basics of IQ Signals and IQ modulation & demodulation – A tutorial
#171: IQ Signals Part II: AM and FM phasor diagrams, SSB phasing method
Digital modulation: ASK, FSK, and PSK
Binary Frequency Shift Keying (Binary FSK Modulation/BFSK), Frequency Shift Keying/FSK Modulation (India)
BPSK Generation and Reconstruction by Dr. K.Vinoth Babu, VIT University (India)
L-15 QPSK Quadrature Phase Shift Keying (Basics, Modulator, Waveforms, Demodulator & Applications) (India)
Einstieg in digitale Betriebsarten #03 – PSK, RTTY & Co.

A priori, a posteriori, bedingte+totale Wahrscheinlichkeit, Bayes Statistik, Übersicht
Bedingte Wahrscheinlichkeit, Satz von Bayes, Bayes-Theorem, Formel | Mathe by Daniel Jung
Bedingte Wahrscheinlichkeit, Satz von Bayes und stochastische Unabhängigkeit
Bedingte Wahrscheinlichkeit, Satz von Bayes, Vokabeln, Stochastik | Mathe by Daniel Jung
Bedingte Wahrscheinlichkeit mit Vierfeldertafel und Baumdiagramm, Mathe by Daniel Jung
Statistik: Satz von Bayes – FernUni Hagen – Wiwi

Probability Primer
Information Theory
(ML 4.1) Maximum Likelihood Estimation (MLE) (part 1)
(ML 4.2) Maximum Likelihood Estimation (MLE) (part 2)
(ML 6.1) Maximum a posteriori (MAP) estimation
(ML 6.2) MAP for univariate Gaussian mean
(ML 6.3) Interpretation of MAP as convex combination

Woche 3

Fragen

Uni Kiel, Institut DSS: Signale and Systeme

Signale
Stochastische Signale und ihre Spektren

Tutorials

Why are my DAC and ADC responses drooping?
Why are my DAC and ADC responses drooping?: Page 2 of 5
Dr. Christian Münker – Digitale Signalverarbeitungauf FPGAs
DSP mit FPGAs & Python
Digitale Signalverarbeitung mit Python – NumPy, SciPy und Matplotlib
(I)Python in Labor & Lehre
Expectation Operator on a Matrix

Wikipedia

English

Mean squared error (MSE)
Minimum mean square error (MMSE)
Wiener filter
Zero-order hold (ZOH)
Autocorrelation matrix
Covariance matrix

Deutsch

Mittlere quadratische Abweichung (MSE)
Minimale Mittlere quadratische Abweichung (MMSE)
Wiener-Filter
Sample-and-Hold-Schaltung (S&H)

YouTube

Nachrichtentechnik
Stammfunktion bilden bei e-Funktion, Grundlagen, Exponentialfunktion | Mathe by Daniel Jung
Logarithmische Skala einfach erklärt
Logarithmische Skalierung vs. lineare Skalierung, Beispiel Aktienkursverlauf | Mathe by Daniel Jung
Bodediagramm – Überblick (Amplitudengang, Phasengang) #ET5M
Wie ist die Grenzfrequenz definiert
Filtertypen Überblick – Tiefpass – Hochpass – Bandsperre – Bandpass – Allpass
GET – elektrische Filter – Grundlagen der Elektrotechnik
Was ist eine Übertragungsfunktion #ET5M
Digital Filters Part 1

Woche 5

Fragen

Tutorials

What are code and carrier phase measurement in GPS?
Code-Phase GPS vs. Carrier-Phase GPS

Wikipedia

English

Successive Interference Cancellation (SIC)

Deutsch

Korrelation
Korrelation (Signalverarbeitung)
Autokorrelation
Kreuzkorrelation
Kanalkapazität
Spektrale Leistungsdichte
Global Positioning System
GPS-Technik

YouTube

Energy and Power Signals
Signal-to-Noise Ratio
Technische Informatik, Professor Froitzheim, Vorlesung 05, 23.04.2013, Kanal, Symbol, Modulation
24: Theoretische Grundlagen der Informatik, Vorlesung und Übung, 04.02.2016, WS2015/16, Kanalkapazität
Theoretische Grundlagen der Informatik, WS2014/15, Vorlesung und Übung (Playlist)
CDMA Signal Spreading – The VERY basics of how it’s done
CDMA (Code Division Multiple Access)
CDMA Example

CDMA Signal Spreading – The VERY basics of how it’s done
Cross Correlation Demo using Matlabs xcorr function
3.8 – Auto correlation and cross correlation

Woche 6

Fragen

YouTube

Delay Spread – SixtySec
Lecture 25 – WSSUS Part II, Coherence Time, Doppler Spectrum
Was ist der Dopplereffekt?
** Dopplereffekt Teil 1

Wikipedia

English

Path loss
Friis transmission equation
Link budget
Multipath propagation
Multipath interference
Fading
Fresnel zone
Free-space path loss
Intersymbol interference (ISI)
Group delay and phase delay
Coherence time (communications systems)
Coherence time
Time diversity

Deutsch

Pfadverlust (Path loss)
Friis-Übertragungsgleichung (Friis transmission equation)
Leistungsübertragungsbilanz (Link budget)
Mehrwegempfang
Fading (Elektrotechnik)
Selektiver Trägerschwund
Fresnelzone
Freiraumdämpfung
Adaptive Coding and Modulation
Frequenzspreizung
Interleaving
Symbolübersprechen, Intersymbol interference (ISI)
Gruppenlaufzeit (group delay)

Woche 7

Fragen

  • trellis algorithm

Tutorials

Codebeschreibung mit Zustands– und Trellisdiagramm

YouTube

QAM, QPSK Explanation, (PART 2 leading to 16QAM and more…..)
Finding Minimum Distance (Hamming, not used!)
Constellation Diagrams and Digital Communications
Digital Communications: Convolutional Codes
Digital Communications: Viterbi Algorithm
Lecture – 36 Coding Techniques for Mobile Communications

Woche 9

Fragen

Receivers-1
Revising Superheterodyne Transceiver Radio Architecture, Design Considerations, Image issue resolution
The Benefits of an Intermediate Frequency in RF Systems

Wikipedia

English

Frequency mixer
Superheterodyne receiver
Intermediate frequency
Direct-conversion receiver (Zero-IF)

Deutsch

Mischer (Elektronik)
Überlagerungsempfänger (Superheterodyne receiver)
Zwischenfrequenz (intermediate frequency / IF)
Direktmischempfänger

FTP_PartDiff

github.com/AndreasFMueller/PartDiff

$ sudo apt-get install texlive texlive-lang-german texlive-latex-extra 
$ sudo apt-get install texlive-metapost
$ sudo apt-get install povray povray-includes
$ sudo apt-get install imagemagick imagemagick-doc

Woche 1

Wikipedia

Open set
Offene Menge
Complement (set theory)
Interval (mathematics)
Boundary (topology)

Rest

Neighbourhoods and open sets in metric spaces
Wolfram MathWorld – Open Set

YouTube

Offene und abgeschlossene Menge (Intuition) | Math Intuition
Offene und abgeschlossene Menge (Teil 2: Definition) | Math Intuition
Introduction to Open and Closed sets

Woche 2

Wikipedia

Trigonometrischer Pythagoras

Woche 4

Wikipedia

Partielle Integration
Fourier-Transformation

YouTube

Laplace Transformation (Playlist)
Laplace and Fourier Transforms (Playlist)

ChibiOS STM32 with HAL

Datasheet

STM32F072RB, 128 Kbytes Flash, 48 MHz CPU, USB, CAN and CEC functions
STM32F072CB, 128 Kbytes Flash, 48 MHz CPU, USB, CAN and CEC functions
NUCLEO-F072RB

Tutorials

ChibiOS and STM32
From 0 to STM32
Dealing with push-buttons using an STM32
Dealing with LEDs using an STM32
Using STM32 GPIO with ChibiOS PAL Driver
ChibiOS/HAL design: an object-oriented approach
Using STM32 USART with ChibiOS Serial Driver
PWM in hardware with STM32 Timer and ChibiOS
Using STM32 SPI with ChibiOS

nRF24L01 on ChibiOS/RT 3.0 using STM32

Product

ChibiOS/HAL
The OSAL
HAL Features
The OSAL

  • SDC, abstraction of an SDIO interface to SD/MMC cards. Implements a block interface
  • MMC/SD over SPI, MMC and SD cards handling on top of the SPI driver. Implements a block interface.

Articles

Articles Start
ChibiOS/HAL Integration Guide

Documentation

Documentation

HAL 6.1.0

ChibiOS/HAL Introduction
PAL Driver, I/O Ports Abstraction Layer
GPT Driver, Generic GPT (General Purpose Timer) Driver
SDC DriverGeneric SD Card (Secure Digital Card) Driver, sdcStart()
ST Driver, Generic System Tick Driver
Serial Driver, Generic Serial Driver., sdStart()
Abstract I/O Block Device

RT 5.1.0

ChibiOS/RT Introduction

Forum

SD-Card Insert/Remove Handlers
TM-Subsystem / SD-Card / STM32F0 / unknown type name ‘halrtc
eMMC not working with STM32F4
micro SD slots with no card detect signal
The FatFS topic
difference between UART and Serial driver

github

github.com/jed-frey/ARMCM4-STM32F407-STF4BB-FATFS, ChibiOS FatFS example for DM-STF4BB with STM32F4Discovery
github.com/ChibiOS/ChibiOS/tree/master/demos/STM32/RT-STM32F103-OLIMEX_STM32_P103-FATFS
github.com/ChibiOS/ChibiOS/blob/master/os/rt/include/ch.h
github.com/ChibiOS/ChibiOS/tree/master/os/various/fatfs_bindings

Compilation

arm-atollic-eabi-gcc
-c ..\src\chibi\platform\gpt_lld.c
-mthumb
-mcpu=cortex-m0
-std=gnu11
-DCRT1_AREAS_NUMBER=1
-DARM_MATH_CM0
-DSTM32F072B_DISCO
-DSTM32F072RBTx
-DSTM32F0
-DSTM32
-DDEBUG
-DHAL_USE_USB=TRUE
-DHAL_USE_SPI=TRUE
-DHAL_USE_SERIAL=TRUE
-DHAL_USE_ADC=TRUE
-DHAL_USE_UART=FALSE
-DHAL_USE_GPT=TRUE
-DSTM32_GPT_USE_TIM14=TRUE
-IC:/msys64/home/bachman0/Fluoedema/Firmware/inc
-IC:\msys64\home\bachman0\Fluoedema\Firmware\inc\chibi\board
-IC:\msys64\home\bachman0\Fluoedema\Firmware\inc\chibi\hal
-IC:\msys64\home\bachman0\Fluoedema\Firmware\inc\chibi\osal
-IC:\msys64\home\bachman0\Fluoedema\Firmware\inc\chibi\platform
-IC:\msys64\home\bachman0\Fluoedema\Firmware\inc\chibi\startup\CMSIS
-IC:\msys64\home\bachman0\Fluoedema\Firmware\inc\chibi\startup\ST
-IC:\msys64\home\bachman0\Fluoedema\Firmware\inc\chibi\startup
-IC:\msys64\home\bachman0\Fluoedema\Firmware\src
-IC:\msys64\home\bachman0\Fluoedema\Firmware\inc\chibi\various
-IC:\msys64\home\bachman0\Fluoedema\Firmware\inc\chibi\lib
-Og
-ffunction-sections
-g3
-fstack-usage
-Wall
-fmessage-length=0
-specs=nano.specs
-o src\chibi\platform\gpt_lld.o 
arm-atollic-eabi-gcc
-o chibi_hal_debug.elf
src\cdc.o
src\cfg.o
src\chibi\board\board.o
src\chibi\hal\adc.o
src\chibi\hal\can.o
src\chibi\hal\dac.o
src\chibi\hal\ext.o
src\chibi\hal\gpt.o
src\chibi\hal\hal.o
src\chibi\hal\hal_buffers.o
src\chibi\hal\hal_mmcsd.o
src\chibi\hal\hal_queues.o
src\chibi\hal\i2c.o
src\chibi\hal\i2s.o
src\chibi\hal\icu.o
src\chibi\hal\mac.o
src\chibi\hal\mmc_spi.o
src\chibi\hal\pal.o
src\chibi\hal\pwm.o
src\chibi\hal\rtc.o
src\chibi\hal\sdc.o
src\chibi\hal\serial.o
src\chibi\hal\serial_usb.o
src\chibi\hal\spi.o
src\chibi\hal\st.o
src\chibi\hal\uart.o
src\chibi\hal\usb.o
src\chibi\hal\wdg.o
src\chibi\lib\chprintf.o
src\chibi\lib\memstreams.o
src\chibi\lib\nullstreams.o
src\chibi\osal\osal.o
src\chibi\platform\adc_lld.o
src\chibi\platform\can_lld.o
src\chibi\platform\dac_lld.o
src\chibi\platform\ext_lld.o
src\chibi\platform\ext_lld_isr.o
src\chibi\platform\gpt_lld.o
src\chibi\platform\hal_lld.o
src\chibi\platform\i2c_lld.o
src\chibi\platform\i2s_lld.o
src\chibi\platform\icu_lld.o
src\chibi\platform\nvic.o
src\chibi\platform\pal_lld.o
src\chibi\platform\pwm_lld.o
src\chibi\platform\rtc_lld.o
src\chibi\platform\serial_lld.o
src\chibi\platform\spi_lld.o
src\chibi\platform\st_lld.o
src\chibi\platform\stm32_dma.o
src\chibi\platform\uart_lld.o
src\chibi\platform\usb_lld.o
src\chibi\platform\wdg_lld.o
src\chibi\startup\crt1.o
src\chibi\startup\vectors.o
src\cmd.o
src\debug.o
src\eeprom\eeprom.o
src\eeprom\stm32f0xx_flash.o
src\iad.o
src\ifc.o
src\lym.o
src\main.o
src\que.o
src\ssd\cmds.o
src\ssd\com.o
src\ssd\ssd.o
src\ssd\util.o
src\ugui\ugui.o
src\usbcfg.o
src\vis.o
startup\crt0_v6m.o
startup\sysmem.o
-larm_cortexM0l_math
-lm
-mthumb
-mcpu=cortex-m0
-TC:\msys64\home\bachman0\Fluoedema\Firmware\LinkerScript.ld
-specs=nosys.specs
-static
-LC:\msys64\home\bachman0\Fluoedema\Firmware\bin
-Wl,--defsym=__process_stack_size__=0x000,--defsym=__main_stack_size__=0x800
-u _printf_float
-Wl,-Map=chibi_hal_debug.map
-Wl,--gc-sections
-Wl,--defsym=malloc_getpagesize_P=0x80
-Wl,--start-group -lc -lm -Wl,--end-group
-specs=nano.specs 

STM32F072: Linking in SES and Atollic IDE

STM32F072CB, Mainstream ARM Cortex-M0 USB line MCU with 128 Kbytes Flash, 48 MHz CPU, USB, CAN and CEC functions

Specs

HOWTO Use the GCC specs file
How to set gcc 4.3 default specs file?
Frequently Asked Questions

Studio

Using External GCC
Building with a SEGGER Embedded Studio project file

Wiki

How to use an external toolchain with Embedded Studio

Website

Tool chain and Compiler
Project Management
Performance
SEGGER Linker

Blog

The SEGGER Linker – Replacing the GNU linker
Killer features of the SEGGER linker, or what’s wrong with the GNU linker?

A C Library for embedded applications

Most GCC based projects use Newlib or its smaller version Newlib nano as the standard C Library. Newlib has been created for full-featured computers with lots of memory. Even Newlib nano might require a lot of stack and even heap for functions, such as printf.

Embedded Studio comes with its own standard C Library. The library has been created from scratch, tailored and optimized for embedded applications, to be used on even the smallest micros.

cd C:\msys64\home\bachman0\Fluoedema\Firmware
"C:\Program Files\SEGGER\SEGGER Embedded Studio for ARM 4.12\bin\emBuild.exe" -echo -config "Debug" Fluoedema.emProject
"C:\Program Files\SEGGER\SEGGER Embedded Studio for ARM 4.12\bin\emBuild.exe" -echo -clean -config "Debug" Fluoedema.emProject
4>C:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 4.12/gcc/arm-none-eabi/bin/cc1
-fmessage-length=0
-fno-diagnostics-show-caret
-mcpu=cortex-m0
-mlittle-endian
-mfloat-abi=soft
-mthumb
-mtp=soft
-mno-unaligned-access
-nostdinc
-isystemC:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 4.12/include
-isystemC:/Users/bachman0/AppData/Local/SEGGER/SEGGER Embedded Studio/v3/packages/include
-IC:/msys64/home/bachman0/Fluoedema/Firmware/src
-IC:/msys64/home/bachman0/Fluoedema/Firmware/inc
-IC:/msys64/home/bachman0/Fluoedema/Firmware/inc/chibi/board
-IC:/msys64/home/bachman0/Fluoedema/Firmware/inc/chibi/hal
-IC:/msys64/home/bachman0/Fluoedema/Firmware/inc/chibi/osal
-IC:/msys64/home/bachman0/Fluoedema/Firmware/inc/chibi/platform
-IC:/msys64/home/bachman0/Fluoedema/Firmware/inc/chibi/startup/CMSIS
-IC:/msys64/home/bachman0/Fluoedema/Firmware/inc/chibi/startup/ST
-IC:/msys64/home/bachman0/Fluoedema/Firmware/inc/chibi/startup
-IC:/msys64/home/bachman0/Fluoedema/Firmware/inc/chibi/various
-IC:/msys64/home/bachman0/Fluoedema/Firmware/inc/chibi/lib
-D__SIZEOF_WCHAR_T=4
-D__ARM_ARCH_6M__
-D__SES_ARM
-D__SES_VERSION=41200
-DDEBUG -DCRT1_AREAS_NUMBER=1
-DSTM32F072B_DISCO
-DSTM32F072RBTx
-DSTM32F0
-DSTM32
-DDEBUG
-DHAL_USE_USB=TRUE
-DHAL_USE_SPI=TRUE
-DHAL_USE_SERIAL=TRUE
-DHAL_USE_ADC=TRUE
-DHAL_USE_UART=FALSE
-DHAL_USE_GPT=TRUE
-DSTM32_GPT_USE_TIM14=TRUE
-DHAL_USE_WDG=TRUE
-DSTM32_WDG_USE_IWDG=TRUE
-MD C:/msys64/home/bachman0/Fluoedema/Firmware/Debug/sen.d
-MQ Debug/sen.o
-quiet
-std=gnu99
-g3
-gpubnames
-Og
-fomit-frame-pointer
-fno-dwarf2-cfi-asm
-fno-builtin
-ffunction-sections
-fdata-sections
-fshort-enums
-fno-common
C:\msys64\home\bachman0\Fluoedema\Firmware\src\sen.c
-o C:/msys64/home/bachman0/Fluoedema/Firmware/Debug/sen.asm

4>C:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 4.12/gcc/arm-none-eabi/bin/as
--traditional-format
-mcpu=cortex-m0
-mlittle-endian
-mfloat-abi=soft
-mthumb
C:/msys64/home/bachman0/Fluoedema/Firmware/Debug/sen.asm
-o Debug/sen.o
undefined reference to __aeabi_read_tp
C:\msys64\home\bachman0\Fluoedema\Firmware>
"C:\Program Files\SEGGER\SEGGER Embedded Studio for ARM 4.12\bin\emBuild.exe" -echo -config "Debug" Fluoedema.emProject

1>C:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 4.12/gcc/arm-none-eabi/bin/ld
-X
--omagic
-eReset_Handler
--defsym=__vfprintf=__vfprintf_int_nwp
--defsym=__vfscanf=__vfscanf_int
-EL
--gc-sections
-TC:/msys64/home/bachman0/Fluoedema/Firmware/LinkerScript.ld
-Map Output/Debug/Exe/Firmware.map
--defsym=__main_stack_size__=0x600
--defsym=__process_stack_size__=0x000
-u_vectors
-o Output/Debug/Exe/Firmware.elf
--emit-relocs
--start-group
@C:/msys64/home/bachman0/Fluoedema/Firmware/Output/Firmware Debug/Obj/Firmware.ind
--end-group

C:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 4.12/lib/libc_v6m_t_le_eabi.a(libc2.o):
In function `__aeabi_errno_addr':
libc2.c:(.text.libc.__aeabi_errno_addr+0x2): undefined reference to `__aeabi_read_tp'
There were 1 build errors

cc1

Relationship between cc1 and gcc?
GNU C Compiler Internals/GNU C Compiler Architecture

cc1 -o test.s test.c
from C to ASM!

EABI

github.com/m-labs/uclibc-lm32/blob/master/libc/sysdeps/linux/arm/aeabi_errno_addr.c

_AEABI_PORTABILITY_LEVEL=1

How to use errno in multithread environment?
__aeabi_errno_addr()
caddr_t

syscalls

syscalls.c compilation errors
IMPLEMENTING SYSCALLS FOR LIBC
How to include syscalls.c from a separate library file?

newlib

Getting NewLib and printf to work with the STM32 and Code Sourcery Lite eabi
Using Newlib in ARM bare metal programs
Issue with compling ARM assembly code

arm-none-eabi-as p1.s -o p1.o
arm-none-eabi-gcc -specs=rdimon.specs p1.o -o p1
arm-none-eabi-gcc: error: rdimon.specs: No such file or directory

Linking issues

  GROUP (
"libcr_semihost_nf.a"
"libcr_c.a"
"libcr_eabihelpers.a"
)

-specs=rdimon.specs

Link problem with rdimon.specs
Linker error on a C project using Eclipse

Semihosting

What is semihosting?
What is semihosting?
What is Semihosting?
Semihosting für ARM verwenden

Specs to Linker?

How to pass specs to gcc linker?

ld or gcc

gcc -Wl,linker-option
Options for Linking

ARM Simulator

(gdb) target sim
Undefined target command: "sim".  Try "help target".

./configure --enable-sim

arm-none-eabi-gdb: Undefined target command: “sim”
Guide to using GDB in simulation mode
Does arm-none-eabi-gdb support simulator