跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. IAR程序编译失败 check failed

IAR程序编译失败 check failed

已定时 已固定 已锁定 已移动 已解决 YTM32B1M系列
7 帖子 3 发布者 3.3k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • gaoShengG 离线
    gaoShengG 离线
    gaoSheng
    写于 最后由 Frankie 编辑
    #1

    59e7a85cd16573fb93dee751dac7f24.jpg
    ME系列,使用IAR编译报错check failed,使用的官方的链接文件

    1 条回复 最后回复
    0
    • FrankieF 离线
      FrankieF 离线
      Frankie YunTu
      写于 最后由 编辑
      #7

      还有确保yt-link DATA_FLASH 和 DATA_RAM 有同样的对齐配置,
      image.png
      image.png

      看map文件,你们的对应配置都是4。:
      size(block DATA_RAM_block) = 9'456 (0x24f0)
      size(block DATA_RAM_rom_block) = 9'452 (0x24ec)


      "TEXT_DATA_RAM_rom":                              0x24ec
        DATA_RAM_rom_block                  0x1'b9f4    0x24ec  <Block>
          DATA_RAM_rom_start_section
                                uninit      0x1'b9f4       0x0  <internal module>
          data_rom                          0x1'b9f4    0x24ec  <Block>
            Initializer bytes   const       0x1'b9f4    0x24ec  <for data-1> (used: 0x0)
          DATA_RAM_rom_end_section
                                uninit      0x1'dee0       0x0  <internal module>
                                          - 0x1'dee0    0x24ec
      
      "RAM_DATA_RAM":                                   0x24f0
        DATA_RAM_block                   0x1fff'1cfc    0x24f0  <Block>
          DATA_RAM_start_section
                                uninit   0x1fff'1cfc       0x0  <internal module>
          data_region_start_section
                                uninit   0x1fff'1cfc       0x0  <internal module>
          data                           0x1fff'1d00    0x24ec  <Block>
            data-1                       0x1fff'1d00    0x24ea  <Init block>
      

      问题应该是:
      DATA_RAM_start_section = 0x1fff'1cfc
      但是时间数据开始是从0x1fff'1d00开始的,差了4个字节。

      可能你们data数据加了一些强制对齐的操作。
      解决方法:
      修改yt-link,把对齐从4改为16,再试试。

      1 条回复 最后回复
      0
      • FrankieF 离线
        FrankieF 离线
        Frankie YunTu
        写于 最后由 编辑
        #2

        这个错误是某个数据(变量)没有给初始化值,但又放到data段导致的

        gaoShengG justinJ 2 条回复 最后回复
        -1
        • gaoShengG 离线
          gaoShengG 离线
          gaoSheng
          在 回复了 Frankie 最后由 编辑
          #3

          Frankie 非常感谢您的回复,我让客户试试

          1 条回复 最后回复
          0
          • justinJ 离线
            justinJ 离线
            justin
            在 回复了 Frankie 最后由 编辑
            #4

            Frankie 在 IAP程序编译失败 check failed 中说:

            这个错误是某个数据(变量)没有给初始化值,但又放到data段导致的

            你好,这个数据(变量)分配到bss,还是放到data段不是应该编译器自动完成的吗?应该怎么来排查这个问题呢?

            1 条回复 最后回复
            0
            • FrankieF 离线
              FrankieF 离线
              Frankie YunTu
              写于 最后由 编辑
              #5

              正常是这样的,看看有没有手动加了attribute来修改,下面的代码就是一个错误例子:

              __attribute__ ((section(".data")))
              uint32_t testDataWithoutInit;
              
              

              你把这个代码加进入编译,两个差值就会从原理的4变为8。


              顺便提供下MCAL的版本,可能是MCAL内部的问题。

              justinJ 1 条回复 最后回复
              0
              • justinJ 离线
                justinJ 离线
                justin
                在 回复了 Frankie 最后由 编辑
                #6

                Frankie 在 IAP程序编译失败 check failed 中说:

                正常是这样的,看看有没有手动加了attribute来修改,下面的代码就是一个错误例子:

                __attribute__ ((section(".data")))
                uint32_t testDataWithoutInit;
                
                

                你把这个代码加进入编译,两个差值就会从原理的4变为8。


                顺便提供下MCAL的版本,可能是MCAL内部的问题。

                你好,这边没有用到MCAL,用的SDK V1.3.0,跟SDK版本有关系吗?我这边程序中没有用到__attribute, 还有没有其他可能性呢?另外未添加应用代码之前没有这个错误的,添加完应用代码以后才出现的,附件是我工程的map文件,麻烦帮忙看一下有没有发现,谢谢。BMS_7445_V0.txt

                1 条回复 最后回复
                0
                • FrankieF 离线
                  FrankieF 离线
                  Frankie YunTu
                  写于 最后由 编辑
                  #7

                  还有确保yt-link DATA_FLASH 和 DATA_RAM 有同样的对齐配置,
                  image.png
                  image.png

                  看map文件,你们的对应配置都是4。:
                  size(block DATA_RAM_block) = 9'456 (0x24f0)
                  size(block DATA_RAM_rom_block) = 9'452 (0x24ec)


                  "TEXT_DATA_RAM_rom":                              0x24ec
                    DATA_RAM_rom_block                  0x1'b9f4    0x24ec  <Block>
                      DATA_RAM_rom_start_section
                                            uninit      0x1'b9f4       0x0  <internal module>
                      data_rom                          0x1'b9f4    0x24ec  <Block>
                        Initializer bytes   const       0x1'b9f4    0x24ec  <for data-1> (used: 0x0)
                      DATA_RAM_rom_end_section
                                            uninit      0x1'dee0       0x0  <internal module>
                                                      - 0x1'dee0    0x24ec
                  
                  "RAM_DATA_RAM":                                   0x24f0
                    DATA_RAM_block                   0x1fff'1cfc    0x24f0  <Block>
                      DATA_RAM_start_section
                                            uninit   0x1fff'1cfc       0x0  <internal module>
                      data_region_start_section
                                            uninit   0x1fff'1cfc       0x0  <internal module>
                      data                           0x1fff'1d00    0x24ec  <Block>
                        data-1                       0x1fff'1d00    0x24ea  <Init block>
                  

                  问题应该是:
                  DATA_RAM_start_section = 0x1fff'1cfc
                  但是时间数据开始是从0x1fff'1d00开始的,差了4个字节。

                  可能你们data数据加了一些强制对齐的操作。
                  解决方法:
                  修改yt-link,把对齐从4改为16,再试试。

                  1 条回复 最后回复
                  0
                  • FrankieF Frankie 在 中 引用了 这个主题
                  • ,FrankieF Frankie 将这个主题转为问答主题
                  • ,FrankieF Frankie 将这个主题标记为已解决

                • 云途开发生态介绍

                  快速上手云途开发生态

                • 云途论坛规则/Yuntu Forum Rules

                  发帖前请查看

                • YT CONFIG TOOL调查问卷

                  帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

                • can
                  25
                  demo
                  22
                  lin stack
                  13
                  uds
                  13
                  md14
                  6
                  yt-link
                  6
                  fbl
                  5
                  adc模块
                  4
                  Online Users
                  • 登录

                  • 登录或注册以进行搜索。
                  • 第一个帖子
                    最后一个帖子
                  0
                  • 版块
                  • 最新
                  • 标签
                  • 热门