TI中文支持网
TI专业的中文技术问题搜集分享网站

Code Composer Studio 使用#define 预编译内容出现声明后没有编译

版本: Code Composer Studio  Version: 10.1.0.00010 (实际在Ver 5.6上也出现相同的问题)

此处有一个异常点,这个变量查找定义的时候,出现了2个索引结果,一个相对路径,一个绝对路径,实际文件只有一个,而且都是通过linked 方式添加文件

Error msg:

"E:/000_elevator_project/MT70-MCB-A/MT70-MCB-AU111-V215-ADY/source/ns_function/ady.c", line 79: error #137: struct "FLAG" has no field "HallFloor49to64UpDisplay"
"E:/000_elevator_project/MT70-MCB-A/MT70-MCB-AU111-V215-ADY/source/ns_function/ady.c", line 79: error #137: struct "FLAG" has no field "HallFloor49to64DnDisplay"
"E:/000_elevator_project/MT70-MCB-A/MT70-MCB-AU111-V215-ADY/source/ns_function/ady.c", line 80: error #137: struct "FLAG" has no field "HallFloor65to80UpDisplay"
"E:/000_elevator_project/MT70-MCB-A/MT70-MCB-AU111-V215-ADY/source/ns_function/ady.c", line 80: error #137: struct "FLAG" has no field "HallFloor65to80DnDisplay"

实际根据编译器的颜色提示,该代码已经声明并参与到编译

此处已在一个公共头文件声明

#define MT70_ADY
//#define MT70_XF

ady.c文件中也包含对应的头文件

#ifndef ADY_H
#define ADY_H
//#pragma once
#include "DSP2833x_Device.h"//这个头文件已包含全部头文件
#include "elevator_cfg.h"
#include "stdint.h"

确定没有编译的原因是这个Flag结构体分配在RAMM14,

            name            origin          length         used          unused      attr    fill

  RAMM14                0000d100   00000700  000004a5  0000025b  RWIX

如果被编译此处的未使用空间应该会减少到90左右,证明实际没有分配内存

所以奇怪的点就是为什么已经#define 而且编辑器代码块提示没有灰色的前提下出现未编译的情况。请了解的人帮帮忙,已经调试2天未解决问题。

Green Deng:

找了一圈同样报错的问题,但是似乎没有跟你相似的问题类型。

我比较好奇,代码中"Flag.HallFloor1to16UpDisplay.all" ~ "Flag.HallFloor33to48UpDisplay.all"也是同样的定义方法吗?为什么这几个定义的没有问题?

赞(0)
未经允许不得转载:TI中文支持网 » Code Composer Studio 使用#define 预编译内容出现声明后没有编译
分享到: 更多 (0)