Hi.
I'm having trouble developing an application for the MSP430F449. My device has 60 kB of Flash memory and 2kB of RAM and apparently it's not enough for my application or at least in the way I'm doing it.
I'm using IAR embedded workbench and at the end of the *.map file I have this:
17 136 bytes of CODE memory
700 bytes of DATA memory (+ 84 absolute )
1 816 bytes of CONST memory
I'm still a little clueless as to which of these parameters represents the RAM usage, even after reading through the forums. If you would provide me with a quick explanation I'd really appreciate it.
Up to this point the application runs just fine, but when I introduce the chunk of code that implements the complex calculations my system must do, it pops up the following error:
Error[e16]: Segment INFO (size: 0x112 align: 0x1) is too long for segment definition. At least 0x12 more bytes needed. The problem occurred while processing the segment placement command "-Z(CONST)INFO=1000-10FF", where at the moment of placement the available memory ranges were "CODE:1000-10ff"
Reserved ranges relevant to this placement:
1000-10ff INFO
My first approach to this error is to decrease the RAM usage, so I took another look at my first *.map file and there is a source file listed in the module summary table using 633 bytes in the CONST entry. I think reducing this number could solve my problem. This file is the implementation of a simple menu using an LCD display and 2 switches.
So my question to you is: What techniques are appropriate to optimize the program in order to use less RAM and perhaps use a bigger percentage of the Flash memory which I have plenty?
Thank you
André Gomes