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

相关推荐
李小白杂货铺6 小时前
Oh My Zsh 简记
macos·macbook·zsh·主题·插件·oh my zsh·omz
sramdram11 小时前
基于32位微控制器的FOC汽车水泵方案
单片机·嵌入式硬件·汽车·微控制器·32位微控制器
开发笔记-阿牛14 小时前
解析一款有意思的产品||CK6159A语音芯片设计的儿童专注力训练机-舒尔特玩具
stm32·单片机·嵌入式硬件·音频
残影飞雪16 小时前
ESP32-C5下载烧录固件失败报错的原因
单片机·嵌入式硬件
搞全栈小苏16 小时前
SIMetrix_simplis8.4安装教程——附安装包
stm32·单片机·嵌入式硬件·电力电子
qq_5739678217 小时前
STM32控制器
stm32·单片机·嵌入式硬件
某林21218 小时前
履带小车底盘stm32F103RCT6开发
人工智能·stm32·单片机·嵌入式硬件·架构·人机交互·ros2
fukai772219 小时前
macOS防止休眠的菜单栏小工具
macos
sramdram19 小时前
低功耗MCU微控制器在动态血糖仪(CGM)中的应用方案
单片机·嵌入式硬件·mcu·mcu微控制器
Dlrb121119 小时前
ARM--IMX6ULL的SDK学习,BSP开发工程管理,以及链接脚本与Makefile的编写
单片机·嵌入式硬件·arm·sdk·链接脚本·i.mx6ull·cortex-a7