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

YunTu Forum

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

IAR程序编译失败 check failed

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

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

    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 在 中 引用了 这个主题

              • 云途论坛规则/Yuntu Forum Rules

                发帖前请查看

              • YCT离线License申请流程

                帮助没办法联网的电脑使用YCT

              • YT CONFIG TOOL调查问卷

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

              • demo
                11
                can
                8
                lin stack
                5
                yt-link
                5
                vscode
                3
                adc模块
                2
                i2c
                2
                uuid
                2
                Online Users
                • 登录

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