golang和rust嵌入式开发初探

2023-10-27

本文简单的介绍了golang和rust语言在openwrt系统、mips架构下的交叉编译。

环境

主机 系统 内核 架构
host主机 Centos 7.2 linux 3.10.0-327 x86_64
target主机 openwrt 14.07 linux 3.10.14 mipsel

我们要在host主机上编译target主机上运行的二进制程序。由于我们团队有现有的路由宝产品,所以使用现有openwrt环境、并在真机路由器上做测试。如果想亲自动手实验,可以考虑使用QEMU等虚拟机软件模拟相应环境。

工具链

获取openwrt工具链有两种方式:

  1. 可以直接使用openwrt的官网自行下载相应平台的SDK。文档
  2. 使用源码自己编译,新文档旧文档

文档介绍的比较详细,以下简单列出一些步骤和问题。

  1. 进入源码目录,make menuconfig配置相应平台和其他选项等。
  • make menuconfig终端可能显示乱码。解决:export TERM=screen
  1. make -j8
  • 可以使用-j8 选项加快编译速度。
  • make时会下载依赖源码包,由于众所周知的网络原因,可能有些包无法下载。
    解决:可以使用make V=s 打印编译详细信息,查看卡在哪个下载,根据url自行想办法,然后把下载到到包放到dl目录。
  1. 编译完成后会在staging_dir目录下生产工具链。

验证工具链

第1步. 设置STAGING_DIR环境变量为上面工具链目录。

$ export STAGING
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

golang和rust嵌入式开发初探 的相关文章

随机推荐

  • Set排序

    工作中遇到 写了很久以前的写法 师兄给了很多建议 于是整理了一下 孔子曰 你知道茴香豆的茴字有几种写法吗 第一种 平常的写法 public class App public static void main String args Set
  • STM32中待机模式与看门狗的冲突问题

    最近在做刚刚入职的第一个STM32的项目 需要用到按键进入以及退出低功耗 待机模式 同时也要用到看门狗 排除进入低功耗待机模式的一些问题后加入看门狗 发现独立看门狗无法关闭 这样导致了待机模式无法进入 首先介绍一下STM32低功耗 按功耗由
  • Mac基于Aanconda PyCharm搭建Python开发环境

    基于Aanconda PyCharm搭建Python开发环境 Anaconda介绍 Anaconda指的是一个开源的Python发行版本 其包含了Python conda等180多个科学包及其依赖项 因为包含了大量的科学包 Anaconda
  • linux共享文件夹?

    linux共享文件夹 在Linux中 可以使用Samba或NFS等服务来共享文件夹 使用Samba共享文件夹 Samba是一种允许Windows和Linux之间共享文件和打印机的服务 以下是在Linux中使用Samba共享文件夹的步骤 安装
  • Python学习第〇篇-主要概念及示例

    前言 今天开始学习Python 争取每天一篇学习笔记 为保持与python风格一致 笔记中的语言尽量简洁 1 总括 python的语法与javascript相似 均为解释执行语言 python可以使用如jython解释器 使得python可
  • Python:web框架之Tornado的Hello World示例

    一 安装Tornado pip install tornado 安装完成后会看到显示tornado的版本号 二 编写Hello World程序 import tornado ioloop 导入tornado包 import tornado
  • C++/C的堆栈理解

    前言 我们经常听见一个概念 堆 heap 和栈 stack 其实在数据结构中也有同样的这两个概念 但是这和内存的堆栈是不一样的东西哦 本文也会说明他们之间的区别的 另外 本文的只是是以C C 为背景来说明 不同的语言在内存管理上面会有区别
  • SigmaPlot科学绘图工具:ROC曲线分析及AUC组间差异的显著性分析

    目的 初步使用SigmaPlot科学绘图工具 进行ROC曲线绘制并分析检验变量AUC组间差异性是否显著 软件下载及安装 SigmaPlot下载安装按照这个教程即可 https www hhkxxw com 24799 html 快速通道 S
  • Eclipse配置SVN的几种方法及使用详情

    此文章对Myeclipse同样适用 一 在Eclipse里下载Subclipse插件 方法一 从Eclipse Marketplace里面下载 具体操作 打开Eclipse gt Help gt Eclipse Marketplace gt
  • G003-186-08

    作业报告 目录 项目需求提案计划书 一 项目介绍 一 项目背景 二 产品目的 三 应用领域 1 项目范围 2 功能范围 3 应用对象 四 项目优势 五 可行性分析 1 技术可行性分析 2 经济可行性分析 3 社会可行性分析 项目需求萃取分析
  • 如何处理ChatGPT在文本生成中的语法错误和不合理性?

    ChatGPT是一种强大的自然语言处理模型 但它并不是完美的 有时会产生语法错误或不合理的文本 这些问题可能会影响模型生成的内容的质量和可信度 在处理ChatGPT中的语法错误和不合理性时 有许多方法和策略可以采用 以下是一些详细的讨论 1
  • PhotoShop 之 绘制心型云彩

    利用渐变工具 画笔工具 路径工具绘制心型云彩 1 新建一个白色画布 2 利用渐变工具 绘制背景图 3 新建一个图层 利用自定义形状 选择路径 绘制一个心型形状 4 配置画笔 5 选择路径 选择右下角的 用画笔描边路径 按钮 对心形状进行描边
  • AngularJS中的$http缓存以及处理多个$http请求

    在AngularJS的实际项目中 经常需要处理多个 http请求 每个 http请求返回一个promise 我们可以把多个promise放到 q all 方法接受的一个数组实参中去 处理多个 http请求 angular module ap
  • C++ 返回值为数组的函数

    首先整理一下new的用法 1 new 分配一个数的空间 2 new 分配一个数组的空间 空间大小在 中指定 3 当使用new运算符定义一个多维数组变量或数组对象时 它产生一个指向数组第一个元素的指针 返回的类型保持了除最左边 维数外的所有维
  • 使用 MBean 和 日志查看 Tomcat 线程池核心属性数据

    文章目录 CustomTomcatThreadPoolMBean CustomTomcatThreadPool CustomTomcatThreadPoolMBean com qww config public interface Cust
  • Python爬虫之JS逆向分析技巧

    Python爬虫之JS逆向分析技巧 当我们使用爬虫时 遇到被JS加密的参数怎么办 有人会说用Selenium不就可以了么 但是Selenium执行又没效率怎么办 答案是 使用Python的execjs库直接执行JS脚本来获取加密后的参数 J
  • 【Linux操作小试牛刀】如何使用systemctl 命令管理 systemd服务

    前言 需求 当Linux中有许多系统服务 无法通过外部管理工具或者接口开启 关闭 需要手动管理时就需要用到systemctl命令 Systemd是基于Linux的操作系统的系统和服务管理器 用于管理服务 Systemd比旧的Sysvinit
  • [结构体]Cpp里结构体的几种常用写法

    1 定义并声明结构体变量 struct Date int year int month int day int main Date date 声明并定义了一个Date类型的变量date date year 2023 date month 9
  • Ubuntu 安装指定版本 python

    场景 在构建 docker 镜像的时候为了与 TensorFlow Pytorch 或者其他程序能兼容使用 需要安装指定版本的 python 常用的安装命令 apt get 有时候不能很 精确 指定 甚至是找不到源 隔山修路 遇水搭桥 py
  • golang和rust嵌入式开发初探

    本文简单的介绍了golang和rust语言在openwrt系统 mips架构下的交叉编译 环境 主机 系统 内核 架构 host主机 Centos 7 2 linux 3 10 0 327 x86 64 target主机 openwrt 1