• Stars
    star
    208
  • Rank 187,909 (Top 4 %)
  • Language
    C
  • Created over 12 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

antares uC buildsystem

Antares

Join the chat at https://gitter.im/antares_uc/Lobby

ANTARES is an all-in-one buildsystem, aimed at baremetal targets. It is designed to be portable across a lot of MCUs and adding another MCU is trivial. It uses Kconfig as seen in linux kernel and a set of homebrew Makefiles designed to ease the development process. This stuff is still pre-alpha quality, so if things don't work for you out of the box - drop me a line, or create an issue on github

Abstract.

Traditional buildsystems (cmake, scons, autotools etc.) are very painful to use when it comes to bare metal targets. Proprietary crippled IDEs from vendors like IAR/CodeComposer/Keil, etc. provide their own project management, but they are generally a pain to use especially if you are mostly used to VIM/emacs (like me). While the above IDEs make it simpler to create some 'write&forget' projects fast, they suck when it comes to maintaining a lot of shared code between different projects, different revisions of projects. etc (and that is what really lazy coders (like me) want).

The best way to manage a very configurable project with a lot of library code is Kconfig as seen in linux kernel. Mostly because it handles dependencies of parameters and you won't eventually have a huge mess in your config.h (Lots of hatred go towards u-boot and its crappy buildsystem). But you won't rip kconfig from kernel for each of your avr-led-blinker project, will you? So, there we go.

Yet another Arduino?

Let's be honest. It is not Arduino. It doesn't aim to provide any crippled IDE for your projects. You are free to use whatever IDE/editor you like. VIM/emacs users welcome. Eclipse? You're welcome. Kdevelop? Sure.
It doesn't end up with lies, trying make you think that you are writing in any 'innovative' programming language, nor aims to provide an IDE. It's mostly just plain C. Antares just handles configuring your project, building and deploying and stays out of your way. Consider it an overgrown Makefile on steroids. Although antares comes with quite some library code, you are free NOT to use any of it and exclude it from compilation. The choice is yours to make, after all.

Why not just stick to Arduino?

Personal reasons. It's unportable, ugly, very little hardware is actually supported. Most tasty chips are NOT supported at all.

So, in short antares is...

A set of Makefiles, scripts and a bunch of library code, that can be used (and reused) easily in your projects, bundled with kconfig.

Supported architectures

Currently a few architectures are supported: avr, msp430, arm(stm32), 8051 (at89, stc), pic32 Others are being added as the hardware comes along. If you want more - patches are always welcome.

Supported host operating systems

Currently only Linux and FreeBSD have been tested. Mac OS X has been recently proved to work fine after a few patches Windows might work (cygwin), but it's currently NOT the platform antares is aimed to be used with. If it turns out to be rather simple to add support - patches welcome.

Is antares buildsystem okay to compile in multiple threads?

Feel free to supply the -jXX flag to speed things up. It should work. If it doesn't - submit a bug report, and it will work sooner or later.

Any documentation?

The documentation is maintained in doc/, avaliable in English and Russian.

Any 'official' development boards?

Antares is NOT a hardware project, nor it aims to sell crippled overpriced and underpowered boards to newbies. Feel free to take any board you have around, starting with the 'closest' example and playing with menuconfig. If MCU family is supported - getting stuff to work is fast and fun.

Examples?

See antares-examples repository. These contain the ready to use templates for your projects. You can use them via aproj wizard to quickly bootstrap a new project.

Opensource?

Hell, yes. It wouldn't be any fun the other way. Although the licence is GPLv2, some library code from third parties may come with a different license. Figuring out the licensing stuff is also WiP.

3rd party code and their licensing.

ST Peripheral Libraries. Proprietary (BSD-like?) license VUSB (Dual, GPLv2+obdev exception and proprietary) lwIP (BSD-like)

Why is there so little library code for arch XXX?

Patches welcome.

Quickstart?

Have a look at docs/en/GETTING_STARTED.txt

Who?

Andrew 'Necromant' Andrianov - Initial author and core dev of Antares Nikita 'webconn' Maslov - Testing, first version of aproj wizard, bugfixing. Dmitry Suhotsky - Mostly testing in live environment Drakmail - Mac OS X testing

More Repositories

1

esp8266-frankenstein

Alternative firmware for ESP8266 modules
C
318
star
2

rf24boot

nRF24L01+ bootloader for avr and other mcus
C++
105
star
3

pl2303gpio

PL2303HX Userspace GPIO control tool
C
35
star
4

stcdude

An STC 8051 ISP programmer for linux
25
star
5

scam-o-matic

A tool to salvage usable space from crappy memory cards.
C
19
star
6

NetTTS

An utility to make use of android TTS system remotely
Java
18
star
7

aura

Universal RPC library for interfacing with your favourite hardware
C
14
star
8

nc-libs

Necromant's libraries for kicad/eeschema
13
star
9

esphome-lctech-4chanel-modules

ESPHome configs for LC-tech 4 channel modules.
C++
12
star
10

linux-rlx-upstream

Initial effort to port upstream linux kernels to MIPS RLX variant used in RTL8196/RTL8198
C
11
star
11

ezshare

Python Module to synchronize ezShare WiFi SD contents
Python
11
star
12

nrf24l01-dongle

Ultra-cheap nrf24l01 usb dongle.
Eagle
10
star
13

gpiohttpd

gpiohttpd server
Shell
9
star
14

tinypowerswitch

Firmware source for attiny2313-based power switcher
C
9
star
15

fastbootd

A stripped down standalone android fastboot server.
C
8
star
16

usniffer

Necromant's UART sniffer
C
7
star
17

nc-mods

Necromant's modules for kicad/PCBnew
6
star
18

flashadapters

different flash adapters for buspirate and the hacked router
Prolog
5
star
19

lctech-relay-altfw

Alternative nuvoton firmware for LC Tech 4 channel relay modules
C
4
star
20

esp8266-devboard-schematics

ESP8266 Devboard schematics and layout
Prolog
4
star
21

lunartool

A tool for interfacing homebrew usb stuff from userspace written in lua
Lua
4
star
22

antares-examples

Example projects for use with antares
C
3
star
23

pygpiotools

Crossplatform python tool to control GPIO pin on PL2303 and others
C
3
star
24

list2kc

A tool for generating eeschema component files out of a small text description
Python
3
star
25

hc-0X-scripts

HC-05/HC-06 setup scripts and helpers
Shell
2
star
26

anomalia-app

anomalia pocket webserver launcher app
Java
2
star
27

Sam-O-Bot

A jabber bot that delivers updates from zhurnal.lib.ru directly to your jabber client.
PHP
2
star
28

anomalia-webui

The sources for the quick&dirty pocket web server
JavaScript
2
star
29

agilia-files

My ABUILDs for Agilia linux
C
2
star
30

stc-makefile-example

STC 8051 skeleton project using a Makefile
C
2
star
31

atom-ownsync

Atom helper package to sync configs via ownCloud/nextCloud/DropBox/etc
JavaScript
2
star
32

emacs.d

My emacs customisations and helper lisp scripts
Emacs Lisp
2
star
33

hw-transformatic

My hell of a bench power supply project
Prolog
2
star
34

servomatic

proof-of-concept: attiny2313 controlling 13 servos
C
2
star
35

ampe-sw-switch

Kernel module for controlling usb host vbus lines on Allwinner A10 devices
C
2
star
36

lprobe

Prototyping linux kernel drivers in lua in userspace
2
star
37

openwrt

My openWRT branches
C
1
star
38

rumboot-tools

rumboot-tools non-official fork with added support for some weird chips
Python
1
star
39

ESP-14-STM8-sensors

Forked from bitbucket
C
1
star
40

fixnet

An android app to fix hostname and mac address on boot
Java
1
star
41

uGL

uGL graphics libray and tools
C
1
star
42

xilitra

Xilitra Bootstrap
C
1
star
43

pwrite

Utility to set the current post-code from userspace
C
1
star
44

ubi2pkt

Like pktcdvd... But with ubifs.
C
1
star
45

linux

My linux kernel branches for random hardware I have around
C
1
star
46

octowiid

A simple daemon to control a 3d printer (managed by octoprint) with Wiimote
Python
1
star
47

pktbackup-suite

A small suite of scripts for backups to packet cd/dvds
Shell
1
star
48

rtkload

rtkload out-of-kernel-tree hack
C
1
star
49

facelockd

A face lock utility for linux created with OpenCV
C++
1
star
50

utool

Execute custom script once a storage device is inserted and mounted on your android device.
Java
1
star
51

xilitra-repo

Xilitra test repository
1
star
52

hhsw-widget

widget for usb host switching for Ampe A90
Java
1
star
53

proton-loader

a small loader script to get all da photos
Shell
1
star
54

metronet

A tool to select alive networks in Moscow Subway
Java
1
star
55

aura-httpd

Instantly bring aura-based hardware nodes to the WEB with a RESTful interace.
C
1
star
56

stm32-mysensors-gateway

MySensors gateway for a cheap devboard
C++
1
star