开始前准备

2023-11-17

一、环境预览

LiteOS是华为轻量级物联网操作系统,开源免费且功能强大,依托于gitee社区,开源地址:LiteOS

操作系统:Windows10+VMWare14 pro+Ubuntu18.04

编译工具链:gcc-arm-11.2-2022.02-x86_64-arm-none-eabi,官网下载地址:Arm GNU Toolchain | Arm GNU Toolchain Downloads – Arm Developer

硬件环境:STM32F401CCU6+ST-LINK+USB转TTL串口调试工具

软件环境:STM32CubeMX+串口调试助手(本文使用的是sscom32,选择一个顺手工具即可)

二、安装Ubuntu

从官网下载VMWare,若无注册码,也可以选择(Oracle VM VirtualBox,这是一个开源免费的虚拟机。Ubuntu作为一个Linux发行版,有良好的生态,出现问题网上搜索可以解决大部分问题。

打开虚拟机软件,新建一个虚拟机,将下载好的Ubuntu镜像(文件名字以.iso结尾)选中,Ubuntu的安装界面友好,以笔者VMWare14 pro作为例子,只需要填写用户名、密码并设置内存2G,处理器数量为2,每个处理的内核数量为1,硬盘大小为64G即可(各个电脑情况不同,参数设置越高,运行越流畅,但要在实际物理硬件支持的情况下设置)。虚拟机参数设置完毕后,点击运行即可进入界面等待Ubuntu自动安装完成。

三、安装arm-gcc工具链

在Ubuntu中从官网下载Arm GNU Toolchain | Arm GNU Toolchain Downloads – Arm Developer工具链后(注意选择Linux x86版本),得到一个压缩文件,将其放置home/下,并在终端中运行解压缩命令(参考如下的解压缩命令):

tar -xvf gcc-arm-11.2-2022.02-x86_64-arm-none-eabi.tar.bz

得到一个文件夹,编辑~/.bashrc文件(使用vim、nano等,如:vim ~/.bashrc),在文件末尾添加命令:

export PATH=$PATH:~/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi/bin

保存退出后,执行:

source ~/.bashrc

使环境变量立即生效,并用:

arm-none-eabi-gcc -v

测试,若输出版本信息,证明已经成功添加进环境变量中;若提示未找到命令,则需要再检查一下在.bashrc文件中添加的路径是否正确,注意冒号后面是你gcc-arm-11.2-2022.02-x86_64-arm-none-eabi文件夹的路径。

四、Ubuntu构建LiteOS所需要的工具链

安装Make工具:

sudo apt install make

安装python3-pip工具:

sudo apt install python3-pip

安装kconfiglib工具:

pip3 install kconfiglib

五、安装STM32CubeMX软件

ST官网下载STM32CubeMx软件,按照指示完成软件的安装即可。

六、串口调试助手下载

串口调试助手挑选一个使用顺手的即可,若无相应的软件,可以下载我所使用的软件sscom32,注意本串口调试软件要在WIndows中使用,Linux系统请自寻工具。

七、ST-Link和USB转TTL串口调试工具

ST-Link和USB转TTL串口调试工具只需要去淘宝购买即可,ST-Link可以使用官方的工具,也可以使用“便携版”的ST-Link,价格比官方版的便宜,当然有时候会遇到一些莫名其妙的bug,几率较小。USB转TTL串口调试工具也比较便宜就不多说了。

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

开始前准备 的相关文章

  • 多线程中sleep、yield、join的用法及sleep与wait区别

    Object中的wait notify notifyAll 可以用于线程间的通信 核心原理为借助于监视器的入口集与等待集逻辑 通过这三个方法完成线程在指定锁 监视器 上的等待与唤醒 这三个方法是以锁 监视器 为中心的通信方法 除了它们之外
  • 分析java源代码/开源框架源码的思路?

    讨论下大家分析源代码的思路 遇到源代码是怎样去分析的 我的思路基本是这样的 1 弄清楚这个框架 是做什么用的 分解功能 2 分解功能出来后 针对每个功能画出类框架图 3 找到功能入口 然后分析每个方法 有个疑惑 在分析方法的过程中 方法链会
  • 解决数组塌陷的两种方式

    解决数组塌陷的两种方式 1 i 2 将数组倒着循环遍历 转载于 https www cnblogs com oklfx p 8495060 html
  • vuex是什么?

    vuex解释 vuex是一个专门为vue js应用程序开发的状态管理模式 通俗点说就是我们项目中需要共享的一些数据的管理容器 这里的状态就是数据 那么什么情况下才应该使用vuex呢 简单的说就是当你在构建一个中大型单页用的时候 需要在组件外

随机推荐

  • QCombox隐藏某一项

    有事想隐藏下拉选项的某一项 而又不改变索引 可以使用如下方法 QListView view qobject cast
  • 设计模式之六大原则

    设计模式之六大原则 转载 关于设计模式的六大设计原则的资料网上很多 但是很多地方解释地都太过于笼统化 我也找了很多资料来看 发现CSDN上有几篇关于设计模式的六大原则讲述的比较通俗易懂 因此转载过来 原作者博客链接 http blog cs
  • Parallels desktop 10 虚拟机支持 USB 3.0

    自Parallels Desktop 8 0 18305 起虚拟机可支持USB 3 0 以Parallels Desktop 10 for Mac为例 如何在虚拟机启用USB 3 0 为了在虚拟机中启用 USB 3 0 请首先在配置中启用功
  • 快速排序————非递归实现

    二 递归实现快速排序 2 1 为什么我们要去通过递归实现我们的快速排序呢 大家有可能会想是不是因为递归非常的占用空间 我们都知道我们的局部变量是保存在栈上的我们的函数参数也是在栈上开辟的 所以说递归是不是会占用我们非常多的栈空间 同时呢我们
  • 【小沐学NLP】Python实现聊天机器人(ChatterBot,代码示例)

    NLP开发系列相关文章编写如下 1 小沐学NLP Python实现词云图 2 小沐学NLP Python实现图片文字识别 3 小沐学NLP Python实现中文 英文分词 4 小沐学NLP Python实现聊天机器人 ELIZA 5 小沐学
  • 矩阵复习三-正交矩阵

    如果ATA I 则A为正交矩阵 A为正交矩阵 则有 A的列向量组为一组标准正交基 若A B都为n阶正交矩阵 则有 A 1或 A 1 A的列向量组为一组标准正交基 A 1 AT A 1 AT也是正交矩阵 AB也是正交矩阵 Rn空间的线性变换矩
  • 创建分区表及分区索引(本地)

    创建表空间 SQL gt create tablespace myTableSpace 1 datafile dat DBData oradata NACEC myTableSpace1 dbf size 100m Tablespace c
  • ControlNet精准控制AI绘画教程

    ControlNet精准控制AI绘画教程 AI绘画相信大家都已经不陌生了 虽然AI绘画出图很方便 但是要让其生成一副自己满意的图 还是需要费一番心思 有时候多次调整关键词就是生成不了自己想要的画面 这些一直以来都是AI绘画的痛点但就在最近
  • Vue前端框架入门,真好学,都给我学起来

    前言 今天要分享的知识是Vue前端框架 码字不易 点个赞 转载请说明 开发工具 HBuilderX Eclipse 目录 一 Vue是什么 二 库和框架的区别 三 MVVM介绍 四 cdn的下载及入门案例 定义边界和绑定边界 案例二 数据双
  • bigdecimal加减乘除运算方法

    BigDecimal是Java中的一个类 用于处理高精度的十进制数值计算 在进行浮点数计算时 由于浮点数的精度有限 可能会出现精度丢失的情况 而BigDecimal可以避免这种情况的发生 因此在需要高精度计算的场合 使用BigDecimal
  • CentOS7安装oracle19c教程

    参考 https zhuanlan zhihu com p 571737575 1创建组和用户 vi etc hosts root rhel cat etc redhat release Red Hat Enterprise Linux S
  • 使用designer写pyqt程序

    1 创建一个qt程序 复制其ui文件至python文件夹 ui界面如下 2 vscode 配置pyqt集成环境 右击ui文件进行编译 生成UI mainwindow py文件
  • LNK2019: 无法解析的外部符号 整理

    无法解析的外部符号是Windows下C 编译的常见链接错误 收集整理备忘 本文随遇到的问题长期更新 我目前遇到的错误可以分为3类 1 编译工具链修改了对应库函数的定义 2 编译参数导致定义和链接库不一致 3 库依赖冲突 4 未导入对应库 常
  • WiFi密码别问了,这神器帮你搞定一切!

    我们经常会遇见朋好去你家做客 第一句就是问你家WiFi 密码 如果密码负责不仅说的麻烦 还有可能暴露自己的密码 毕竟很多人密码都喜欢设置的一样 但是今天这个GitHub 工具WiFi Card完全就能解决这个问题 这个工具就是把 WiFi
  • C++小白课本练习4

    练习目录 ConsoleApplication1 h 头文件定义类 Student myDate Student 类 myDate 类 第二章课本测试3验证类功能的驱动程序 cpp 第二章课本测试4使用指针的方式驱动程序 cpp 第二章课本
  • mysql数据库中文乱码的问题

    今天下午 在Qt中往mysql数据库中插入数据时 中文显示乱码 如下图所示 开始以为是数据库字符编码的问题 1 使用set character set database utf8 在命令行上修改字符编码 但是重启mysql之后 字符编码并没
  • Centos7系统防火墙使用教程【详解】

    CentOS 7是一种常见的Linux操作系统 防火墙作为网络安全的第一道防线 对于服务器的安全至关重要 本文将介绍CentOS 7系统中防火墙的使用教程 包括如何开启 关闭 配置以及防火墙规则的添加和删除 一 查看防火墙状态 在开始操作之
  • 关于Android Service真正的完全详解,你需要知道的一切

    Service全部内容基本会在本篇涉及到 我们将围绕以下主要知识点进行分析 Service简单概述 Service在清单文件中的声明 Service启动服务实现方式及其详解 Service绑定服务的三种实现方式 关于启动服务与绑定服务间的转
  • Verilog--CDC跨时钟域处理(快时钟域到慢时钟域)

    Verilog CDC跨时钟域处理 快时钟域到慢时钟域 CDC问题 单比特信号的跨时钟域问题 从快时钟域到慢时钟域 从慢时钟域到快时钟域 多比特信号的跨时钟域问题 异步FIFO 握手协议 DMUX 格雷码 双D触发器 今天先写单比特信号从快
  • 开始前准备

    开始前准备 一 环境预览 二 安装Ubuntu 三 安装arm gcc工具链 四 Ubuntu构建LiteOS所需要的工具链 五 安装STM32CubeMX软件 六 串口调试助手下载 七 ST Link和USB转TTL串口调试工具 一 环境