ShiMetaPi-Pico-G1快速入门:(1)开发环境搭建

本章节详细介绍如何为ShiMetaPi-Pico-G1搭建完整的交叉编译开发环境。

1 开发环境概述

由于目标机(ShiMetaPi-Pico-G1)资源有限,无法运行开发和调试工具,因此在性能强大的宿主机上进行程序的编译、链接和定位,生成可执行文件后,再烧写到目标机中运行,即采用"宿主机+目标机(评估板)"的交叉编译模式。

典型的开发环境由以下部分组成,并处于同一网络中:

  • Linux服务器:作为交叉编译环境,完成SDK的编译与构建。

  • Windows工作台:通过Mobaxterm等SSH客户端工具远程登录Linux服务器进行开发,并通过串口/网口/USB与目标板连接,用于运行调试工具、烧写软件。

  • 目标板(ShiMetaPi-Pico-G1):运行最终编译生成的系统镜像和应用程序。

说明:

开发环境中使用了Windows工作台,但实际上很多工作(如使用minicom代替超级终端)也可以在Linux服务器上完成,用户可自行选择。

2 搭建Linux服务器编译环境

以下步骤以推荐的64位Ubuntu 18.04系统为例进行说明。

注意

推荐使用64位Linux服务器,本开发包在32位Linux服务器、较老版本的Linux服务器、偏冷门的Linux服务器上可能存在未知的兼容性问题。

2.1 硬件与系统推荐配置

推荐使用64位Linux服务器,以确保开发包的兼容性。推荐配置如下:

本开发包默认使用以下Linux系统版本进行编译:

复制代码
Linux version 4.15.0-192-generic (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #203-Ubuntu SMP Wed Aug 10 17:40:03 UTC 2022

2.2 网络环境搭建

请用户自行配置网络,并安装 NFS、Samba、SSH 等网络组件:

复制代码
sudo apt-get install nfs-kernel-server samba ssh

说明

网络环境搭建完成后,请确保Linux服务器与Windows工作台、目标板处于同一局域网内,并能互相Ping通。

2.3 安装依赖软件包

操作系统安装好并配置好网络环境后,按照以下步骤完成相关软件包的安装。

步骤 1:配置默认使用 bash
复制代码
sudo dpkg-reconfigure dash

在弹出的对话框中选择 No,将默认 shell 从 dash 切换为 bash。

步骤 2:安装基础软件包
复制代码
sudo apt-get install make libc6:i386 lib32z1 lib32stdc++6 zlib1g-dev libncurses5-dev ncurses-term libncursesw5-dev g++ u-boot-tools:i386 texinfo texlive gawk libssl-dev openssl bc
步骤 3:解决 64 位系统第三方库编译问题

创建 /etc/ld.so.preload 文件并置空,以解决 64 位 Linux 服务器上某些第三方库编译失败的问题:

复制代码
sudo touch /etc/ld.so.preload
sudo bash -c 'echo "" > /etc/ld.so.preload'
步骤 4:安装 gperf 工具

安装 gperf 以解决 eudev-3.2.7 编译问题:

复制代码
wget http://ftp.gnu.org/pub/gnu/gperf/gperf-3.1.tar.gz
tar -xzf gperf-3.1.tar.gz
cd gperf-3.1
./configure
make
sudo make install
步骤 5:安装 mtd-utils 依赖库

mtd-utils 2.0.2 依赖以下库:

复制代码
sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config

设置 pkg-config 搜索路径:

复制代码
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig"
步骤 6:安装 automake 1.15.1

mtd-utils 2.0.2 依赖于 automake 1.15.1 版本,需要手动安装:

  1. 删除原有 automake 版本

    sudo apt-get autoremove automake

  2. 下载 automake 1.15.1

    wget ftp://ftp.gnu.org/gnu/automake/automake-1.15.1.tar.gz

  3. 编译安装

    tar zxvf automake-1.15.1.tar.gz
    cd automake-1.15.1/
    ./configure
    make
    sudo make install

复制代码

2.4 SDK获取

说明

请用户自行根据服务器Linux发行版安装git工具

  1. 拉取SDK

github

复制代码
git clone https://github.com/ShiMetaPi_0/shimetapi_pico_gx.git

gitee

复制代码
git clone https://gitee.com/ShiMetaPi_0/shimetapi_pico_gx.git
  1. 配置交叉编译工具路径

注意:

使用从网络等渠道得到的交叉编译工具可能存在与使用的内核并不配套的情况,造成开发过程中出现一些不可预料的问题。请使用SDK自带的交叉编译工具链。

SDK发布包中自带编译工具链,进入SDK根目录后,执行以下命令即可将工具链路径加入环境变量:

复制代码
cd sdk
source ./build/env.sh
复制代码

该命令会将 sdk/tools/linux/toolchains 目录下的编译路径加入到 PATH 环境变量中,编译器即可在SDK中使用。

提示:

每次打开新的终端窗口进行编译前,都需要先执行 source ./build/env.sh 来加载环境变量,或者使用run.sh脚本进行编译构建。

3. 验证SDK

进入SDK根目录,进行一次编译和烧录,验证是否能够将固件烧录进ShiMetaPi-Pico-G1并成功运行。

具体请参考 《镜像编译》、《镜像烧录》、《系统登录》。

相关推荐
zcmodeltech3 小时前
工程机械与矿山机械沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的露天开采-井下掘进-智慧矿山全场景联动方案
数据库·stm32·单片机·嵌入式硬件·制造·多分类
云泽8084 小时前
深入浅出 STM32(十五):多通道GPIO驱动的软件抽象与实现
stm32·单片机·嵌入式硬件
嵌入式阿蔡5 小时前
OTA 实战五(收官):量产落地 Checklist —— 版本号 / 防回滚 / 灰度 / 断点续传
网络·stm32·单片机·嵌入式硬件·嵌入式实时数据库
碧海银沙音频科技研究院6 小时前
基于杰理AC7016C的GTCRN门控卷积神经网络语音增强方法
人工智能·嵌入式硬件·语音识别
遇雪长安7 小时前
STM32_BOOT未引出_串口升级系统Bootloader方案
stm32·单片机·嵌入式硬件·bootloader
dcdannycheung8 小时前
【无标题】
嵌入式硬件
自小吃多8 小时前
Capture软件原理图添加元器件笔记
笔记·嵌入式硬件
tangchao340勤奋的老年?8 小时前
AMT630C 开阳电子 RISC‑V 显示 SoC|工业级双屏驱动 MCU,带 CAN 总线,国产 HMI 控制芯片
单片机·嵌入式硬件
youshi66689 小时前
stm32-SPI通信协议、软件SPI
stm32·单片机·嵌入式硬件
振南的单片机世界9 小时前
EXTI“一线多挂”陷阱:PA0和PB0同时触发,中断函数懵了
arm开发·stm32·单片机·嵌入式硬件