把变量定位在内存中确定位置。
我生成了 .map 文件
我把之前workspace 里的工程拷贝过来, 复制到myproject 下20210531
然后 编译 连接 提示了 makefile 错误。
因为我改变了路径,所以要重新设定链接器的路径 如下图:
问题得到了解决 。
编译 成功
我将变量 adc_data 定位到确定到了确定的位置
我想用UDE 进行仿真,
提示下列信息
我想是因为我没有把UDS 打开 打开以后如下图,
现在进行仿真
以下是我摘抄 .map 的字节
=====================================================================================================================================================================================================================================
Start End Size S Name Memory O-Sec I-Sec Input object
=================================================================================================================================================================================================================================
0xd0000000 0xd0000003 4 g ADC_data DMI_DSPR .zdata .zdata.mydata src\timedemo.o
o-Sec 是输出段 I-Sec 是输入段 memory 是存储空间
所以 变量 ADC_data 变量 在输入段 .zdata.mydata 中。
.zdata 段在最终 映射到 MEMORY 指令中 定义的 DMI_DSPR 段中。
Ld 文件 是由 GNC可视化工具 配置完成以后, 当IROM.Im 更新了以后,编译连接以后, Ld文件夹下的iROM.Ld 进行更新。
GNC图形化编译工具如下图所示
需要在linker 中 指定 编译的文件
这个是通过 Ld 文件进行连接的, 还有一类工程是通过1_env 文件夹下的 .lsl 文件指示连接的。
现在我将这个建立工程的过程从无到有再操作一遍:
第一步:打开Hightec
第二步:
第三步:
第四步
刚开始并没有IROM 文件夹 ,如下图 只有头文件 h src models
其中 models 是GNC 图形化链接工具。
第五步:
在IROM.Lm 图形化链接工具 加入输入段 .zdata.mydata 段
.zdata.mydata 段 类似于DSP2000 中 的 ramfuncs
#pragma CODE_SECTION(RMS_Control,"ramfuncs")
#pragma CODE_SECTION(UO_Control,"ramfuncs")
#pragma CODE_SECTION(IL_Control,"ramfuncs")
填写完成如下图 保存 IROM,LM以后
注意:备注是我随意写的123 以后可以在.map中查看。
第六步:
提示警告信息
Description Resource Path Location Type
LinkerModel::ISectionA ISection should be referenced in a OSection: iROM.lm /TimeDemo_ApplicationKitTC234(TLF35584A-Step)/models Unknown EMF Problem
还需要把它 .zdata.mydata 段 再次放入到 输出段 .zdata 中去 。
一定要先出来下的画面,保存以后 打开在进行填写。要选中最后一个项目 右击鼠标 (操作很重要)
第八步
第九步:
注意下列 ".zdata.mydata" 引号的左侧和右侧不能有空格。
否则编译不通过。
我发现我直接 用下图方法找, 找不到
于是 我直接打开了.map ctrl+ F 进行查找, 找到。
原文:https://www.cnblogs.com/bailongwei654321/p/14833126.html