Описание библиотеки микросхемы 5023ВС016 процессора "Спутник"
Структуры данных | Макросы | Функции
Файл fpu.h

Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с аппаратным блоком FPU. Подробнее...

#include "types.h"
#include <stdio.h>
#include <math.h>

См. исходные тексты.

Структуры данных

struct  FPU_T
 Структура для доступа к регистрам FPU. Подробнее...
 

Макросы

#define FPU_ADD_SUB_SUB_EN   ((uint32_t)(0 << 0))
 Макросы и типы для регистра ADD_SUB. Подробнее...
 
#define FPU_ADD_SUB_ADD_EN   ((uint32_t)(1 << 0))
 
#define FPU_CONTROL_ADD_EN   ((uint32_t)(1 << 0))
 Макросы и типы для регистра CONTROL. Подробнее...
 
#define FPU_CONTROL_MUL_EN   ((uint32_t)(1 << 1))
 

Функции

void FPU_DeInit (void)
 Сброс блока FPU. Подробнее...
 
void FPU_Init (void)
 Инициализация блока FPU. Подробнее...
 
float FPU_ADD (float A, float B)
 Сложение двух чисел при помощи блока FPU. Подробнее...
 
float FPU_SUB (float A, float B)
 Вычитание двух чисел при помощи блока FPU. Подробнее...
 
float FPU_MUL (float A, float B)
 умножение двух чисел при помощи блока FPU. Подробнее...
 
static int factorial (int n)
 Факториал Подробнее...
 
float FPU_SIN (float A)
 вычисление синуса Подробнее...
 
float FPU_ASIN (float A)
 вычисление арксинуса Подробнее...
 
float FPU_ACOS (float A)
 вычисление арккосинуса Подробнее...
 
float FPU_COS (float A)
 вычисление косинуса Подробнее...
 
float FPU_sqrt (float A)
 Вычисление квадратного корня при помощи блока FPU. Подробнее...
 
float FPU_pow2 (float A)
 Возведение в квадрат при помощи блока FPU. Подробнее...
 
float FPU_pow3 (float A)
 Возведение в куб при помощи блока FPU. Подробнее...
 
float FPU_tg (float A)
 вычисление тангенса Подробнее...
 
float FPU_atg (float A)
 вычисление арктангенса Подробнее...
 

Подробное описание

Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с аппаратным блоком FPU.

Copyright(C) НПП Цифровые решения, 2017 Copyright(C) Команда разработчиков НПП Цифровые решения Все права защищены.

Программное обеспечение, описанное в этом файле, предназначено только для демонстрационных целей, и предоставляет программистам информацию о продукции организации "Цифровые решения". Это программное обеспечение поставляется "КАК ЕСТЬ" без каких-либо гарантий, "Цифровые решения" отказываются от любых гарантий, фактических или подразумеваемых, включая все подразумеваемые гарантии товарной пригодности, пригодности для конкретной цели и сохранения прав интеллектуальной собственности. Органицация "Цифровые решения" не несет никакой ответственности за использование программного обеспечения, не предоставляет лицензий или прав на патент, авторское право, или любые другие права интеллектуальной собственности, на какие-либо продукты. Организация "Цифровые решения" оставляет за собой право вносить изменения в программное обеспечение без уведомления. Организация "Цифровые решения" также не дает никаких заверений или гарантий, что это программное приложение подойдет для использования без дальнейшего тестирования или модификаций.

Разрешение на использование, копирование, изменение и распространение этого программного обеспечения и документации предоставляется согласно условиям "Цифровых решений" и соответствующих авторских прав своей лицензии без оплаты, при условии, что это программное обеспечнение используется совместно с микроконтроллерами организации "Цифровые решения". Эти права должны распространяться во всех копиях этого кода.

См. определение в файле fpu.h

Макросы

§ FPU_ADD_SUB_ADD_EN

#define FPU_ADD_SUB_ADD_EN   ((uint32_t)(1 << 0))

включение режима вычитания

См. определение в файле fpu.h строка 55

§ FPU_ADD_SUB_SUB_EN

#define FPU_ADD_SUB_SUB_EN   ((uint32_t)(0 << 0))

Макросы и типы для регистра ADD_SUB.

включение режима сложения

См. определение в файле fpu.h строка 54

§ FPU_CONTROL_ADD_EN

#define FPU_CONTROL_ADD_EN   ((uint32_t)(1 << 0))

Макросы и типы для регистра CONTROL.

запуск операции сложения

См. определение в файле fpu.h строка 60

§ FPU_CONTROL_MUL_EN

#define FPU_CONTROL_MUL_EN   ((uint32_t)(1 << 1))

запуск операции умножения

См. определение в файле fpu.h строка 61

Функции

§ factorial()

static int factorial ( int  n)
static

Факториал

См. определение в файле fpu.h строка 102

§ FPU_ACOS()

float FPU_ACOS ( float  A)

вычисление арккосинуса

Для оптимизации скорости выолнения данной операции использовались как программные средства вычисления, так и средства блока FPU

Аргументы
Aпараметр в радианах
Возвращаемые значения
арккосинуса

См. определение в файле fpu.c строка 260

§ FPU_ADD()

float FPU_ADD ( float  A,
float  B 
)

Сложение двух чисел при помощи блока FPU.

Аргументы
Aслагаемое 1
Bслагаемое 2
Возвращаемые значения
сумма

См. определение в файле fpu.c строка 65

§ FPU_ASIN()

float FPU_ASIN ( float  A)

вычисление арксинуса

Для оптимизации скорости выолнения данной операции использовались как программные средства вычисления, так и средства блока FPU

Аргументы
Aпараметр в радианах
Возвращаемые значения
арксинус

< A^3

< A + A^3/6

< A^5

< A + A^3/6 + 3*A^5/40

См. определение в файле fpu.c строка 236

§ FPU_atg()

float FPU_atg ( float  A)

вычисление арктангенса

Для оптимизации скорости выолнения данной операции использовались как программные средства вычисления, так и средства блока FPU

Аргументы
Aпараметр в радианах
Возвращаемые значения
арктангенс

< A^3

< A - A^3/3

< A^5

< A - A^3/3 + 2*A^5/15

См. определение в файле fpu.c строка 212

§ FPU_COS()

float FPU_COS ( float  A)

вычисление косинуса

Для оптимизации скорости выолнения данной операции использовались как программные средства вычисления, так и средства блока FPU

Аргументы
Aпараметр в радианах
Возвращаемые значения
косинус

< A^2

< 1 - A^2/2!

< A^4

< 1 - A^2/2! + A^4/4!

См. определение в файле fpu.c строка 134

§ FPU_DeInit()

void FPU_DeInit ( void  )

Сброс блока FPU.

Возвращаемые значения
None.

См. определение в файле fpu.c строка 40

§ FPU_Init()

void FPU_Init ( void  )

Инициализация блока FPU.

Возвращаемые значения
None.

См. определение в файле fpu.c строка 51

§ FPU_MUL()

float FPU_MUL ( float  A,
float  B 
)

умножение двух чисел при помощи блока FPU.

Аргументы
Aмножитель 1
Bмножитель 2
Возвращаемые значения
произведение

См. определение в файле fpu.c строка 95

§ FPU_pow2()

float FPU_pow2 ( float  A)

Возведение в квадрат при помощи блока FPU.

Аргументы
Aчисло
Возвращаемые значения
квадратот A

См. определение в файле fpu.c строка 166

§ FPU_pow3()

float FPU_pow3 ( float  A)

Возведение в куб при помощи блока FPU.

Аргументы
Aчисло
Возвращаемые значения
кубот A

См. определение в файле fpu.c строка 176

§ FPU_SIN()

float FPU_SIN ( float  A)

вычисление синуса

Для оптимизации скорости выолнения данной операции использовались как программные средства вычисления, так и средства блока FPU

Аргументы
Aпараметр в радианах
Возвращаемые значения
синус

< A^3

< A - A^3/3!

< A^5

< A - A^3/3! + A^5/5!

См. определение в файле fpu.c строка 110

§ FPU_sqrt()

float FPU_sqrt ( float  A)

Вычисление квадратного корня при помощи блока FPU.

Аргументы
Aчисло Для оптимизации скорости выолнения данной операции использовались как программные средства вычисления, так и средства блока FPU
Возвращаемые значения
квадратныйкорень от A
Аргументы
Aчисло
Возвращаемые значения
квадратныйкорень от A

См. определение в файле fpu.c строка 156

§ FPU_SUB()

float FPU_SUB ( float  A,
float  B 
)

Вычитание двух чисел при помощи блока FPU.

Аргументы
Aуменьшаемое
Bвычитаемое
Возвращаемые значения
разница

См. определение в файле fpu.c строка 80

§ FPU_tg()

float FPU_tg ( float  A)

вычисление тангенса

Для оптимизации скорости выолнения данной операции использовались как программные средства вычисления, так и средства блока FPU

Аргументы
Aпараметр в радианах
Возвращаемые значения
тангенс

< A^3

< A + A^3/3

< A^5

< A + A^3/3 + 2*A^5/15

См. определение в файле fpu.c строка 188