Dear Everybody,
I'm trying to compile & run a very simple program, for test, using CCS6 and GCC for the MSP432 Launch Pad. The issues are:
- Compiling: two libraries are missed in the default linker configuration "gcc" "nosys", if add them it will compile.
- Run: if you make a very simple program that do really nothing like while(1){ } things seems to work, even if the debugger gives a diagnostic telling you that is unable to copy the Interrupt Vector Table from flash to ram.
But if you try to allocate some memory the program will fall into the Hard Fault Interrupt Service Routine, this I suggest is due an access to a non existent memory area. If You take a look to the map generated by GCC it looks like that the HEAP and STACK segment have a zero length. Looking into the default linker command file msp432p401.lds it seems that there's somenthig missing or wrong but am personally unable to find it out.
Final point is how the Interrupt Vector Table is declared & managed: the TI compiler store the table in RAM relative to END STACK, GCC seems to use a fixed address. At the very end: the TI doesn't copy the vector table during the initialization but it will be copied the first you call the driverlib routine Interrupt_registerInterrupt(), GCC seems it copy the table before entering main() as You can see in msp432_startup_ccs_gcc.c.
Thanks in advance for Your help. Best Regards
Marco
