tml 19 Posted May 8, 2014 Share Posted May 8, 2014 Hi, I got tired fighting with inlined assemblies to get the access to ROM over 64kB and after thorough considerations decided to move to CCSv6. But, I noticed that CCSv6 brought cooperation with MSP430 GCC (http://www.ti.com/tool/msp430-gcc-opensource) into CCSv6 and I wonder is this compiler will support 20-bit addressing natively (with memory model) as opposed to inline assembly. Do you have any experience with it? Best Regards, tml Quote Link to post Share on other sites
spirilis 1,265 Posted May 8, 2014 Share Posted May 8, 2014 The old mspgcc didn't except a last dev release @@pabigot made, but after that RedHat took on the project at TI's funding to re-do the msp430 gcc port (there were legal issues with having Peter's mspgcc supported by the official GCC project). This new RedHat port is still a bit... rough around the edges, but it does support 20-bit addressing. Use -mlarge to enable it (I think you need to add this manually to the CCS project properties). Sent from my Galaxy Note 10.1 Quote Link to post Share on other sites
tml 19 Posted May 8, 2014 Author Share Posted May 8, 2014 The old mspgcc didn't except a last dev release @@pabigot made, but after that RedHat took on the project at TI's funding to re-do the msp430 gcc port (there were legal issues with having Peter's mspgcc supported by the official GCC project). This new RedHat port is still a bit... rough around the edges, but it does support 20-bit addressing. Use -mlarge to enable it (I think you need to add this manually to the CCS project properties). Sent from my Galaxy Note 10.1 As for the mspgcc 4.6.3 I painfully got to know it doesn't support it :-) Possibly after turning on the optimization (don't know yet, didn't check), the far rom access function based on inlined assemblies stopped working properly and I thought CCS will be a better solution. But somehow I still feel gcc would be better for me if only it supported access to far rom from the C level. As for the memory model for the sake of efficiency I would rather stick to small memory model and just declare some pointers as 20-bit ones, like mentioned at http://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=Gcc47:20-Bit_Design#Data_type_attribute___a20__ Quote Link to post Share on other sites
spirilis 1,265 Posted May 8, 2014 Share Posted May 8, 2014 As for the mspgcc 4.6.3 I painfully got to know it doesn't support it :-) Possibly after turning on the optimization (don't know yet, didn't check), the far rom access function based on inlined assemblies stopped working properly and I thought CCS will be a better solution. But somehow I still feel gcc would be better for me if only it supported access to far rom from the C level. As for the memory model for the sake of efficiency I would rather stick to small memory model and just declare some pointers as 20-bit ones, like mentioned at http://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=Gcc47:20-Bit_Design#Data_type_attribute___a20__ Ok keep in mind that page and wiki references @@pabigot 's mspgcc, and any talk of 20-bit refers to his last dev release (4.7.0-based), so it won't work in the new RedHat msp430-elf-gcc. I'm not sure if what you're thinking about is possible with msp430-elf-gcc's current codebase. Sent from my Galaxy Note II with Tapatalk 4 Quote Link to post Share on other sites
pabigot 355 Posted May 8, 2014 Share Posted May 8, 2014 The 4.7 dev version of mspgcc which supports 20-bit addresses tried to support mixed memory models so code could be small with data large, or vice-versa, but GCC wasn't architected for that sort of thing so there can be issues. AFAIK the Red Hat port supports only everything-16-bit and everything-32-bit, with -mlarge having a pretty big impact on code and data size (all pointers and size_t become 32-bit). I don't have a lot of experience with it, though, since a feature I need that's in the CCS6 version still hasn't been made available in the upstream source repositories. oPossum 1 Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.