查看: 3650|回复: 3

[其他] L1981: No copydown created for initialized object“variable" . Initializatio

[复制链接]

该用户从未签到

4

主题

42

帖子

0

注册会员

Rank: 2

积分
108
最后登录
1970-1-1
发表于 2014-1-8 20:09:24 | 显示全部楼层 |阅读模式
  我是把整个程序都放在RAM中运行(这个程序是用来更新FLASH的),然后定义一个静态数组和uchar,就是出现这样的错识了,原来还可以更新FLASH的现在也不行了,但是程序没有死,其他流水灯都正常运行
我知道答案 目前已有2人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-1-10 17:17:00 | 显示全部楼层

    RE:L1981: No copydown created for initialized object“variable" . Initialization

    能否详细说下,比如什么编译环境、什么芯片。
    或者上传你的工程
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8

    主题

    299

    帖子

    0

    高级会员

    Rank: 4

    积分
    653
    最后登录
    2018-12-14
    发表于 2014-1-13 11:10:22 | 显示全部楼层

    回复:L1981: No copydown created for initialized object“variable" . Initialization

    看下这个有没有帮助:
    L1981: No copydown created for initialized object . Initialization data lost.

    Description
    The named object is allocated in RAM and it is defined with some initialization values. But because no copy down information is allocated, the initialization data is lost.

    Example
    int i= 19;
    int j;

    When linking the code above with no startup code, then the linker does issue this warning for i as its initialization value 19 is not used.
    Tips
    If you do not want this object to be initialized, change the source or ignore the warning.
    If you want this object to be located in a ROM area, check the source.
    Is the object constant or not? "const char* test=..." is not const, use "const char* const test=..."
    If you want this object to be initialized at runtime, you need some startup code. You can use the one provided with the compiler or take it as example and adapt it to your needs.
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    218

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    472
    最后登录
    1970-1-1
    发表于 2014-1-13 12:42:55 | 显示全部楼层

    回复:L1981: No copydown created for initialized object“variable" . Initializa

    不知道你用的哪款芯片,不过这个警告与芯片无关,从字面上看,你需要检查一下你新定义的静态数组和uchar。
     
    静态数据默认放在RAM中,如果你不需要为其设置初始化值的话,就可以忽略这个警告。
     
    但是如果为其了初始化值,那你的applicaion就不能脱离deugger 运行,因为掉电后, 初始值就丢失了。请修改linker 文件,将其初始值存在ROM中
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 00:30 , Processed in 0.146552 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表