Math Engine Reference: Embedded Profile
문서 탐색
개요
Embedded artifact의 compile-time board와 resident capability 계약이다.
- 실행 원본:
include/math_engine/math_engine_embedded_profile.h - 분류: 수 표현·실행 profile
관련 public header
- 직접 포함하는 다른 Math Engine public header가 없다.
공개 API
Header 사용 시작
이 module의 public declaration을 사용하려면 installed SDK의 다음 header를 include한다.
#include <math_engine/math_engine_embedded_profile.h>
Macro와 constant
MATH_ENGINE_EMBEDDED_BOARD_AVR_LARGE
확장된 flash/RAM budget을 가진 AVR 8-bit profile의 안정된 board ID다.
#define MATH_ENGINE_EMBEDDED_BOARD_AVR_LARGE 2
MATH_ENGINE_EMBEDDED_BOARD_AVR_SMALL
작은 flash/RAM budget을 가진 AVR 8-bit profile의 안정된 board ID다.
#define MATH_ENGINE_EMBEDDED_BOARD_AVR_SMALL 1
MATH_ENGINE_EMBEDDED_BOARD_CLASS
선택된 embedded artifact의 MATH_ENGINE_EMBEDDED_BOARD_* ID다. 독립 include 기본값은 RP2040이다.
#define MATH_ENGINE_EMBEDDED_BOARD_CLASS MATH_ENGINE_EMBEDDED_BOARD_RP2040
MATH_ENGINE_EMBEDDED_BOARD_CORTEX_M0_PLUS
ARM Cortex-M0+ microcontroller profile의 안정된 board ID다.
#define MATH_ENGINE_EMBEDDED_BOARD_CORTEX_M0_PLUS 3
MATH_ENGINE_EMBEDDED_BOARD_CORTEX_M4
FPU를 사용할 수 있는 ARM Cortex-M4 profile의 안정된 board ID다.
#define MATH_ENGINE_EMBEDDED_BOARD_CORTEX_M4 4
MATH_ENGINE_EMBEDDED_BOARD_RASPBERRY_PI_LINUX
Raspberry Pi Linux embedded-host profile의 안정된 board ID다.
#define MATH_ENGINE_EMBEDDED_BOARD_RASPBERRY_PI_LINUX 6
MATH_ENGINE_EMBEDDED_BOARD_RP2040
Dual-core RP2040 microcontroller profile의 안정된 board ID다.
#define MATH_ENGINE_EMBEDDED_BOARD_RP2040 5
MATH_ENGINE_EMBEDDED_CLOCK_HZ
Worst-case workload 기준에 사용한 nominal board clock frequency(Hz)다.
#define MATH_ENGINE_EMBEDDED_CLOCK_HZ UINT64_C(133000000)
MATH_ENGINE_EMBEDDED_FLASH_CEILING_BYTES
Link된 embedded artifact가 넘지 않아야 하는 flash footprint ceiling(byte)이다.
#define MATH_ENGINE_EMBEDDED_FLASH_CEILING_BYTES UINT64_C(2097152)
MATH_ENGINE_EMBEDDED_HAS_MODULE
지정 module bit가 현재 resident artifact에 포함됐는지 검사한다.
- 매개변수
module_bit: 하나의MATH_ENGINE_EMBEDDED_MODULE_*bit 또는 검사할 bit mask. - 반환: 요청 mask와 resident mask가 하나라도 겹치면 1, 아니면 0이다.
module_bit expression은 정확히 한 번 평가된다.
#define MATH_ENGINE_EMBEDDED_HAS_MODULE(module_bit) \
(((MATH_ENGINE_EMBEDDED_RESIDENT_MODULE_BITS) & (module_bit)) != UINT64_C(0))
MATH_ENGINE_EMBEDDED_MAXIMUM_WORKLOAD_US
검증된 대표 workload 한 건의 허용 worst-case 실행시간 ceiling(µs)이다.
#define MATH_ENGINE_EMBEDDED_MAXIMUM_WORKLOAD_US UINT64_C(35000)
MATH_ENGINE_EMBEDDED_MODULE_CAS
Resident artifact에 computer-algebra component가 포함됐음을 나타내는 bit다.
#define MATH_ENGINE_EMBEDDED_MODULE_CAS (UINT64_C(1) << 7u)
MATH_ENGINE_EMBEDDED_MODULE_CHECKED_INTEGER
Resident artifact에 checked integer component가 포함됐음을 나타내는 bit다.
#define MATH_ENGINE_EMBEDDED_MODULE_CHECKED_INTEGER (UINT64_C(1) << 1u)
MATH_ENGINE_EMBEDDED_MODULE_CONTROL
Resident artifact에 control component가 포함됐음을 나타내는 bit다.
#define MATH_ENGINE_EMBEDDED_MODULE_CONTROL (UINT64_C(1) << 11u)
MATH_ENGINE_EMBEDDED_MODULE_DECIMAL_FIXED
Resident artifact에 fixed decimal component가 포함됐음을 나타내는 bit다.
#define MATH_ENGINE_EMBEDDED_MODULE_DECIMAL_FIXED (UINT64_C(1) << 2u)
MATH_ENGINE_EMBEDDED_MODULE_ESTIMATION
Resident artifact에 state-estimation component가 포함됐음을 나타내는 bit다.
#define MATH_ENGINE_EMBEDDED_MODULE_ESTIMATION (UINT64_C(1) << 12u)
MATH_ENGINE_EMBEDDED_MODULE_EXPRESSION
Resident artifact에 expression evaluator가 포함됐음을 나타내는 bit다.
#define MATH_ENGINE_EMBEDDED_MODULE_EXPRESSION (UINT64_C(1) << 6u)
MATH_ENGINE_EMBEDDED_MODULE_GEOMETRY
Resident artifact에 geometry component가 포함됐음을 나타내는 bit다.
#define MATH_ENGINE_EMBEDDED_MODULE_GEOMETRY (UINT64_C(1) << 9u)
MATH_ENGINE_EMBEDDED_MODULE_NUMBER_THEORY
Resident artifact에 number-theory component가 포함됐음을 나타내는 bit다.
#define MATH_ENGINE_EMBEDDED_MODULE_NUMBER_THEORY (UINT64_C(1) << 5u)
MATH_ENGINE_EMBEDDED_MODULE_NUMERIC_CORE
Resident artifact에 scalar numeric core가 포함됐음을 나타내는 bit다.
#define MATH_ENGINE_EMBEDDED_MODULE_NUMERIC_CORE (UINT64_C(1) << 0u)
MATH_ENGINE_EMBEDDED_MODULE_PHYSICS
Resident artifact에 physics component가 포함됐음을 나타내는 bit다.
#define MATH_ENGINE_EMBEDDED_MODULE_PHYSICS (UINT64_C(1) << 10u)
MATH_ENGINE_EMBEDDED_MODULE_PLOT
Resident artifact에 plotting sampler가 포함됐음을 나타내는 bit다.
#define MATH_ENGINE_EMBEDDED_MODULE_PLOT (UINT64_C(1) << 8u)
MATH_ENGINE_EMBEDDED_MODULE_RNG
Resident artifact에 deterministic RNG component가 포함됐음을 나타내는 bit다.
#define MATH_ENGINE_EMBEDDED_MODULE_RNG (UINT64_C(1) << 4u)
MATH_ENGINE_EMBEDDED_MODULE_TRAJECTORY
Resident artifact에 trajectory component가 포함됐음을 나타내는 bit다.
#define MATH_ENGINE_EMBEDDED_MODULE_TRAJECTORY (UINT64_C(1) << 13u)
MATH_ENGINE_EMBEDDED_MODULE_UNITS
Resident artifact에 unit·quantity component가 포함됐음을 나타내는 bit다.
#define MATH_ENGINE_EMBEDDED_MODULE_UNITS (UINT64_C(1) << 3u)
MATH_ENGINE_EMBEDDED_RESIDENT_MODULE_BITS
현재 artifact에 정적으로 포함된 MATH_ENGINE_EMBEDDED_MODULE_* bit의 합집합이다.
#define MATH_ENGINE_EMBEDDED_RESIDENT_MODULE_BITS UINT64_C(16383)
MATH_ENGINE_EMBEDDED_STACK_CEILING_BYTES
검증 workload에서 thread stack 사용량이 넘지 않아야 하는 ceiling(byte)이다.
#define MATH_ENGINE_EMBEDDED_STACK_CEILING_BYTES UINT64_C(16384)
MATH_ENGINE_EMBEDDED_STATIC_RAM_CEILING_BYTES
Static data와 BSS가 넘지 않아야 하는 resident RAM ceiling(byte)이다.
#define MATH_ENGINE_EMBEDDED_STATIC_RAM_CEILING_BYTES UINT64_C(270336)
MATH_ENGINE_EMBEDDED_WORKSPACE_CEILING_BYTES
Caller-provided scratch workspace 한 건이 넘지 않아야 하는 ceiling(byte)이다.
#define MATH_ENGINE_EMBEDDED_WORKSPACE_CEILING_BYTES UINT64_C(131072)