项目简介
本项目是基于C++的串口通信与调试工具,主要用于嵌入式系统中进行串口数据的读写操作。它集成了日志记录和远程调试功能,支持交叉编译,可在ARM架构的设备上运行,还能通过NFS和GDB实现远程调试。
项目的主要特性和功能
- 支持基本的串口读写操作,可与串口设备进行数据交互。
- 运用easylogging库进行日志记录,支持日志的初始化、输出和管理。
- 适配交叉编译环境,能在ARM架构设备上运行。
- 借助NFS和GDB实现远程调试,支持在开发主机上调试运行在嵌入式设备上的程序。
- 提供简单的测试函数,用于验证项目的构建和功能。
安装使用步骤
1. 安装交叉编译工具
- 下载指定的交叉工具链:
https://pan.baidu.com/s/1a8FAd4AqiFsFfqxY7XmZNw
- 解压工具链到指定目录,并配置环境变量:
bash export PATH=/home/lkt/Soft_packet/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin:$PATH
- 安装32位库支持:
bash apt-get install lib32z1 lib32ncurses5 lib32stdc++6
- 验证工具链是否安装成功:
bash arm-linux-gnueabihf-gcc -v
2. 配置CMake进行交叉编译
- 修改
CMakeLists.txt
文件,确保交叉编译环境正确配置:cmake if($ENV{XPL_OBJECT_TYPE} STREQUAL ARM) SET(CMAKE_SYSTEM_NAME arm-linux-gnueabihf) SET(TOOL_ADD "/home/lkt/Soft_packet/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux") set(triple arm-linux-gnueabihf) set(CMAKE_C_COMPILER "${TOOL_ADD}/bin/arm-linux-gnueabihf-gcc") set(CMAKE_C_COMPILER_TARGET ${triple}) set(CMAKE_CXX_COMPILER "${TOOL_ADD}/bin/arm-linux-gnueabihf-g++") set(CMAKE_CXX_COMPILER_TARGET ${triple}) endif()
- 设置环境变量并执行编译:
bash export XPL_OBJECT_TYPE="ARM" source arm_env_linux.sh cmake . make
3. 配置NFS和远程调试
- 在开发主机上安装NFS服务器:
bash apt-get install nfs-kernel-server
- 创建共享目录并配置NFS:
bash mkdir /home/lkt/nfs vi /etc/exports
在/etc/exports
中添加:/home/lkt/nfs/ *(rw,sync,no_root_squash)
- 重启NFS服务:
bash /etc/init.d/nfs-kernel-server restart
- 在嵌入式设备上挂载NFS共享目录:
bash mount -t nfs -o nolock,nfsvers=3 192.168.2.9:/home/lkt/nfs /mnt/
4. 使用GDB进行远程调试
- 将
gdbserver
复制到嵌入式设备的共享目录中。 - 在嵌入式设备上启动
gdbserver
:bash ./gdbserver 192.168.2.15:2222 ./helloworld
- 在开发主机上配置VSCode的
launch.json
文件:json "miDebuggerPath": "/home/lkt/Soft_packet/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-gdb", "miDebuggerServerAddress": "192.168.2.15:2222"
- 在VSCode中按
F5
启动调试。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】