现在的位置: 首页 > 综合 > 正文

U-boot-1.1.6-2008R1到vdsp5(bf561)的移植记录(2): .macro

2013年09月18日 ⁄ 综合 ⁄ 共 635字 ⁄ 字号 评论关闭
 

  
Gcc4.1的汇编器支持.macro,就是汇编中的宏定义,如下所示:
.macro serial_early_init
#ifdef CONFIG_DEBUG_EARLY_SERIAL
     call _serial_initialize;
#endif
.endm
上述片断来自于u-boot-1.1.6-2008R1/cpu/blackfin/serial.h,它就是定义了一个叫做serial_early_init的宏。但是在vdsp5下编译的时候将出错,错误信息为:
[Error ea5004] "../../cpu/blackfin/serial.h":211 Syntax Error in :
.macro serial_early_init
syntax error is at or near text 'serial_early_init'.
Attempting error recovery by ignoring text until the ';'
一种解决方法是用#define来代替.macro,但是在#define的宏定义中是不能再出现#if这样的条件编译的,因此只能将#if放在宏定义的外面,上述代码修改后如下所示:
#ifdef CONFIG_DEBUG_EARLY_SERIAL
     #define serial_early_init   /
              call _serial_initialize;
#else
     #define serial_early_init  
#endif

 

【上篇】
【下篇】

抱歉!评论已关闭.