7241|4

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

为什么在使用F2812是总是有问题存在 [复制链接]

定位到0x3f7ff6处的代码段不一定非得是.reset段。

你可以自己定义一个段。该段包含一条代码,这个代码就是 lb _c_int00这条语句就可以了。

在cmd文件里把定义的段定位到0x3f7ff6处。

最新回复

这个方面的内容可以参考一下 FLASH 编程API 部分的文档。哪里有详细的说明的例子。 在ram中运行的代码,在运行之前应该已经在rem中存在,可是装载地址和run地址不同,所以如果没有人为的把代码从load地址复制到ram里的话,ram内的数据不是你要的程序代码。所以运行之前应该先复制到ram,在运行。   详情 回复 发表于 2006-11-1 03:49
 
点赞 关注

回复
举报

65

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
1:
     .sect .reset
        .long _c_int00

这种定义时 .reset段中包含的是c_int00函数的地址,此时.reset段不能定位到0x3f7ff6处,因为手册上说明,0x3f7ff6处存放的是一个跳转指令,并不是一个地址。
对于这么定义的.reset段,可以放到复位向量读取的地方。也即0x3fffc0处。
对于0x3fffc0地址,在mc方式下应该时片内的rom地址,不能写入的,mp方式下应该是片外存储器的地址。

2:
       .sect  .reset
       lb   _c_int00

这种定义时,.reset段中包含的时一个跳转到c_int00的指令,此时.reset段可以定位到0x3f7ff6处。
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
2812的手册好多啊。都看一遍吧。虽然觉得浪费时间,但是没有什么坏处。

如果要load到flash run在ram的话,代码段要指定load地址和run地址。在程序开始处编写一段代码,把要在ram中运行的复制到ram中就可以了。
这个部分的可以参考flash API部分的例子程序和文档。

你说的boot程序就是把代码从flash复制到ram的吧。这个可以在flash里运行,不用放到OTP的。falsh中画出一小块区域,在这个区域中存放在flash里运行的代码就可以了。

不知最新版本是什么时候的。可以请教一下合众答的工程师们。




cmd文件里的那段代码可能是指定const段和econst段的load地址和运行地址的。
不用这么麻烦,直接load到flash中就可以。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

4
 
looker!!
你说在2812中不用这么设置,但我将
.const:                        load =         FLASHB PAGE 0, run = RAML0L1 PAGE 1
.econst:                        load =         FLASHB PAGE 0, run = RAML0L1 PAGE 1
留下来,其它的屏蔽,然后就出错!
>> warning: load address of uninitialized section .const ignored

undefined                        first referenced
symbol                              in file
---------                        ----------------
__econst_length                  D:\\2812-myprojects\\DspRelay-flash-ok\\rts2800_fl.lib
__const_run                      D:\\2812-myprojects\\DspRelay-flash-ok\\rts2800_fl.lib
__const_length                   D:\\2812-myprojects\\DspRelay-flash-ok\\rts2800_fl.lib
__econst_run                     D:\\2812-myprojects\\DspRelay-flash-ok\\rts2800_fl.lib
>>   error: symbol referencing errors - \'./Debug/DspRelay.out\' not built

Build Complete,
  1 Errors, 1 Warnings, 0 Remarks.

这是怎么回事啊?这段(.const .econst)到底应该怎么写?盼LOOKER能给个回复!谢了!



 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

5
 
这个方面的内容可以参考一下 FLASH 编程API 部分的文档。哪里有详细的说明的例子。


在ram中运行的代码,在运行之前应该已经在rem中存在,可是装载地址和run地址不同,所以如果没有人为的把代码从load地址复制到ram里的话,ram内的数据不是你要的程序代码。所以运行之前应该先复制到ram,在运行。

 
 
 

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

随便看看
查找数据手册?

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