asiekierka / agbabi

Provides GBA optimized functions for some common, handy operations.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AGB ABI Library (agbabi)

Quick Start Guide

Link with libagbabi.a via the normal means for your build environment (eg: -Lagbabi for GCC and Clang), and add the include directory via the normal means for your build environment (eg: -Iagbabi/include).

Linking will implicitly activate the armeabi library.

Include the armeabi.h and agbabi.h headers to access the armeabi and agbabi C functions.

#include <aeabi.h>
#include <agbabi.h>
#include <sys/ucontext.h> /* POSIX context switching */

int main() {
    
    unsigned int a = __aeabi_uidiv(9u, 3u);
    
    int b = __agbabi_sqrt(25u);
    
    ucontext_t c;
    getcontext(&c);
    
    return 0;
}

API Reference

Building

Requires gcc-arm-none-eabi cross compiler, and either cmake or meson for configuration.

CMake 3.18+

To cross-build libagbabi.a in directory build/:

cmake -S . -B build --toolchain=cross/agb.cmake
cmake --build build

Meson 0.56.2+

To cross-build libagbabi.a in directory build/:

meson setup build --cross-file=cross/agb.ini
meson compile -C build

About

Provides GBA optimized functions for some common, handy operations.

License:Other


Languages

Language:C 52.1%Language:Assembly 40.7%Language:CMake 3.5%Language:Meson 2.3%Language:Pawn 1.4%