导航

    全志在线开发者论坛

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

    移植melis到v833时出现strcpy报错

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

      执行如下代码段时

      logd("IniParserInit");
      char ini_name[25]; 
      printf("ini_name addr  = %p\n",((void *)ini_name));
      strcpy(ini_name,"/data/etc/cedarx.conf");
      

      发现如下报错:
      20b1a6f1-9388-42ae-94a8-07b4e768d096-image.png
      ini_name的地址参数为:0xc064a962 ===>>>0xc064a962%4 = 2
      地址没有按照4字节对齐,在strcpy的时候搬用报错。
      91d7727a-59f0-4536-bfc1-2c61446d3e8f-image.png

      然后通过修改strcpy函数,改为newlibc库中的strcpy函数运行无问题,那么可以提供V833melis中的newlibc库的源码,排查么。或者可以提供v833melis的编译工具链源码么,v833melis的编译工具链和d1s的编译工具链差别在哪里?是否可以用d1s提供的编译工具链编译v833的melis版本么。

      WhycanService 1 条回复 最后回复 回复 引用 分享 0
      • WhycanService
        WhycanService LV 8 @blackjojo 最后由 编辑

        @blackjojo d1s是riscv架构,使用的是glibc,v833是arm架构,使用的是newlib

        N 1 条回复 最后回复 回复 引用 分享 0
        • N
          njlw315 LV 2 @WhycanService 最后由 编辑

          @whycanservice 目前我也是用newlibc,也出现该问题。请问该怎么解决?

          WhycanService 1 条回复 最后回复 回复 引用 分享 0
          • WhycanService
            WhycanService LV 8 @njlw315 最后由 编辑

            @njlw315 为什么需要移植呢,v833有自己的melis

            N 1 条回复 最后回复 回复 引用 分享 0
            • N
              njlw315 LV 2 @WhycanService 最后由 编辑

              @whycanservice 没有移植。就是使用官方的melis ,在使用的过程中遇到了问题。strcpy 或者 strncpy 非4字节对齐,余数为1的时间,必现错误。

              1 条回复 最后回复 回复 引用 分享 0
              • 1 / 1
              • First post
                Last post

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

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