工具/软件:
您好、
CPU1工程中定义了一个全局结构、我们的用例是 从 CPU2获取结构成员的存储器地址、访问这些成员并读取其中存储的值。
结构声明如下所示、相关成员如下 RawAdcData.w[0] 而这又是指向的 stRawAdcData.RecRPhaseLegBCur :
typedef struct { float RecRPhaseLegBCur; float BatLegAVolt; /**snipped**/ } stRawAdcData; #define RAW_ADC_SIZE sizeof( stRawAdcData ) / sizeof( float ) typedef union { stRawAdcData st; float w[ RAW_ADC_SIZE ]; } uRawAdcData; uRawAdcData RawAdcData;
根据链接器文件、此变量存储在全局共享 RAM (.bss)中。
我 使用了以下 信息 从 输出文件中获取 数据:从.out-file - Code Composer Studio 论坛- Code Composer Studio︎- TI E2E 支持论坛
但我无法在映射文件中找到此成员变量。
下面是我做的:
从 ofd2000的输出中获得:
使用的命令: "c:/ti/ccs1270/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/bin/ofd2000.exe --obj_display=none、sections -v cpu1.out
<8> ".bss" Load Address: 0x0000f800 Run Address: 0x0000f800 Size: 0x1a8e Alignment: 2 Loaded Onto Device: Yes Address Unit Size: 16 bits File Offset: 0x1034 # Relocs: 0 Section Type: SHT_NOBITS ELF sh_flags: 0x3 ELF sh_flag: SHF_WRITE ELF sh_flag: SHF_ALLOC TI ext_flags: 0x0 (null) (null)
sect_file_ptr = 0x1034
sect_base = 0x0000f800
查看 nm2000的输出、无法获取的成员变量的位置 RawAdcData 。 下面是我得到的:
使用的命令: "c:/ti/ccs1270/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/bin/nm2000.exe -l cpu1.out
[5234] |0x00011140|304|GLOB |OBJT |HIDN |8 |RawAdcData
没有关于" .w[0] "工会成员或 RecRPhaseLegBCur
如果我遗漏了任何信息、或者您需要其他信息、请告诉我。
谢谢、
Rohit