请帮我改下错
#include <stdio.h>
#include \"tms320lf2407.h\"
interrupt void nothing() //哑中断子程序
{
return;
}
void main()
{
/* write a string to stdout */
puts(\"hello world!\\n\"
;
}
错误信息如下
>> cannot allocate .sysmem in B1_DARAM (page 1)
>> errors in input - ./Debug/test.out not built
请帮我看下如何改正,是什么错误
cdm 文件中对 B1_DARAM 的定义可能有点不合适.
MEMORY
{
PAGE 0 :
VECTORS : origin = 0000h , length = 0040h /* 复位与中断向量 */
FLASH1 : origin = 1000h , length = 3000h /* 片内FLASH SECTOR1 */
FLASH2 : origin = 4000h , length = 3000h /* 片内FLASH SECTOR2 */
FLASH3 : origin = 7000h , length = 1000h /* 片内FLASH SECTOR3 */
PAGE 1 :
B2_DARAM : origin = 0060h , length = 0020h /* 片内DARAM B2 块 */
B0_DARAM : origin = 0200h , length = 0100h /* 片内DARAM B0 块 */
B1_DARAM : origin = 0300h , length = 0100h /* 片内DARAM B1 块 */
STACK : origin = 0800h , length = 0800h /* 堆栈空间 */
EXTRAM : origin = 8000h , length = 8000h /* 扩展RAM */
}
/*-------------------------------------------------------------------------*/
SECTIONS
{
.vecs : { } > VECTORS PAGE 0 /* 中断向量表 */
.text : { } > FLASH1 PAGE 0 /* 程序代码 */
.cinit : { } > FLASH2 PAGE 0 /* 初始化变量和常数表 */
.pinit : { } > FLASH2 PAGE 0 /* 初始化变量和常数表 */
.switch : { } > FLASH3 PAGE 0 /* SWITCH语句空间 */
.const : { } > B0_DARAM PAGE 1 /* 常数 */
.econst : { } > B0_DARAM PAGE 1 /* 大存储器模式常数 */
.bss : { } > EXTRAM PAGE 1 /* 全局和静态变量“.cinit” */
.ebss : { } > EXTRAM PAGE 1 /* 全局和静态变量“.cinit”大存储器模式 */
.stack : { } > STACK PAGE 1 /* 堆栈 */
.sysmem : { } > B1_DARAM PAGE 1 /* 动态内存申请 */
.esysmem : { } > B1_DARAM PAGE 1 /* 宏函数动态内存申请 */
}
/***********************************************************************/ B1_DARAM : origin = 0300h , length = 0100h /* 片内DARAM B1 块 */
这是在.cmd中的定义,我觉得挺合适的啊,错在哪?请大侠帮忙小菜分析一下
B1
_DARAM 只有 100H, 而 sysmem 段大概比较大,放不下。改成:
.sysmem : { } > EXT_RAM PAGE 1 /* 动态内存申请 */
我想应该可以通过了。
改两行吧:
.sysmem : { } > EXTRAM PAGE 1 /* 动态内存申请 */
.esysmem : { } > EXTRAM PAGE 1 /* 宏函数动态内存申请 */
虽然是初学者,但是我为自己这么弱的问题而惭愧,你有哪些好书或者好的电子读物给我推荐么?我目前手里有《TMS320LF240xDSP,C语言开发应用》《DSP集成开发环境CCS开发指南》和2407的datasheet.给我推荐一些好书或者经验吧。多谢了