因为项目需要把数据上传到阿里云,我们的采集设备是ARM平台的,就要移植OSS SDK到我们的ARM平台,我们的设备用的是TI3354,LINUX 3.14,弄了两天终于弄好了,记录一下,原创文章,请勿转载!

交叉编译 OSS SDK 步骤

1.首先编译libcurl库

源码:https://curl.haxx.se/download.html,我下载的curl-7.32.0

curl

chmod 0777 configure

./configure --prefix=$PWD/../build_lib --host=arm-linux --target=arm-linux CC=arm-arago-linux-gnueabi-gcc

make

make install

2.编译apr-1.5.2

apr-1.5.2

./configure

make

cp -a tools/gen_test_char ../

make clean

./configure --prefix=$PWD/../build_lib --host=arm-linux CC=arm-arago-linux-gnueabi-gcc CXX=arm-arago-linux-gnueabi-g++ ac_cv_file__dev_zero=yes ac_cv_func_setpgrp_void=yes apr_cv_process_shared_works=yes apr_cv_mutex_robust_shared=yes apr_cv_tcp_nodelay_with_cork=yes ap_void_ptr_lt_long=no

cp -a ../gen_test_char tools/

Vim Makefile

134 行

OBJECTS_gen_test_char = tools/gen_test_char.lo $(LOCAL_LIBS)

屏蔽

#OBJECTS_gen_test_char = tools/gen_test_char.lo $(LOCAL_LIBS)

目的是不生成新的gen_test_char文件

8 vi include/apr_want.h 第93行 #ifndef APR_IOVEC_DEFINED 替换成#if 0

make

make install

3.编译apr-util-1.5.4

./configure --prefix=$PWD/../build_lib --host=arm-linux CC=arm-arago-linux-gnueabi-gcc CXX=arm-arago-linux-gnueabi-g++ --with-apr=$PWD/../build_lib/ --with-expat=$PWD/../build_lib/

make

make install

4.minixml,我用的mxml-2.9

./configure --prefix=$PWD/../build_lib --host=arm-linux CC=arm-arago-linux-gnueabi-gcc CXX=arm-arago-linux-gnueabi-g++

make

出错,不管,把so文件和.h文件拷贝走

4.下载oss sdk,百度一下阿里云OSS SDK,下载3.5.0

修改CMakeLists.txt如下

cmake . -DCMAKE_INSTALL_PREFIX=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib -DCURL_INCLUDE_DIR=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/include/curl -DCURL_LIBRARY=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/lib -DAPR_INCLUDE_DIR=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/include/apr-1 -DAPR_LIBRARY=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/lib/libapr-1.a -DAPR_UTIL_INCLUDE_DIR=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/include/apr-1 -DAPR_UTIL_LIBRARY=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/lib/libaprutil-1.a -DMINIXML_INCLUDE_DIR=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/include/mxml/ -DMINIXML_LIBRARY=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/lib/libmxml.so.1.5

make

make install

如果需要MD5校验,我发现很有必要做MD5校验,否则上传上去的文件会有不完整的情况。OSS SDK的MD5校验码制作方法有点麻烦,最后自己写了个工具来搞。

OSS CONTENT-MD5计算方法

md5sum xxx.dat 生成md5码

简单直接的方法:

echo -e -n "\xa8\x2b\xea\x08\xdc\x5d\x94\x81\x2a\xe3\x39\xe2\xdd\x06\xe6\xeb" | base64

正规的用法:

md5sum raw.dat | awk '{print $1}' | xxd -r -ps | base64

qCvqCNxdlIEq4zni3Qbm6w==

xxd移植不了,busybox中的参数不同,自己写了一个tcu_xxd来用

最后

#!/bin/sh

crc=`md5sum raw-data-129-201809130533.dat | awk '{print $1}'`

md5=`./tcu_xxd $crc | base64`

echo $md5

最后又搞定了断点续传,完美!

最后打下广告,有需要工控终端嵌入式设备的联系我啊,QQ:7972418 :)

移植OSS SDK到TI3354 ARM平台记录相关推荐

  1. cvm java_移植JAVA虚拟机CVM到ARM平台(收藏)

    J2ME CDC(Connected Device Configuration,连接式设备配置集)使用CVM,面向那些具有更强计算能力的嵌入式设备,包含了Java类库的核心部分,是应用Java技术在嵌 ...

  2. mysql 客户端 交叉编译_移植mysql到嵌入式ARM平台

    移植MySQL到嵌入式ARM平台 MySQL没有专门针对ARM的版本,移植到ARM没有官方文档可参考,因此,暂时参考这样一篇文档: http://blog.chinaunix.net/space.ph ...

  3. 移植mysql到嵌入式ARM平台

    移植MySQL到嵌入式ARM平台    MySQL没有专门针对ARM的版本,移植到ARM没有官方文档可参考,因此,暂时参考这样一篇文档: http://blog.chinaunix.net/space ...

  4. mysql在单片机移植_移植MySQL到嵌入式ARM平台

    因为MySQL5.5之后,编译是用的cmake不再使用./configure,因此,只好倒回支持./configure的版本来用,这里使用了文档上的5.1.51版本.进行如下步骤完成移植: 1) 下载 ...

  5. 如何在arm平台移植ubuntu系统(转)

    linux查看内核版本和发行版本号: https://www.cnblogs.com/guiyishanren/articles/8638921.html 华为开源镜像网站:含有不同平台架构的系统资源 ...

  6. 编译ARM平台的 QtEmbedded 的MySQL插件和移植MySQL到ARM开发板

    经过几天的努力,终于交叉编译出了arm平台所需Qt/E的MySQL插件(驱动),其中顺便把MySQL也移植到了mini2410的开发板上. 编译器:arm-linux-gcc(4.3.2) Pc平台: ...

  7. python移植到arm_python移植到arm平台

    1. 交叉编译Python 见Cross Compiling Python for Embedded Linux本文引用地址:http://www.eepw.com.cn/article/201611 ...

  8. arm qt mysql插件_编译ARM平台的QtEmbedded的MySQL插件和移植MySQL

    编译ARM平台的QtEmbedded 的MySQL插件和移植MySQL 到ARM开发板 经过几天的努力,终于交叉编译出了arm平台所需Qt/E的MySQL插件(驱动),其中顺便把MySQL也移植到了m ...

  9. lua脚本移植到linux平台,如何将lua移植到arm平台的linux内核

    将脚本移植到内核是一件很酷的事情,lua已经被移植到NetBSD的内核中,也有一个叫lunatik的项目把lua移植到了linux内核,只可惜只支持x86,不支持arm,在网上搜索了下,没有找到现成的 ...

最新文章

  1. iPhone销售额下滑12%,但AirPods和手表救了苹果
  2. python 字符串数组互转
  3. java文件日志功能_JAVA文件下载功能问题解决日志
  4. graph-easy使用简介
  5. Java-Jdk12版本下载后没有Jre的解决方案以及配置环境变量
  6. 广播模块加继电器怎么接线_时间继电器怎么看图接线?
  7. 编译C++11/14方法
  8. day07 深浅拷贝
  9. ERROR 2002 (HY000): mysql
  10. ARCGIS制作三维地图教程(BIGEMAP)
  11. 服装行业ERP体系的主要好处
  12. python 自动上色_Github | 线稿自动上色
  13. 领导合影站位图_领导出席各类活动席位安排(详细附图)
  14. 数据结构与算法(C语言版)----运动会管理系统
  15. 移动ChemDraw结构有什么方法
  16. linux 使用ls命令以M,G为单位显示文件大小
  17. CSS选择器优先级(特异性)
  18. Matlab 公式大全
  19. R语言怎么比较两个模型C指数,手把手教你用R语言评价临床预测模型,一文就够(附代码)...
  20. 数字转字母python_将一串数字转换成字母python

热门文章

  1. acaa认证php工程师,ACAA教育
  2. 小白必看!详解新媒体运营必备的六大能力
  3. 基于php的校园通讯录电话号码查询系统
  4. Electron 截图踩坑和优化集合
  5. linux下C++开发
  6. python-Threading多线程之线程锁
  7. easyui combotree(树形下拉框)使用收获总结
  8. 5+App用户获取安卓手机权限
  9. 基于php工厂企业车辆出入登记系统
  10. 卓训教育:面对孩子,家长如何管理好自己的情绪?