2411|6

136

帖子

3

TA的资源

一粒金砂(中级)

楼主
 

IAR5.2 遇上的问题,还请大家指教 [复制链接]

本帖最后由 hanwenli123 于 2015-7-24 10:58 编辑

本想将程序定位到一个固定地址,于是在149.XCL中设置了UPDATACODE地址范围,但是在编译之后程序并不在指定地址,而且调试还会有问题,总是提示某某地址不存在两次确定之后软件也会关闭,这是什么原因
1.jpg是在149.XCL中的修改
但是在内在中却是这样,我用的是虚拟仿真看的flash却是2.jpg的情况


哪个前辈指点下啊应该怎么设置怎么修改地址呢,感觉应该是我哪里没有设置好才会这样,但是具体该怎么弄也不知道,还请大家前辈指点指点

7月24号修改

在网上找了,但是都差不多,也没找到特别好的方法,试了几种方式都不行


#pragma segment = "UPDATACODE"



#pragma memory = "UPDATACODE"


这都不行而location是不能在.C文件的最开始用的,

用了一个比较笨的方法就是在每个函数后面加@"UPDATACODE ",之后在后面的编程中函数调用即可,否则在指定的地方只有第一个函数,其他的函数则没有,最主要的是在main函数中调用了第一个标@"UPDATACODE"的函数,之后所有带@"UPDATACODE"的函数就会依次在指定位置了,

可能还有更好的方法,本人也是初学只找到这一种方法,如果哪位大虾还有什么好的方法希望可以指点一下菜鸟

1.jpg (18.22 KB, 下载次数: 0)

1.jpg

2.jpg (26.39 KB, 下载次数: 0)

2.jpg

最新回复

源代码都看不到啊 除了在XCL增添新的段,在程序中还有用一些预处理指令啥的将你的代码定位到XCL中新定义的段啊。 关于IAR 数据定位,自行百度吧   详情 回复 发表于 2015-7-23 07:37
 
点赞 关注

回复
举报

2131

帖子

0

TA的资源

至上芯片

沙发
 
程序定位到一个固定地址   你可以直接写到固定的地址,程序中注意中断向量表的处理

点评

我也想过这个方法,但是我是想要把整个文件都在一个固定的范围内,第一个函数所占的内存这个好像不能估算吧,也许是我知识太少吧,所以就没有采取这种方法,您 还有别的什么好方法吗, 您能不能把您 的意思说的细致些,后  详情 回复 发表于 2015-7-24 11:02
 
个人签名处处留心皆学问!
 

回复

2549

帖子

0

TA的资源

五彩晶圆(初级)

板凳
 
真心不懂,来学习下

点评

一起学习  详情 回复 发表于 2015-7-24 11:07
 
 
 

回复

155

帖子

1

TA的资源

一粒金砂(中级)

4
 
源代码都看不到啊
除了在XCL增添新的段,在程序中还有用一些预处理指令啥的将你的代码定位到XCL中新定义的段啊。

关于IAR 数据定位,自行百度吧

点评

// ------------------------------------- // Constant data // //-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT,CHECKSUM=1100-FFDF -Z(CONST)DATA16_C,DATA16_ID,DIFUNCT,CHECKSUM=2000-FFDF // ---------------  详情 回复 发表于 2015-7-24 11:07
 
 
 

回复

136

帖子

3

TA的资源

一粒金砂(中级)

5
 
daicheng 发表于 2015-7-22 11:46
程序定位到一个固定地址   你可以直接写到固定的地址,程序中注意中断向量表的处理

我也想过这个方法,但是我是想要把整个文件都在一个固定的范围内,第一个函数所占的内存这个好像不能估算吧,也许是我知识太少吧,所以就没有采取这种方法,您 还有别的什么好方法吗,
您能不能把您 的意思说的细致些,后面半句不是太明白
 
 
 

回复

136

帖子

3

TA的资源

一粒金砂(中级)

6
 
liutogo 发表于 2015-7-23 07:37
源代码都看不到啊
除了在XCL增添新的段,在程序中还有用一些预处理指令啥的将你的代码定位到XCL中新定义的 ...

// -------------------------------------
// Constant data
//

//-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT,CHECKSUM=1100-FFDF
-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT,CHECKSUM=2000-FFDF

// -------------------------------------
// Code
//
-Z(CODE)UPDATACODE=1100-1FFF

-Z(CODE)CSTART,ISR_CODE,CODE_ID=2000-FFDF
-P(CODE)CODE=2000-FFDF

//-Z(CODE)CSTART,ISR_CODE,CODE_ID=1100-FFDF
//-P(CODE)CODE=1100-FFDF

// -------------------------------------
// Interrupt vectors
//

-Z(CODE)INTVEC=FFE0-FFFF
-Z(CODE)RESET=FFFE-FFFF
这是我贴子上贴的,另一张是查看memory时的内容,就不贴了
其他内容我修改了贴子加在里面了,您 可以看看,有什么不妥您 再指点指点
 
 
 

回复

136

帖子

3

TA的资源

一粒金砂(中级)

7
 
数码小叶 发表于 2015-7-22 11:46
真心不懂,来学习下

一起学习
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表