Assembling Pi

B.2 Erweiterungen der CPU-Funktionalität

2.3.17 VFP und NEON: Übungsaufgabe zur Implementierung von Trigonometrischen Funktionen

Hintergrund

Trigonometrische Funktionen wie Sinus, Kosinus und Tangens sind fundamentale Bestandteile vieler eingebetteter Systeme, beispielsweise in der Robotik, Signalverarbeitung oder bei der Steuerung von Bewegungsabläufen. Eine effiziente Implementierung dieser Funktionen in Assembler unter zuhilfenahme der Floating-Point und NEON-Erweiterungen ermöglicht präzise und schnelle Berechnungen.

Aufgabenbeschreibung

Entwickeln Sie eine ARM-Assembly-Bibliothek, die die trigonometrischen Funktionen sin, cos und tan implementiert. Diese Funktionen sollen mithilfe der Taylor-Reihe approximiert werden. Die Implementierung soll folgende Anforderungen erfüllen:

Implementierung der Funktionen sin, cos und tan

sin(x) = x - (x^3)/(3!) + (x^5)/(5!) - (x^7)/(7!) + (x^9)/(9!) - (x^11)/(11!) + (x^13)/(13!) - (x^15)/(15!) + (x^17)/(17!)

Wichtiger Hinweis beim Assemblieren

Beim Assemblieren von Code, der VFP- oder NEON-Befehle verwendet, müssen spezielle Optionen gesetzt werden:

arm-none-eabi-as -march=armv7-a -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4 -c trigono.s -g -o trigono.o

Bedeutung der zusätzlichen Optionen:

zurück Hauptmenü weiter
2.3 VFP und NEON
2.3.1 Intro
2.3.2 Gleitkommazahlen
2.3.3 Floating Point Format nach IEEE 754
2.3.4 VFP (Vector Floating Point) in der ARM-Architektur
2.3.5 VFP Data Conversion Befehle
2.3.6 Was ist NEON?
2.3.7 Überblick über die ARMv7 NEON-Register
2.3.8 Vektoren und Skalare
2.3.9 Registeradressierung in NEON
2.3.10 Das NEON und Floatingpoint Status Register
2.3.11 Steuerung und Statusübertragung zwischen ARM- und NEON/VFP-Statusregistern (VMSR und VMRS)
2.3.12 NEON Instruktionen
2.3.13 Datentransfer
2.3.14 NEON Load/Store Instruktionen
2.3.15 Arithmetische und logische NEON-Operationen
2.3.16 VTRN (Vector Transpose) Instruktionen
2.3.17 Implementierung von Trigonometrischen Funktionen
2.3.18 Implementierung einer 4x4-Matrixmultiplikationsfunktion mit NEON