7405|14

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求助:2812烧写后不能运行 [复制链接]

2812在仿真的时候运行现象正确,换一个.cmd文件烧写时出现一个初始化RAM的警告如下:
warning:Because this program contains initialized RAM data it may run successfully under Code Composer Studio.  If your Flash program requires initialized data in RAM, you will need  to write Flash code to initialize RAM.

点击OK后,程序可以成功烧写。但是上电运行却没有现象了!

以下是我使用的.cmd
/**********************************************************************
* File: f2812.cmd -- Linker command file for Boot to Flash bootmode.
* History: 09/08/03 - original (based on DSP28 header files v1.00, D. Alter)
*          02/14/05 - made consistent with DSP/BIOS linkage allocation (D. Alter)
**********************************************************************/

MEMORY
{
PAGE 0:    /* Program Memory */
   ZONE0       : origin = 0x002000, length = 0x002000     /* XINTF zone 0 */
   ZONE1       : origin = 0x004000, length = 0x002000     /* XINTF zone 1 */
   L0SARAM     : origin = 0x008000, length = 0x001000     /* 4Kw L0 SARAM */
   ZONE2       : origin = 0x080000, length = 0x080000     /* XINTF zone 2 */
   ZONE6       : origin = 0x100000, length = 0x080000     /* XINTF zone 6 */
   OTP         : origin = 0x3D7800, length = 0x000400     /* on-chip OTP */
   FLASH_IJ    : origin = 0x3D8000, length = 0x004000     /* on-chip FLASH */
   FLASH_GH    : origin = 0x3DC000, length = 0x008000     /* on-chip FLASH */
   FLASH_EF    : origin = 0x3E4000, length = 0x008000     /* on-chip FLASH */
   FLASH_CD    : origin = 0x3EC000, length = 0x008000     /* on-chip FLASH */
   FLASH_AB    : origin = 0x3F4000, length = 0x003F80     /* on-chip FLASH */
/*   CSM_RSVD    : origin = 0x3F7F80, length = 0x000076     /* Part of FLASHA.  Reserved when CSM is in use. */
   BEGIN_FLASH : origin = 0x3F7FF6, length = 0x000002     /* Part of FLASHA.  Used for \"boot to flash\" bootloader mode. */
/*   PASSWORDS   : origin = 0x3F7FF8, length = 0x000008     /* Part of FLASHA.  CSM password locations. */
   BEGIN_H0    : origin = 0x3F8000, length = 0x000002     /* Part of H0.  Used for \"boot to H0\" bootloader mode. */
  
/*   ZONE7       : origin = 0x3FC000, length = 0x003FC0     /* XINTF zone 7 available if MP/MCn=1 */
   BOOTROM     : origin = 0x3FF000, length = 0x000FC0     /* boot ROM available if MP/MCn=0 */
   RESET       : origin = 0x3FFFC0, length = 0x000002     /* part of boot ROM (MP/MCn=0) or XINTF zone 7 (MP/MCn=1) */
   VECTORS     : origin = 0x3FFFC2, length = 0x00003E     /* part of boot ROM (MP/MCn=0) or XINTF zone 7 (MP/MCn=1) */

PAGE 1 :   /* Data Memory */
   M0SARAM     : origin = 0x000000, length = 0x000400     /* 1Kw M0 SARAM */
   M1SARAM     : origin = 0x000400, length = 0x000400     /* 1Kw M1 SARAM */
   L1SARAM     : origin = 0x009000, length = 0x001000     /* 4Kw L1 SARAM */
   H0SARAM     : origin = 0x3F8002, length = 0x001FFE     /* 8Kw H0 SARAM */
}


SECTIONS
{
/*** Compiler Required Sections ***/
  /* Program memory (PAGE 0) sections */
   .text             : > FLASH_AB,         PAGE = 0
   .cinit            : > FLASH_CD,         PAGE = 0
   .const            : > FLASH_CD,         PAGE = 0
   .econst           : > FLASH_CD,         PAGE = 0      
   .pinit            : > FLASH_CD,         PAGE = 0
   .reset            : > RESET,            PAGE = 0, TYPE = DSECT  /* We are not using the .reset section */
   .switch           : > FLASH_CD,         PAGE = 0

  /* Data Memory (PAGE 1) sections */
   .bss              : > L1SARAM,          PAGE = 1
   .ebss             : > L1SARAM,          PAGE = 1
   .cio              : > M0SARAM,          PAGE = 1
   .stack            : > M1SARAM,          PAGE = 1
   .sysmem           : > L1SARAM,          PAGE = 1
   .esysmem          : > L1SARAM,          PAGE = 1

/*** User Defined Sections ***/
   codestart         : > BEGIN_FLASH,      PAGE = 0                /* Used by file CodeStartBranch.asm */
/*   csm_rsvd          : > CSM_RSVD,         PAGE = 0                /* Used by file passwords.asm */
/*   passwords         : > PASSWORDS,        PAGE = 0                /* Used by file passwords.asm */
   secureRamFuncs    :   LOAD = FLASH_AB,  PAGE = 0                /* Used by InitFlash() in SysCtrl.c */
                         RUN = L0SARAM,    PAGE = 0
                         LOAD_START(_secureRamFuncs_loadstart),
                         LOAD_END(_secureRamFuncs_loadend),
                         RUN_START(_secureRamFuncs_runstart)
  
/*  DLOG                              : >  H0SARAM,             PAGE = 1
  IQmathTables       :   load = BOOTROM, type = NOLOAD, PAGE = 0
  IQmath             :   load = FLASH_CD                PAGE = 0  */  
}

/******************* end of file ************************/

我在系统初始化之前也使用了Flash的初始化程序,如下:
memcpy(&secureRamFuncs_runstart,
         &secureRamFuncs_loadstart,
         &secureRamFuncs_loadend - &secureRamFuncs_loadstart);
        InitFlash();
但是为什么会没有现象,程序不能运行呢?
麻烦大家给解答一下吧!困惑好久了!
谢谢!

最新回复

我也不清楚,你仔细去查查是不是应该吗  详情 回复 发表于 2012-3-22 09:05
 
点赞 关注

回复
举报

83

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
有加载到ram的代码或数据。修改程序或CMD,保证所有代码和数据都在FLASH里,再烧写。
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
在28系列中,Flash的设置是需要调入RAM中运行的,不知道你这个是不是这个原因造成的!
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

4
 
有没有能正常使用的cmd
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

5
 
是否在3F7FF6地址上放置了跳转语句?GPIOF4,GPIOF12,GPIOF3,GPIOF2引脚是否设置妥当?
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 

也求答案

请问你上述问题解决了吗?如果解决了,能否把方法告知一下?
 
 
 

回复

2606

帖子

0

TA的资源

五彩晶圆(初级)

7
 
你在主程序中是否调用的将flash代码拷入ram的语句
 
个人签名工程 = 数学+物理+经济
 
 

回复

71

帖子

0

TA的资源

纯净的硅(初级)

8
 

回复 楼主 hezhengli 的帖子

你的cmd不是面向flash的cmd,里面将部分程序烧写到了ram中,这种方式只能适合带电debug的模式,不适合掉电重新上电。请使用完全的flash cmd进行程序下载。
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

9
 
1.更换CMD
2.在主程序增加两句程序
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(中级)

10
 

回复 8楼 囧神 的帖子

您好,请问什么是面向flash的cmd?还有,我看着均放入flash了,哪部分程序烧到了ram里面呢?
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(中级)

11
 

回复 8楼 囧神 的帖子

您好,请问什么是面向flash的cmd?还有,我看着均放入flash了,哪部分程序烧到了ram里面呢?
 
 
 

回复

569

帖子

0

TA的资源

五彩晶圆(中级)

12
 
参考附件中这个CMD文件。

F2812.rar

2.05 KB, 下载次数: 19

 
 
 

回复

2606

帖子

0

TA的资源

五彩晶圆(初级)

13
 
/* Data Memory (PAGE 1) sections */

   .bss              : > L1SARAM,          PAGE = 1

   .ebss             : > L1SARAM,          PAGE = 1

   .cio              : > M0SARAM,          PAGE = 1

   .stack            : > M1SARAM,          PAGE = 1

   .sysmem           : > L1SARAM,          PAGE = 1

   .esysmem          : > L1SARAM,          PAGE = 1


这个表示,你有将部分程序写入RAM
 
个人签名工程 = 数学+物理+经济
 
 

回复

54

帖子

0

TA的资源

一粒金砂(中级)

14
 

原帖由 安_然 于 2012-3-20 23:05 发表 /* Data Memory (PAGE 1) sections */ .bss : > L1SARAM, PAGE = 1 .ebss : > L1SARAM, PAGE = 1 .cio : > M0SARAM, PAGE = 1 ...

 

 

这几个sections就是应该写到RAM的吧。 

 
 
 

回复

2606

帖子

0

TA的资源

五彩晶圆(初级)

15
 
我也不清楚,你仔细去查查是不是应该吗
 
个人签名工程 = 数学+物理+经济
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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