jumping in here cause i was tagged, and trying to follow whats going on… 
so, we are talking about potentially porting monome module code to vcvrack, which is a c++ project targeting win/mac/linux. okey dokey
and it has crept in that we do indeed have one layer of the aleph codebase compiling under c++ - namely the BEES application logic.
i’m not sure. sounds plausible. but the way we have dealt with it in bees is to avoid the ASF altogether.
originally, the hierarchy of components goes kind of like this:
1. ASF [lowest level drivers and stuff]
2. aleph/avr32_lib [aleph-specific boilerplate and drivers]
3. aleph/apps/bees [application logic]
we made avr32_sim a drop-in replacement for avr32_lib, using the same headers but replacing any calls to ASF functions. mostly its just placeholders.
since then, the modules were developed, and monome libavr32 was created from avr32_lib, and we just finished refactoring such that we now have
1. ASF [lowest level drivers and stuff]
2. libavr32 [common boilerplate and drivers for monome modules]
3. aleph/avr32 [aleph-specific stuff that wasn't included in libavr32]
4. aleph/apps/bees [application logic]
and now i think avr32_sim is probably a little bit broken…
but that’s just a limitation of the cross-compiler?
it seems like there are implicitly two different topics here:
- literally targeting the AVR32 hardware with c++. i agree that this is problematic for several reasons.
- targeting x86 with a c++ project that includes application logic from monome modules. i don’t see why this should be a problem. if the module project structure makes it difficult i think that’s an argument for refactoring the modules to make the application logic more independent and target-agnostic.
thought that all the Mutable stuff was on AVR, but on closer inspection the AVR ones are all Atmega644, the 32-bit modules use ARM Cortexes.
yeah, just to be clear when people say AVR they genreally mean AVR8 (atmega), AVR32 is more of an odd duck. kind of a relic of the time before ARM dominated the 32-bit RISC space, and unfortunately atmel has more or less stopped supporting it with new toolchains or libraries.
as sam says, avr and avr32 have very little in common apart from both being atmel products; avr8 continues to have low-cost, low-power applications and has received more support in the last 5 years.
i agree with this. if this were my project i would just focus on porting the core logic of each application…