其中data_section是针对数据空间的,code_section是针对程序空间的。 具体的使用办法是: #pragma CODE_SECTION(fn, ”my_sect”) int fn(int x) { return c; } #pragma DATA_SECTION(bufferB, ”my_sect”) char bufferA[512]; char bufferB[512]; //
#pragma DATA_SECTION 其中data_section是针对数据空间的,code_section是针对程序空间的,具体的使用办法是 #pragma DATA_SECTION(bufferB, ”my_sect”) char bufferB[512]; 在.cmd文件中建立对应的section就可以使用了。 注意:在使用#pragma DATA_SECTION时,应该先开辟一个空间,即:#pragma DATA_SECTION(bufferB,...
CODE_SECTION用来定义代码段 DATA_SECTION用来定义数据段 例如:在c文件中定义了一个data段my_sect和一个code段ramfuncs,如下: #pragma DATA_SECTION(bufferB, ”my_sect”) char bufferB[512]; #pragma CODE_SECTION(dragon_update,"ramfuncs"); Uint16 dragon_update(UPDATE_SOURCE_TYPE *update_flag) { 。。
这种办法是比较常用的,将算法所在函数的首地址放入代码段(CODE_SECTION)ramfuncs中,具体形式如下: #pragma CODE_SECTION(adc_isr,"ramfuncs"); 默认在cmd文件中,ramfuncs是在flash中进行加载,并在RAML0进行运行的。 因此在main函数中需要有下列语句,代表dsp开机运行时程序从flash加载到ram中运行。 MemCopy(&Ramfuncs...
其中data_section是针对数据空间的,code_section是针对程序空间的,具体的使用办法是 #pragma DATA_SECTION(bufferB, ”my_sect”) char bufferB[512]; 1. 2. 在.cmd文件中建立对应的section就可以使用了。 注意:在使用#pragma DATA_SECTION时,应该先开辟一个空间,即:#pragma DATA_SECTION(bufferB, ”my_sect...
CODE_SECTION用来定义代码段,DATA_SECTION用来定义 数据段。 #pragma必须在符合被定义和使用前使用,并且不能在函数体内 声明#pragma。,下例程序将全局变量数组a100单独编译成一个新的段,取名为“newsection” #pragma DATA_SECTION(a ,“newsection”) unsigned int a100; main( ) 程序内容 ,C运行环境,寄存器使用...
利用#pragma CODE_SECTION指令可以将程序从Flash搬到RAM中运行,从而提高程序执行速率。 这个部分后面涉及程序优化时再进行详细描述。 RFFT工程实例 1.拷贝dsp FPU运算库到工作区间,便于工程引用; 2.给工程添加dsp FPU运算库,从controlSUITE拷贝; 3.FPU库头文件路径引用及编译器相关设置 ...
最近我升级我的DSP 代码,我发现我改变了函数运行的Code section 的名字,DSP 会停止,不执行任何代码。 我使用XDS Pro 去跟踪代码,发现代码进入了一个汇编执行代码的死循环。调试了很长时间,发现我改变了Code section 的名字后,代码正常。 这个令我非常困惑,以下两个问题: ...
#pragma DATA_SECTION 其中data_section是针对数据空间的,code_section是针对程序空间的,具体的使用办法是 #pragma DATA_SECTION(bufferB, ”my_sect”) char bufferB[512]; 在.cmd文件中建立对应的section就可以使用了。 #pragma DATA_SECTION(函数名或全局变量名,"用户自定义在数据空间的段名"); ...
5) 声明 寄存器变量(register)声明对short,integer,pointer等所有类型的变量都有效。 6) 预处理指令(#pragma)预处理器会忽略所有不支持的预处理指令;支持下列预处理指令:CODE_SECTION, DATA_SECTION和FUNC_EXT_CALLED。反馈 收藏