I am trying to port a project that was written in IAR Workbench for ARM to Segger Embedded Studio. This project was built for an nRF52832 and compiles well with both, IAR and GCC toolchains. According to NordicSemi, the version that is supported by their nRF5 SDK (15.2) requires SES 3.40. So, I installed SES 3.40 for ARM. Additionally, I installed the nordic nRF package.
I run into a couple of issues that have to do with toolchain configuration though.
1) In the project, several settings have been defined in a specific headerfile, let's call it "mysettings.h" for the sake of argument. The headerfile is automatically included in IAR's workbench project before compilation of each C module through an IAR EW IDE setting called "Preinclude file". In GCC, I can do the same by specifying "-include mysettings.h" on the commandline. I read SES uses the GCC compiler, but it won't accept the -include argument - not through the IDE nor on the commandline. I can't find a similar setting in the IDE either. Is it possible to "Pre-include" a file somehow?
2) The environment keeps complaining my license has expired (I installed SES a couple of years ago on this machine...). According to the NordicSemi website, SES is free to use with nRF5x. How do I tell SES about this? Again, NordicSemi's website shows a popup that should be generated by SES that seems to provide a dropdown box where we're supposed to request a license with, but I have never seen that popup. Help?
3) I require an uninitialized global structure (its contents should survive a reboot of the system). In IAR, there's a language extension modifier named "__no_init", but that is very much IAR specific. How can I keep SES from initializing the variable?
4) The implementation of C11 seems incomplete. Where is stdatomic.h for example?
I run into a couple of issues that have to do with toolchain configuration though.
1) In the project, several settings have been defined in a specific headerfile, let's call it "mysettings.h" for the sake of argument. The headerfile is automatically included in IAR's workbench project before compilation of each C module through an IAR EW IDE setting called "Preinclude file". In GCC, I can do the same by specifying "-include mysettings.h" on the commandline. I read SES uses the GCC compiler, but it won't accept the -include argument - not through the IDE nor on the commandline. I can't find a similar setting in the IDE either. Is it possible to "Pre-include" a file somehow?
2) The environment keeps complaining my license has expired (I installed SES a couple of years ago on this machine...). According to the NordicSemi website, SES is free to use with nRF5x. How do I tell SES about this? Again, NordicSemi's website shows a popup that should be generated by SES that seems to provide a dropdown box where we're supposed to request a license with, but I have never seen that popup. Help?
3) I require an uninitialized global structure (its contents should survive a reboot of the system). In IAR, there's a language extension modifier named "__no_init", but that is very much IAR specific. How can I keep SES from initializing the variable?
4) The implementation of C11 seems incomplete. Where is stdatomic.h for example?