Embedded 嵌入式c内存不足

Embedded 嵌入式c内存不足,embedded,Embedded,Hii我是嵌入式C编程的初学者,正在使用code composer studio在launchpad MSP430上构建项目。但在该板上构建项目时,我收到错误消息:“没有有效的内存范围(null)可用于放置.text” 下面是我的代码: SECTIONS { .bss : {} > RAM /* GLOBAL & STATIC VARS */ .data : {} > RAM

Hii我是嵌入式C编程的初学者,正在使用code composer studio在launchpad MSP430上构建项目。但在该板上构建项目时,我收到错误消息:“没有有效的内存范围(null)可用于放置.text”

下面是我的代码:

SECTIONS
{
.bss        : {} > RAM                  /* GLOBAL & STATIC VARS              */
.data       : {} > RAM                  /* GLOBAL & STATIC VARS              */
.sysmem     : {} > RAM                  /* DYNAMIC MEMORY ALLOCATION AREA    */
.stack      : {} > RAM (HIGH)           /* SOFTWARE SYSTEM STACK             */

 .text        : {} > FLASH // Here it says  program will not fit into 
                           // available memory.  placement with alignment 
                           // fails for section ".text" size 0x499a.

.cinit      : {} > FLASH                /* INITIALIZATION TABLES             */
.const      : {} > FLASH                /* CONSTANT DATA                     */
.cio        : {} > RAM                  /* C I/O BUFFER                      */

.pinit      : {} > FLASH                /* C++ CONSTRUCTOR TABLES            */
.init_array : {} > FLASH                /* C++ CONSTRUCTOR TABLES            */
.mspabi.exidx : {} > FLASH              /* C++ CONSTRUCTOR TABLES            */
.mspabi.extab : {} > FLASH              /* C++ CONSTRUCTOR TABLES            */

.infoA     : {} > INFOA              /* MSP430 INFO FLASH MEMORY SEGMENTS */
.infoB     : {} > INFOB
.infoC     : {} > INFOC
.infoD     : {} > INFOD
“MSP430启动板”是用于具有16、64或128Kb闪存的启动板的名称。您的
.text
段略大于18Kb。如果你有一块16Kb的电路板,它当然不适合


您可以尝试应用编译器优化,但这会影响调试应用程序的容易程度。还可以在源代码级别提高代码的空间效率,特别是如果您链接了大型或复杂的库(如C math或stdio),或者使用了可以使用整数或定点的浮点操作

txt部分包含程序段,并最终登录到微控制器的闪存中。此处代码的文本部分大于可用空间。

该错误的可能原因: 您没有为此使用正确的链接器脚本文件 控制器,或者您的代码太大,无法放入.txt文件 所以试着用一个简单的代码来构建它, 如果运行正确,则链接器脚本文件正常,否则错误的原因是代码大小, 在这种情况下,你有两个选择。 1-优化代码以减小其大小。 2-修改链接器脚本文件并增加
.txt节与其他flash节(如Const data节)相比,这些都是secrion,但为了理解,我们需要代码和节的大小。你能粘贴你的链接器脚本和地图文件吗?