查看: 3084|回复: 5

[已解决] KE06绝对地址定义变量报错

[复制链接]
  • TA的每日心情
    开心
    2019-12-2 17:41
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    23

    主题

    448

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1135
    最后登录
    2019-12-2
    发表于 2017-4-19 14:39:37 | 显示全部楼层 |阅读模式
    我用的CW10.6.4,用PE生成代码,在main.c里定义变量
    __attribute__ ((section(".cfmconfig"))) char flash_config[1] = {0x11};

    ld文件
    MEMORY {
      m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x000000C0
      m_text      (RX) : ORIGIN = 0x00000410, LENGTH = 0x0001FBF0
      m_data      (RW) : ORIGIN = 0x1FFFF000, LENGTH = 0x00004000
      m_cfmprotrom  (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010
    }

    /* Define output sections */
    SECTIONS
    {
      /* The startup code goes first into INTERNAL_FLASH */
      .interrupts :
      {
        __vector_table = .;
        . = ALIGN(4);
        KEEP(*(.vectortable)) /* Startup code */
        . = ALIGN(4);
      } > m_interrupts

      .cfmprotect :
      {
        . = ALIGN(4);
            KEEP(*(.cfmconfig))        /* Flash Configuration Field (FCF) */
            . = ALIGN(4);
      } > m_cfmprotrom


    编译后,报错

    section `.cfmprotect' will not fit in region `m_cfmprotrom'       


    region `m_cfmprotrom' overflowed by 4 bytes


    不知道有大牛遇到过这样问题没,求指点!!







    最佳答案

    楼主你好。 如果是PE生成的代码, 0x400开始的16个字节是flash configuration field区域,那么在CPU_Init.c中已经定义过了。 所以如果你再定义肯定会失败的。 [attach]417842[/attach] [attach]417843[/attach] ...
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25448
    最后登录
    2025-9-4
    发表于 2017-4-19 15:17:37 | 显示全部楼层
    楼主你好。
    如果是PE生成的代码, 0x400开始的16个字节是flash configuration field区域,那么在CPU_Init.c中已经定义过了。
    所以如果你再定义肯定会失败的。
    62.jpg
    63.jpg
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-12-2 17:41
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    23

    主题

    448

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1135
    最后登录
    2019-12-2
     楼主| 发表于 2017-4-19 16:03:06 | 显示全部楼层
    多谢版主的解答,终于知道问题在哪了。
    还有一个小问题,CW10.6.4里有mass erase 这个选项么?我在debug config找了好久没找到。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25448
    最后登录
    2025-9-4
    发表于 2017-4-19 16:05:51 | 显示全部楼层
    ropepeng 发表于 2017-4-19 16:03
    多谢版主的解答,终于知道问题在哪了。
    还有一个小问题,CW10.6.4里有mass erase 这个选项么?我在debug co ...

    P&E的工具才有,JLINK的没有。
    JLINK的你可以直接在JLINK Commander中输入:unlock kinetis
    实现全片擦除。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-12-2 17:41
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    23

    主题

    448

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1135
    最后登录
    2019-12-2
     楼主| 发表于 2017-4-19 16:22:11 | 显示全部楼层
    小恩GG 发表于 2017-4-19 16:05
    P&E的工具才有,JLINK的没有。
    JLINK的你可以直接在JLINK Commander中输入:unlock kinetis
    实现全片擦除 ...

    太感谢了~
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25448
    最后登录
    2025-9-4
    发表于 2017-4-19 17:00:08 | 显示全部楼层

    不客气,后续有问题,欢迎继续交流。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-9-6 15:00 , Processed in 0.110389 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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