Feature Request #305 - Add Assembly Compile Options
Posted: Mon Aug 12, 2013 6:33 am
I'm starting this thread to hopefully encourage a discussion about Feature Request #305 - Adding Assembly Compile Options to the build settings.
In the comments for this feature request, Eran has made good argument for why this feature has not yet been implemented. I agree with this premise, but I also believe that there is a good case for it, and I'll attempt to articulate that here.
The rise of embedded computers. The desktop is playing less of a role than it did 10 years ago. I don't think the desktop is dead, or even dying, but I think many of the things we used to use desktops for are now being done on embedded computers. Case in point: notice the rise in popularity of devices like Arduino, BeagleBone, Raspberry Pi, and now Intel's Minnow. I know these run Linux and are not "Bare Metal", but those who wish to build devices like these (Like me) must do "Bare Metal" programming. There isn't a great open source IDE for this Bare Metal programming. CodeLite and Code::Blocks are really the best, and I prefer CodeLite (Hail! to the developers). I understand that CodeLite may not have been intended for embedded development, but CodeLite is actually a pretty darn good tool for this kind of programming.
I acknowledge that it is not necessary to use assembly to program embedded devices, but many libraries written by the ARM, STM, TI, and other MCU manufacturers release assembly files that are necessary to boot and initialize the MCU. Also, ARM has also made special instructions for the processors (e.g. SIMD instructions) that can only be used from assembly. Granted, these features are usable from inline assembly also, but sometimes it's more elegant to use an assembly file, and assembly files sometime contain syntax that can't be done in inline assembly (at least that I'm aware of).
I think there are likely other programming disciplines that may use assembly as well, and I hope others can point them out.
In CodeLite's "Syntax Highlight and Fonts" options, there is a category for "Assembly" but there is no toolchain integration for assembly files, which seems inconsistent IMO. Futhermore, the assembler is part of the GCC toolchain, and often part of other toolchains as well. It would be nice to have CodeLite make the integration with this part of the toolchain more intuitive and "natural".
If I had the skills, I'd submit a patch myself, but I don't I hope others will contribute their thoughts and the developers will give this feature their thoughtful consideration.
Thanks.
In the comments for this feature request, Eran has made good argument for why this feature has not yet been implemented. I agree with this premise, but I also believe that there is a good case for it, and I'll attempt to articulate that here.
The rise of embedded computers. The desktop is playing less of a role than it did 10 years ago. I don't think the desktop is dead, or even dying, but I think many of the things we used to use desktops for are now being done on embedded computers. Case in point: notice the rise in popularity of devices like Arduino, BeagleBone, Raspberry Pi, and now Intel's Minnow. I know these run Linux and are not "Bare Metal", but those who wish to build devices like these (Like me) must do "Bare Metal" programming. There isn't a great open source IDE for this Bare Metal programming. CodeLite and Code::Blocks are really the best, and I prefer CodeLite (Hail! to the developers). I understand that CodeLite may not have been intended for embedded development, but CodeLite is actually a pretty darn good tool for this kind of programming.
I acknowledge that it is not necessary to use assembly to program embedded devices, but many libraries written by the ARM, STM, TI, and other MCU manufacturers release assembly files that are necessary to boot and initialize the MCU. Also, ARM has also made special instructions for the processors (e.g. SIMD instructions) that can only be used from assembly. Granted, these features are usable from inline assembly also, but sometimes it's more elegant to use an assembly file, and assembly files sometime contain syntax that can't be done in inline assembly (at least that I'm aware of).
I think there are likely other programming disciplines that may use assembly as well, and I hope others can point them out.
In CodeLite's "Syntax Highlight and Fonts" options, there is a category for "Assembly" but there is no toolchain integration for assembly files, which seems inconsistent IMO. Futhermore, the assembler is part of the GCC toolchain, and often part of other toolchains as well. It would be nice to have CodeLite make the integration with this part of the toolchain more intuitive and "natural".
If I had the skills, I'd submit a patch myself, but I don't I hope others will contribute their thoughts and the developers will give this feature their thoughtful consideration.
Thanks.