Close

Does this project spark your interest?

Become a member to follow this project and don't miss any updates

Antares: Linux kernel-like buildsystem for uCs

An all-in-one buildsystem to rule all microcontrollers

This project was created on 06/14/2014 and last updated 17 days ago.

Description
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 of complex projects. Antares includes a bunch of cross-mcu library code to get you started quickly and maintain a single code base portable across a wide range of MCUs.
This page will only feature a brief description of the antares project and a link to github (see the links section on you left). No fancy buildlogs, hardware pictures,etc, since this is a purely software project made to power YOUR projects.

To save your time:
* Host OS supported: Linux, *BSD, Mac OS X
* Compilers supported: SDCC, GCC
* Target MCUs supported: 8051 (AT89 and STC) , AVR, MSP430, PIC32, ARM/STM32 (F1X and F4X families).

If you use antares for your own project, feel free to post the links in the comments.
Details

Please note, that antares is NOT very newbie-friendly (and not documented as good as arduino is) and is aimed at more experienced developers that know and love the commandline. 

Although antares allows you to blink a LED fast and get serial output mostly instantly, its true potential can be unleashed on bigger projects where compile-time configuration gets quite complex. The ability to quickly switch the target architecture, while maintaining the common code base makes switching MCUs for your the next big revision of your project a snap. 

Antares does not come with any 'official' development boards - feel free to take any hardware you have around and start with the 'closest' example from examples repository. If the architecture is supported getting stuff to work should be fast and fun. And yes, and did I say that all your favorite arduino, maple, stm32-discovery (f1x and f4x alike) boards are supported?

Project logs
  • ESP8266 support just hit experimental

    17 days ago • 0 comments

    Yep. It's now there. Missing examples, though. With those homebrew development boards you above, that hit the HaD frontpage a few days ago I've just made it a supported platform. For now antares can build the code to run on esp8266 and link all the binary blobs. You don't need to download the sdk - everything that's needed is already in antares. The port doesn't have all the goodies like ANTARES_INIT_* macros right now, earlycon or even ATOMIC_ macros, and I think I won't be adding those until proper opensource support arrives.

    For now I've merged in the awesome microrl library and have a full-blown commandline with command history and editing running on esp8266 itself (Yay!) Not many fancy cmds, though. But it's something already:

    blackblade > uname
    Antares blackblade 0.2-rc1, Insane Mushroom @ ESP8266.
    
    blackblade > 

    I guess I'll publish my alternative ESP8266 firmware sometime in a week or so. My goal is uboot-like environment with the ability to save environment variables to flash, send TCP and UDP packets in a simpler and more efficient and sane way, rather than crippled AT commands that come with the module by default. Stay tuned.

  • Youtube video posted, screencasts upcoming

    3 months ago • 0 comments

    I completely forgotten abot that youtube video I had to make for HaD prize. Well, luckily I did make it at the very last moment, despite kdenlive crashing all over the place. 

    Looks super-messy and I hate how my voice sounds through the old shitty mic, but nevertheless - see the links section for the link to it. 

    I will be also posting a series of screencasts showing off antares as I progress towards the 0.2 release.

  • 8051 (and SDCC in general) just got ANTARES_INIT_* support

    5 months ago • 0 comments

    In the experimental branch I've just implemented the support for ANTARES_INIT_LOW/ANTARES_INIT_HIGH/ANTARES_APP macros and initcall's. Don't ask how, it's an utter hackery inside and you still have to supply your own main() and call do_antares_startup() there, but it's still better than nothing and allow for more library portability.

    I've also fixed nRF24 library so it now compiles by SDCC, so rf24boot can now be ported to 8051 and other SDCC-based architectures. The bad thing is, that since SDCC can't ditch unused fucntions rf24 library uses up ~12KiBs of flash space. 14 If you disable hacky size optimisations. 

View all 5 project logs

Build instructions
  • 1

    Install dependencies:  git, GNU/make, gcc, flex, bison, gperf

    Debian/ubuntu: sudo apt-get install build-essential git flex bison gperf

    Arch Linux: sudo pacman -S git flex bison gperf

    OS X: brew install coreutils git make

  • 2

    Compile and install kconfig-frontends

    Grab the latest tarball, http://ymorin.is-a-geek.org/projects/kconfig-fron...

    unpack

    cd kconfig-frontends

    ./configure --prefix=/usr

    make 

    sudo make install

  • 3

    Check out the latest antares master to your home directrory:

    git clone git://github.com/nekromant/antares.git ~/.antares

See all instructions

Discussions

David Bender wrote 4 months ago null point

Are there any plans to support the Kinetis Freedom boards?

Are you sure? [yes] / [no]

Necromant wrote 4 months ago null point

I have no hardware to test/support them right now, but patches are always welcome.
Since kinetis is are cortex ARMs, adding some basic support for them won't be very hard. I do have stellaris (evalbot) on my TODO list, though.
If you want to do it yourself - see src/arch/arm/stm32 as a reference, the process is very straightforward:
* Add src/arch/arm/kinetis/arch.mk with all the stuff you need and link it into src/arch/arm/arch.mk
* Add all kconfig stuff to src/arch/arm/kinetis/kcnf.
* Create an src/arch/arm/kinetis/Makefile and add periph libraries and startup code.
* Have a look at src/arch/arm/include/antares.h and see what you need to do with ld script/ assembly startup to make ANTARES_INIT_ work. This might be tricky, drop me an email if you get stuck.
* Add all the periph libraries to src/arch/arm/kinetis/ and edit Makefile to build them (OPTIONAL)
* See src/lib/console/ and add earlycon driver to get debugging working (OPTIONAL)
* Submit a patch
...
PROFIT


So far my top priority stuff to do:
* Finish portable ANTARES_ATOMIC_* macros, so that libraries can use atomics _portably_ when they need it.
* Some more polishing in the buildsystem (mainly fix the broken ARCH_FEATURES)
* Polish and push Neuromatrix DSP port.
* Unit-testing framework
* Config inheritance, multi-build, etc...
* Verilog/FPGA mode that is still being implemented. (Xilinx commandline toos are really weird)
* Finally record a screencast for HaD prize.


Idea of adding a web-interface kconfig/build interface has also been flying around for a while, but I'm not really sure I'll ever have the time to do it (It's all a hobby project after all).

Are you sure? [yes] / [no]

cruz.monrreal wrote 5 months ago null point

"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."

OH. FUCK. YES! I'll be keeping a close eye on this. My system of choice is Arch Linux/vim. If I wasn't currently about to start a hardware project of my own that I've been wanting to work on for a while, I would so jump on this.

Best of luck!

Are you sure? [yes] / [no]

Adam Fabio wrote 5 months ago null point

As an old school program, UV erase, reprogram guy - this sounds great! I'd love to see a simple setup for my microcontrollers similar to the one I've come to know and love for setting up embedded Linux kernels. Thanks for entering Antares in The Hackaday Prize!
Try to keep the updates flowing, the community judging starts soon!

Are you sure? [yes] / [no]

Necromant wrote 5 months ago null point

Thanks, I hope you'll like antares once give it a try for a few projects. I feel realistic about the hackaday prize and pretty much expect most of the crowd to ignore antares, mostly because it's way not as newbie friendly as arduino is. But if it attracts a bunch of old-school hardcore kernel devs that will like it, use it and send patches and bug reports - this will all be well worth it!

Are you sure? [yes] / [no]

Similar projects