Displaying 1 to 20 from 41 results

inih - Simple .INI file parser in C, good for embedded systems

  •    C

inih (INI Not Invented Here) is a simple .INI file parser written in C. It's only a couple of pages of code, and it was designed to be small and simple, so it's good for embedded systems. It's also more or less compatible with Python's ConfigParser style of .INI files, including RFC 822-style multi-line syntax and name: value entries. To use it, just give ini_parse() an INI file, and it will call a callback for every name=value pair parsed, giving you strings for the section, name, and value. It's done this way ("SAX style") because it works well on low-memory embedded systems, but also because it makes for a KISS implementation.

rt-thread - RT-Thread is an open source IoT operating system from China.

  •    C

RT-Thread is an open source IoT operating system from China, which has strong scalability: from a tiny kernel running on a tiny core, for example ARM Cortex-M0, or Cortex-M3/4/7, to a rich feature system running on MIPS32, ARM Cortex-A8, ARM Cortex-A9 DualCore etc. The device driver is more like a driver framework, UART, IIC, SPI, SDIO, USB device/host, EMAC, MTD NAND etc. The developer can easily add low level driver and board configuration, then combined with the upper framework, he/she can use lots of features.

ferret - Ferret is a free software lisp implementation for real time embedded control systems.

  •    Makefile

Ferret is a free software lisp implementation designed to be used in real time embedded control systems. Ferret lisp compiles down to self contained C++11. Generated code is portable between any Operating System and/or Microcontroller that supports a C++11 compliant compiler. It has been verified to run on architectures ranging from embedded systems with as little as 2KB of RAM to general purpose computers running Linux/Mac OS X/Windows. A program that sums the first 5 positive numbers.

bo - The Swiss army knife of data examination and manipulation

  •    C

The Swiss army knife of data examination and manipulation. This is the tool to use when you need to visualize or convert data in different formats.

libhydrogen - A lightweight, secure, easy-to-use crypto library suitable for constrained environments

  •    C

The Hydrogen library is a small, easy-to-use, hard-to-misuse cryptographic library. The documentation is maintained in the libhydrogen wiki.

fwup - Configurable embedded Linux firmware update creator and runner

  •    C

fwup is a configurable image-based software update utility for embedded Linux-based systems. It primarily supports software upgrade strategies that update entire root filesystem images at once. This includes strategies like swapping back and forth between A and B partitions, recovery partitions, and various trial update/failback scenarios. All software update information is combined into a ZIP archive that may optionally be cryptographically signed. fwup has minimal dependencies and runtime requirements. Scripts are intentionally limited to make failure scenarios easier to reason about. Distribution of software update archives is not a feature. Users can call out to fwup to run upgrades from external media, stream them from the network, or script them using a tool like Ansible if so desired. Uses standard ZIP archives to make debugging and transmission simple.

mini-snmpd - Mini SNMPd is a minimal implementation targeted at small or embedded UNIX systems with limited resources

  •    C

The Mini SNMP daemon is a minimal implementation of an SNMP daemon. It is targeted at embedded systems with limited disk and memory resources. All configuration is done using command line arguments. It supports basic CPU, memory, disk, and network interface statistics. mini-snmpd is not as flexibible as, and does not support the same features as, the de-facto standard net-snmp, but this also means it does not have the same footprint and overhead.

ntpclient - Fork of Larry Doolittle's ntpclient with added damon, syslog, and IPv6 support

  •    C

ntpclient is an NTP client for UNIX-like systems, RFC 1305 and RFC 4330. Its functionality is a small subset of ntpd, chrony, OpenNTPd, and xntpd. Since it is much smaller, it is also more relevant for embedded systems in need for only a client. The goal of ntpclient is not only to set your computer's clock right once, but keep it there.

ibutterfree - IButterFree is a lightweight embedded library for displays and touchscreens providing everything required to build a fully featured embedded GUI

  •    C

IButterFree is a lightweight embedded library for displays and touchscreens providing everything required to build a fully featured embedded GUI. The IButterFree library has been designed to be the smallest, fastest and most advanced embedded library for display and touchscreen solutions. For more information, access the official website. IButterFree may be modified and distributed under the terms of the MIT license. See the LICENSE file for details.

embb - Embedded Multicore Building Blocks (EMB²): Library for parallel programming of embedded systems

  •    C++

The Embedded Multicore Building Blocks (EMB²) are an easy to use yet powerful and efficient C/C++ library for the development of parallel applications. EMB² has been specifically designed for embedded systems and the typical requirements that accompany them, such as real-time capability and constraints on memory consumption. As a major advantage, low-level operations are hidden in the library which relieves software developers from the burden of thread management and synchronization. This not only improves productivity of parallel software development, but also results in increased reliability and performance of the applications. EMB² is independent of the hardware architecture (x86, ARM, ...) and runs on various platforms, from small devices to large systems containing numerous processor cores. It builds on MTAPI, a standardized programming interface for leveraging task parallelism in embedded systems containing symmetric or asymmetric (heterogeneous) multicore processors. A core feature of MTAPI is low-overhead scheduling of fine-grained tasks among the available cores during runtime. Unlike existing libraries, EMB² supports task priorities and affinities, which allows the creation of soft real-time systems. Additionally, the scheduling strategy can be optimized for non-functional requirements such as minimal latency and fairness.

printf - Tiny, fast, non-dependent and fully loaded printf implementation for embedded systems

  •    C

This is a tiny but fully loaded printf, sprintf and (v)snprintf implementation. Primarily designed for usage in embedded systems, where printf is not available due to memory issues or in avoidance of linking against libc. Using the standard libc printf may pull a lot of unwanted library stuff and can bloat code size about 20k or is not 100% thread safe. In this cases the following implementation can be used. Absolutely NO dependencies are required, printf.c brings all necessary routines, even its own fast ftoa (float), ntoa (decimal) conversion. If memory footprint is really a critical issue, floating point and 'long long' support and can be turned off via the PRINTF_SUPPORT_FLOAT and PRINTF_SUPPORT_LONG_LONG compiler switches. When using printf (instead of sprintf/snprintf) you have to provide your own _putchar() low level function as console/serial output.

TinyCog - Small Robot, Toy Robot platform

  •    C++

A collection of speech, vision, and movement functionalities aimed at small or toy robots on embedded systems, such as the Raspberry Pi computer. High level reasoning, language understanding, language gneration and movement planning is provided by OpenCog. The current hardware platform requires an RPI3 computer, a Pi Camera V2 and a USB Microphone; other sensor/detector components are planned.

gnu-eprog - Embedded Programming with the GNU Toolchain

  •    XSLT

This is a short tutorial on using the GNU toolchain for bare metal programming. The tutorial uses Qemu to simulate an ARM board, and provides instructions to test programs within the simulated machine. The following topics will be covered. The tutorial is written in asciidoc. The asciidoc source is converted to DocBook and then rendered to HTML.

EasyGUI - Easy GUI for microcontrollers

  •    C

EasyGUI is lightweight, in general platform independent but highly optimized for STM32 Chrom-ART DMA2D peripherals for drawing operations.

ESP_AT_Lib - Communicate with ESP8266 from host MCU using AT parser library

  •    C

ESP-AT Library commands parser is a generic, platform independent, library for communicating with ESP8266 Wi-Fi module using AT commands. Module is written in C99 and is independent from used platform. Its main targets are embedded system devices like ARM Cortex-M, AVR, PIC and others, but can easily work under Windows, Linux or MAC environments.

PiScope - Turn your Raspberry Pi into an Oscilloscope/XY Plotter with Python

  •    Python

An oscilloscope is a laboratory instrument commonly used to display and analyze the waveform of electronic signals. In effect, the device draws a graph of the instantaneous signal voltage as a function of time. A XY Plotter is an instrument to plot a voltage variable with respect to another voltage variable. This is in contrast to the oscilloscope which plots a voltage variable with respect to time.

signpost - Exploring what happens when you put computers on sign posts.

  •    CSS

The Signpost project is a modular city-scale sensing platform that is designed to be installed on existing signposts. It is powered through solar energy harvesting, and provides six slots for generic sensing tasks. Modules have access to a set of shared platform resources including power, communication, gps-based location and time, storage, and higher-performance computation, and they use a Signpost-specific software API that enables not only use of these resources, but also supports the development of inter-module applications. The project is driven by several core applications, but also strives to be an upgradeable and adaptable platform that supports new applications for scientists and cities. Modules can be added and removed from the platform after deployment without disassembling the installed Signpost, reprogramming the Signpost, or interrupting the other functions of the Signpost. Additionally, by providing APIs to modules that support common operations, developing and deploying a sensing application in a city is significantly streamlined. A focus of this project is ensuring that domain scientists and researchers interested in city-scale applications can effectively leverage this platform to accelerate their projects.

emtrees - Tree-based machine learning classifiers for embedded systems

  •    Python

Tree-based machine learning classifiers for microcontroller and embedded systems. Train in Python, then do inference on any device with support for C.