一、准备工作

1:软件准备

A.可用于进行交叉编译的linux系统环境,可以用windows的linux子系统(wsl),也可以用linux虚拟机等系统环境。目前测试用的系统是Ubuntu18.04。安装好系统后,输入 sudo apt install build-essential 安装gcc等编译工具。

B.可以进行C语言编译的软件,建议使用CLion,使用起来简单方便。

C.获得gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz 交叉编译工具,解压到 /usr/local/中,并把文件夹重命名为arm-linux(为了方便后续配置)。

D.可以进行串口调试连接的软件,建议用xshell,secureCRT等软件,选择serial串口模式(波特率为115200bps),进行连接。主要是用于进行嵌入版的控制台操作。

E.给linux系统安装一个tftp服务器,安装方式可以参考:

主要是用于与嵌入板进行文件的上传和下载的交互。

F.在/usr目录,创建lib目录,把demo目录下的so库文件,拷贝到lib目录中。

unity arm linux 交叉编译 linux安装交叉编译器_安全

二、硬件准备

A.一张中星微VC0768的嵌入板。

B.USB串口线:串口线连接如下:插在JP1串口处,分别是黑、绿、白插入,另外一端USB口接上电脑即可。具体如下:

unity arm linux 交叉编译 linux安装交叉编译器_密码学_02

C.网线:插在T16的网口上。

三、环境编译

  1. CLion的交叉编译环境配置参考:

·······

unity arm linux 交叉编译 linux安装交叉编译器_linux_03

2.测试工程参考:

        参考测试用例embed_test,也可以自行创建CMakeList.txt,并引入libcurl.so和,进行工程的搭建。CMakeList.txt参考如下:

unity arm linux 交叉编译 linux安装交叉编译器_密码学_04

3.云密码服务器配置

        前置条件:使用有物联网管理模块的云密码服务平台。

        

unity arm linux 交叉编译 linux安装交叉编译器_linux_05

(1)首先需要管理员创建一个机构供相应的物联网项目进行使用,应用方获得机构的账号和密码后,登录到云密码服务平台,进行密码的修改;

(2)创建SM9主密钥供应用的使用:

        

unity arm linux 交叉编译 linux安装交叉编译器_服务器_06

(3)进入密码应用->默认应用->密钥下载,点击应用操作,选择密钥配置,进行密码机密钥的关联,与步骤2中的密钥进行关联;

(4)进入单点登录->应用管理,点击新增应用:

unity arm linux 交叉编译 linux安装交叉编译器_linux_07

unity arm linux 交叉编译 linux安装交叉编译器_安全_08

        得到应用ID;

(5)点击密码,获得应用凭证:

unity arm linux 交叉编译 linux安装交叉编译器_服务器_09

(6)到物联网管理->开户管理,进行设备的添加:

unity arm linux 交叉编译 linux安装交叉编译器_密码学_10

点击新增:

unity arm linux 交叉编译 linux安装交叉编译器_密码学_11

记下:设备的用户id为手机号:13800138002,设备ID为:tianyingserial0001, 盐值为:tianyingsalt123。至此,物联网平台的设置基本完成。

四、运行编译

1.首先了解嵌入版中的tftp的使用:

Usage: tftp [OPTIONS] HOST [PORT]

Transfer a file from/to tftp server

        -l FILE Local FILE   ==>本地文件名
        -r FILE Remote FILE   ==>服务器上的文件名
        -g      Get file     ==>表示需要下载文件
        -p      Put file     ==>表示需要上传文件

例子:(其中tftp服务器地址为:192.168.1.101)

(1)下载embed_test 到本地的嵌入板:

tftp -g -r embed_test 192.168.1.101
(2)上传test.log到服务器:
chmod +x embed_test
(3)用embed_test 的测试demo,进行交叉编译,得到可执行文件embed_test,放到tftp的根目录下,然后到嵌入板,进行下载embed_test 到本地:
tftp -g -r embed_test 192.168.1.101
(4)下载后,给embed_test添加运行权限:
chmod +x embed_test

(5)即可进行./embed_test的运行测试。

unity arm linux 交叉编译 linux安装交叉编译器_安全_12

五、参考文档

      wsl系统的安装:

https://baijiahao.baidu.com/s?id=1676458219387247920&wfr=spider&for=pc

      tftp服务器的搭建:

      2.

      tftp命令的使用:

      3. http://baidu.com

      CLion的下载(建议下载:2022.2.2):

      4.https://www.jetbrains.com/zh-cn/clion/download/#section=windows