当前位置: 首页 > news >正文

【tinyusb】首次使用

参考文档

OpenDeepWiki - AI-Powered Knowledge Management Platform

 

下载tnyusb代码

git clone https://github.com/hathach/tinyusb.git
cd tinyusb
git checkout master

编译工程

cd examples/device/cdc_msc
mkdir build
cd build
# 指定目标板卡,例如 STM32F4
cmake .. -DBOARD=stm32f4_discovery
make

1. 执行编译提示 cmake 版本较低 (> 3.20)

image

image

升级cmake

sudo apt remove cmake
sudo snap install cmake --classic

2. 再次执行编译提示 找不见cmake

image

确认开发环境

cat /etc/os-release

image

ubuntu看下cmake安装位置

whereis cmake

image

可以看出是通过 snap 安装的,但 /usr/bin/cmake 没链接过去

建立符号链接

sudo ln -sf /snap/bin/cmake /usr/bin/cmake

确认是否生效

cmake --version

image

 

3. 再次执行编译提示 找不见指定的项目

image

 查找了支持的项目

image

 找不见编译器

image

查看是否安装

arm-none-eabi-gcc --version

image

安装编译器

sudo apt update
sudo apt install gcc-arm-none-eabi

image

 

4. 再次执行编译提示 找不见 CMSIS Device 包

image

查找tinyusb官网,提供了 CMSIS Device 支持包资源

Dependencies - TinyUSB

根据 cmake 配置的路径,下载 STM32F4 CMSIS Device 包到对应位置

image

image

 

5. 再次执行编译提示 找不见 STM32 HAL 驱动源码

image

查找tinyusb官网,提供了 STM32F4 HAL 驱动 支持包资源

Dependencies - TinyUSB

下载 STM32F4 HAL 驱动

image

 

6 .继续编译 提示缺少 ARM CMSIS core

image

提示缺少 ARM CMSIS core

image

查找tinyusb官网,提供了 ARM CMSIS core 驱动 支持包资源

Dependencies - TinyUSB

下载 ARM CMSIS core

git clone https://github.com/ARM-software/CMSIS_5.git

若下载速度慢可下载 gitee 镜像

git clone https://gitee.com/mirrors/CMSIS_5.git

 根据 cmake 配置的路径,下载代码到对应位置

image

image

 

6 .继续编译 链接报错

image

可以看出是 从 ELF 转换为 BIN/HEX 文件 时出错,这是因为 objcopy 版本与目标架构不匹配

在 ARM 工具链中,必须使用 arm-none-eabi-objcopy
但 TinyUSB 默认调用系统的 /usr/bin/objcopy(属于 x86 平台)

a. 先确认 arm-none-eabi-objcopy 有没有正确安装

image

b. 再确认项目cmake中指定的工具

image

c. 确认上述两步没问题,那就清除后重新构建

image

image

到此可以看到编译成功

 image

http://www.hskmm.com/?act=detail&tid=34834

相关文章:

  • 2025 年西安标志标识厂家最新推荐排行榜:聚焦西北优质服务商,精选实力企业助您精准选型
  • 打卡
  • 2025年10月豆包关键词排名优化服务推荐排行榜:十大服务商深度对比与评测指南
  • 2025年10月豆包关键词排名优化服务推荐排行榜单:十大服务商深度对比与评测分析
  • 2025年10月豆包关键词排名优化服务排行榜:十家优质服务商综合评测与选择指南
  • 第五届计算机图形学、人工智能与数据处理国际学术会议
  • 利用arm板chroot修改其上位机的文件系统
  • 罗氏线圈开口处靠近电流易受干扰:原因、影响与抗干扰对策​
  • 一文看懂zk-STARK协议
  • 基于uIP协议栈移植FreeModbus TCP的方案
  • 给VitePress的右上角增加Github角标
  • 2025 年最新推荐即时通讯厂商权威推荐榜单:信创适配 + 私有化部署能力深度测评及政企选型指南
  • 砖形图量化策略需求文档
  • 第六届新型电力系统国际论坛——电力系统与新能源技术创新论坛
  • 2025 年面霜厂家最新推荐榜单:优质企业专利技术与一站式服务全景解析及选型指南抗衰霜/润唇霜/植物萃取面霜/抗老霜/保湿霜/修复霜厂家推荐
  • CSP-J历届真题总结
  • MATLAB中海洋要素计算工具箱解析
  • Python 中的绘图功能 matplotlib - stone-stone
  • 回文字符串(p2010)
  • 妈咪斜特!罗小黑战记2啥时候上线流媒体啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • 你们的SpringBoot项目使用Mybatis还是Spring Data JPA?
  • 2025年10月豆包排名优化服务推荐排行榜单:十家服务商综合对比与评测分析
  • ICPC2023沈阳 游记(VP)
  • 2025年10月豆包排名优化服务排行榜评测:十家优质服务商综合对比分析报告
  • 2025?CTF(部分wp) -- week1
  • 2025年10月豆包排名优化服务推荐排行榜:十大服务商对比评测与选择指南
  • 为WPF应用增加项目图标
  • 基于STM32单片机的ECG心电滤波算法
  • 《掰开揉碎讲编程-长篇》一文读懂 哈希表
  • 【URP】Unity中Mipmap Streaming原理与实现