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 命令查看链接的库版本

相关推荐
LCG米3 小时前
STM32串口接收卡死根因排查:ORE溢出标志陷阱、错误标志清除顺序与中断恢复实测
stm32·单片机·嵌入式硬件·串口·嵌入式
创界工坊工作室4 小时前
38-基于单片机的老人健康监测系统
单片机·嵌入式硬件·51单片机·proteus
三佛科技-134163842126 小时前
20W~200W副边反馈SSR隔离方案HN1562+碳化硅MOS(含光耦817,431)
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
恒锐丰科技林技术员7 小时前
EG2103 高压 MOS/IGBT 驱动芯片解析:半桥驱动的高性价比之选
经验分享·嵌入式硬件·硬件工程
_Ningye9 小时前
STM32 — 11.5 硬件SPI读写W25Q64
stm32·单片机·嵌入式硬件
inrichtt10 小时前
第九课时:STM32 SPI实战:按键消抖与FLASH断电保护
stm32·单片机·嵌入式硬件
尼喃12 小时前
两节两串锂电池保护板原理图+充电电路二合一电路图
嵌入式硬件
深圳市恒锐丰科技杨生12 小时前
SS6208L 12V 集成 MOS 半桥功率芯片|LeadPower 率能半导体
嵌入式硬件·硬件工程
女神下凡13 小时前
芯参谋(61):PMSM永磁同步电机驱动电路设计指南
arm开发·单片机·嵌入式硬件·硬件工程·设计规范
HRTOS13 小时前
HRTOS 4.0 中断嵌套注意事项:为什么不建议在嵌套中断中调用唤醒任务 API?
单片机·嵌入式硬件·51单片机