Mac(M芯片)上进行嵌入式开发遇到的问题

通过 CH340 串口转接器连接

  1. 获取 CH340 串口转接器

macOS 下,CH340 串口转接器一般会以 /dev/tty.usbserial-* 的形式显示。

zsh 复制代码
ls /dev/tty.*  # /dev/tty.wchusbserial1110
  • 一般第一次连接无法识别,需要安装驱动才行。
  1. 安装驱动

通过串口调试工具连接

  • 下载mac版本的 secureCRT macos secureCRT

  • 后面的操作就和windows secureCRT一样了

  • 或者使用 termius

交叉编译问题

  1. 可能会遇到编译链的版本比较高,开发板的 glibc 版本过低问题
  • 解决方法:
  • M芯片的 内核版本是 aarch64 有些开发板的内核版本是 armv7l,需要我们进行交叉编译的话,需要将交叉编译链的版本改为 armv7l,使用
    sudo apt-get install gcc-arm-linux-gnueabihf,这里有个点要注意,需要看开发板的glibc版本,然后去下载对应的编译环境。
  • 获取开发板的 glibc 版本:
    ldd --version 或者 /lib/libc.so.6
  1. 可以使用 docker 镜像解决交叉编译问题
  • 推荐在虚拟机 ubuntu下安装docker,然后使用 docker 镜像进行交叉编译。

  • 安装成功后使用命令进入你要编译的文件下

    docker run -it --rm
    -v /home/ry2/base:/workspace
    -w /workspace
    ubuntu:16.04
    /bin/bash

  • 配置镜像源

bash 复制代码
sudo vim /etc/docker/daemon.json
# 使用命令
sudo tee /etc/docker/daemon.json << 'EOF'
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://hub.rat.dev",
    "https://dockerproxy.com"
  ]
}
EOF
  • 启动一个 Ubuntu 16.04 的临时 Docker 容器,并把宿主机的 /home/ry2/base 映射到容器里的 /workspace,然后进入 Bash。

  • 安装交叉编译工具链

bash 复制代码
apt-get install -y build-essential wget pkg-config libffi-dev zlib1g-dev gcc-arm-linux-gnueab

arm-linux-gnueabihf-gcc --version 输出:arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0

编译好程序后可以使用strings lib/touch | grep GLIBC 查看链接的库版本是否符合开发板的要求

还可以使用 file 命令查看链接的库版本

相关推荐
小僧景贤7 小时前
单片机全方位调试实战指南:串口/RTT/逻辑分析仪/示波器/内核排错分层避坑教程
单片机·嵌入式硬件·物联网
2401_8275012811 小时前
【无标题】
arm开发·嵌入式硬件
LeoZY_11 小时前
LinkScope 使用笔记:基于 OpenOCD 的通用硬件芯片调试助手
笔记·单片机·嵌入式硬件·开源软件
星空真迷人13 小时前
嵌入式鸿蒙并非精简版,核心究竟是什么?
stm32·单片机·嵌入式硬件·物联网·华为·harmonyos·iot
hongmai66688813 小时前
GK7205V300芯片深度解析:H.265低功耗视觉主控,助力安防监控高效选型
arm开发·嵌入式硬件·物联网·智能家居·h.265·risc-v
2301_8014349815 小时前
STM32F407移植TinyUSB
stm32·单片机·嵌入式硬件
Dlrb121115 小时前
Linux驱动---Linux 中断系统及其上与下半部的介绍与阻塞IO实现按键检测
linux·嵌入式硬件·imx6ull·中断·阻塞io
国产HT1621B16 小时前
YL4056 NTC 外围电阻 R3/R4 计算:从公式推导到工程选型
科技·单片机·嵌入式硬件
Architect_Lee16 小时前
mac快速安装mysql
数据库·mysql·macos
唔好理总之好犀利17 小时前
TVS管分析:MKS烧保险丝异常分析
stm32·单片机·嵌入式硬件