导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    T113烧录R528的img文件失败

    MR Series
    5
    7
    2964
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • W
      wxgd2017 LV 5 最后由 编辑

      T113和R528是同一个die,但是用R528的tina 打包的img无法烧录到T113,提示检查文件有效性和设备是否正常工作,有人尝试吗?

      YuzukiTsuru 1 条回复 最后回复 回复 引用 分享 0
      • cube_work
        cube_work LV 5 最后由 编辑

        都是DDR3吗?

        1 条回复 最后回复 回复 引用 分享 0
        • YuzukiTsuru
          柚木 鉉 LV 9 @wxgd2017 最后由 YuzukiTsuru 编辑

          @wxgd2017 全志平台的brandy里有芯片验证代码,R528和T113虽然是一个Die,但是其烧录的验证代码是不一样的,所以不能启动。

          可以在直接在brandy的build.sh里面把传进来的值强制赋值成T113,不过这个要自己研究了

          或者下载T113的SDK替换brandy

          1 条回复 最后回复 回复 引用 分享 0
          • xiaowenge
            DOT小文哥 LV 8 最后由 编辑

            chip ID不一样=不是一颗芯片,不用试,烧不进去的

            T 1 条回复 最后回复 回复 引用 分享 0
            • T
              tripod9 LV 5 @xiaowenge 最后由 编辑

              @xiaowenge 芯片验证代码能找到机关吗?xfel现在找一个方法来判断各种马甲

              YuzukiTsuru 1 条回复 最后回复 回复 引用 分享 0
              • YuzukiTsuru
                柚木 鉉 LV 9 @tripod9 最后由 编辑

                @tripod9 lichee\brandy-2.0\spl\board\r528\libsunxxx.a 里

                T 1 条回复 最后回复 回复 引用 分享 0
                • T
                  tripod9 LV 5 @YuzukiTsuru 最后由 编辑

                  @yuzukitsuru
                  找到个这个函数,是R528里面的,id_judge_fun,有谁发现什么机关,需要找多个平台的id_judge_fun函数来对比,估计才能看出名堂。

                  
                  uint id_judge_fun(uint param_1)
                  
                  {
                    uint uVar1;
                    
                    if ((_DAT_01c15004 & 7) == 0) {
                      uVar1 = disturb_coding(param_1,1);
                      return uVar1;
                    }
                    return 0;
                  }
                  
                  
                  
                  uint disturb_coding(uint param_1,int param_2)
                  
                  {
                    int iVar1;
                    
                    iVar1 = crc_16(param_1,param_2);
                    return param_1 + param_2 | iVar1 << 0x10;
                  }
                  
                  
                  
                  void crc_16(uint param_1,int param_2)
                  
                  {
                    uint uVar1;
                    uint uVar2;
                    short sVar3;
                    
                    uVar1 = param_1 ^ param_2 << 8;
                    sVar3 = 8;
                    do {
                      uVar2 = uVar1 & 0x8000;
                      uVar1 = (uVar1 & 0x7fff) << 1;
                      if (uVar2 != 0) {
                        uVar1 = (uVar1 ^ 0xffff8005) & 0xffff;
                      }
                      sVar3 = sVar3 + -1;
                    } while (sVar3 != 0);
                    return;
                  }
                  
                  
                  1 条回复 最后回复 回复 引用 分享 0
                  • 1 / 1
                  • First post
                    Last post

                  Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

                  行为准则 | 用户协议 | 隐私权政策