4193|11

151

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

空间定位指令? [复制链接]

能不能请教一个问题啊,就是IAR汇编语言有条指令ORG 1100H,
应该是指定程序的起始空间吧,程序将程序烧录在0x1100开始的空间地址,

那想问一下,C语言怎么写这条指令呢?                                                        

最新回复

这种方式出错的,我以前回过你的帖子嘛。自己去搜搜  详情 回复 发表于 2012-3-7 21:01
 
点赞 关注

回复
举报

188

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
你纠结这个问题做什么?程序空间分配在IAR中有专门 的文件可以分配的啊,C语言写不用考虑这种问题吧,有一个.XCL文件可以分配的
// ---------------------------------------------------------
// Code          代码空间
// ---------------------------------------------------------

-Z(CODE)CSTART,ISR_CODE=1100-EFDF
-P(CODE)CODE=1100-EFDF


// ---------------------------------------------------------
// Interrupt vectors             中断向量空间
// ---------------------------------------------------------

-Z(CODE)INTVEC=EFE0-EFFF
-Z(CODE)RESET=EFFE-EFFF
 
 

回复

151

帖子

0

TA的资源

纯净的硅(初级)

板凳
 

回复 沙发 kingheimer 的帖子

还是和上次问你的那个问题相关的,我要专门写boot loader程序,用于升级程序的,那boot loader程序有一个存储空间,另外通过boot loader程序写入的应用程序也有一个空间,但是我需要准确的定义boot loader的存储空间,以便在下载应用程序时候复写到boot loader的存储空间啊!
 
 
 

回复

188

帖子

0

TA的资源

纯净的硅(初级)

4
 

回复 板凳 零晨 的帖子

这样你可以分别定义好两个程序的空间就行,BOOTLOADER的工程里你把xcl文件里的空间重新定义好,在自己的应用程序时用另一个xcl文件,里面的程序空间合理安排好就行了,比如BOOTLOADER里安排如下
-Z(CODE)CSTART,ISR_CODE=1100-2000   //原来是1100-EFDF
-P(CODE)CODE=1100-2000

你的应用程序修改如下
-Z(CODE)CSTART,ISR_CODE=3000-EFDF  //原来是1100-EFDF
-P(CODE)CODE=3000-EFDF
 
 
 

回复

151

帖子

0

TA的资源

纯净的硅(初级)

5
 

回复 4楼 kingheimer 的帖子

兄弟啊,你知道IAR用C语言编译后,怎么将代码导出为hex文件啊,原本的是*.d43文件吧,不知道这是什么格式,直接在IAR里打开也没有内容啊!
 
 
 

回复

151

帖子

0

TA的资源

纯净的硅(初级)

6
 

回复 4楼 kingheimer 的帖子

但是,就算我修改了代码空间的地址,那我怎么确认应用程序的起始地址就在0x1600呢,因为开机首先是从0x1100运行(就是boot loader的程序),在10s内不进行boot loader的话,程序跳转至0x1600应用程序执行,所以我要保证0x1600是应用程序的起始地址,只是修改代码空间能做到么?
 
 
 

回复

6040

帖子

202

TA的资源

版主

7
 
void main(void) @ 0x1600
{
__do something.
}
 
 
 

回复

424

帖子

0

TA的资源

纯净的硅(高级)

8
 
修改xcl中.text的地址呗
 
 
 

回复

151

帖子

0

TA的资源

纯净的硅(初级)

9
 

回复 7楼 lcofjp 的帖子

请教了,这条指令下了以后,提示出错,出错内容为:
location address not allowed for functions.
这是为什么呢?
我下的是(MSP430F2132)
void main(void) @ 0xe200
{
...........
}
 
 
 

回复

424

帖子

0

TA的资源

纯净的硅(高级)

10
 
原帖由 零晨 于 2012-3-7 11:06 发表
请教了,这条指令下了以后,提示出错,出错内容为:
location address not allowed for functions.
这是为什么呢?
我下的是(MSP430F2132)
void main(void) @ 0xe200
{
...........
}

这种方式出错的,我以前回过你的帖子嘛。自己去搜搜
 
 
 

回复

151

帖子

0

TA的资源

纯净的硅(初级)

11
 

回复 10楼 鸵鸟蝈蝈 的帖子

不好意思,兄弟,问一下啊,如果片内有两个程序,一个boot loader,一个是应用mai(),复位从boot loader程序开始,那设定一段时间后需要跳至main()运行,那在boot loader里用C的那条指令可以实现啊,汇编是用BR指令的!
 
 
 

回复

151

帖子

0

TA的资源

纯净的硅(初级)

12
 

回复 沙发 kingheimer 的帖子

不好意思,兄弟,问一下啊,如果片内有两个程序,一个boot loader,一个是应用mai(),复位从boot loader程序开始,那设定一段时间后需要跳至main()运行,那在boot loader里用C的那条指令可以实现啊,汇编是用BR指令的!
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表