Windows下交叉编译编译及远程调试环境搭建版

Windows下交叉编译编译及远程调试环境搭建

工具链:eclipseCDT+CrossGcc+SSH/Serial远程调试

  1. eclipseCDT
    1. 下载地址(20-09版本)

官网:2020-09 R | Eclipse Packages

    1. 安装

解压后直接运行eclipse.exe即可。

  1. CrossGccToolChain

ARM官方提供了各环境下的交叉编译工具链,下载地址如下:

版本

下载地址

新版本

大于11.2

Arm GNU Toolchain Downloads – Arm Developer

旧版本

8.2~10.3

https://developer.arm.com/downloads/-/gnu-a

旧版本

4.9~7.5

https://releases.linaro.org/components/toolchain/binaries/

CrossGcc需要选择与目标环境glibc一致的版本,在目标环境中通过ldd --version查询对应glibc版本。

可通过查看各版本的ReleaseNote确认是glibc否与目标环境匹配,gcc 10.2版本的libc是2.31,与目标环境匹配。下载面向GNU/Linux的版本,压缩包解压到C盘即可。

  1. 工程设置

    1. 导入工程

    1. 编译器修改

  1. 将工程的编译环境修改为Cross-GCC

  1. 修改ToolChain为交叉编译起器,并使用CDT内部的build工具。

  1. 设置交叉编译环境路径和前缀

  1. 编译
    1. 报错

如果出现类似以下报错,则是缺少一些linux系统的特定库文件。

找到该库文件在Linux的路径,复制到工程(新建个路径),并将路径添加进工程libraries即可。

  1. 确认路径
  2. 复制到工程路径下

  1. 添加libraries

    1. 自动重命名脚本执行

修改prebuild & postbuild脚本

C:\Program Files\Git\bin\sh.exe  -c "cd ../../../hooks && ./prebuild-git.sh  ../version"

C:\Program Files\Git\bin\sh.exe  -c "cd ../../../hooks && ./postbuild-rename.sh ../binaries ../prj/tsmr_app/debug_2chip_win/tsmr_app TSMR300D_arm_app"

  1. 远程调试
    1. 目标机端gbdserver设置
      • 开启root的ssh访问权限
        1. sudo nano /etc/ssh/sshd_config
        2. sshd_config文件中找到PermitRootLogin这一行。如果这一行已经存在,确保它的值设置为yes。如果这一行以#开头,则表示它被注释掉了,你需要取消注释(移除#)并设置其值为yes。

PermitRootLogin yes

        1. sudo systemctl restart ssh
      1. 安装gdbserver

apt-get install gdbserver

    1. 调试机端gdb设置

    1. 调试机端python环境设置

设置PYTHON的PATH路径,python版本必须与aarch64-none-linux-gnu-gdb所使用的python版本一致(可通过在cmd中运行此exe根据错误提示判定版本),当前gdb对应的版本为2.7。可通过evertyhing搜索电脑中已经存在的python27或单独下载安装包。环境变量设置如下:

此外,需要保证python27.dll在系统PATH中,如没有,可将python27.dll复制到aarch64-none-linux-gnu-gdb同目录。

Python27.dll文件附件如下:

    1. 开启调试

  1. 多合一工程使用

修改单片、cascade2、cascade4等工程多合一后,需要重新导入工程,编译、调试方法也有些变化。

  1. 将原CDE中的工程删除(右键delete不勾选其它),重新导入工程“tsmr_app”
  2. 编译:右键“build configuration”选择所需工程,例如原cascade2_lin工程则选“debug_2chip_lin”

  1. 首次编译后,出现对应debug文件,后续再次修改编译可右键—“build project”

  1. 调试:

linux环境下: 首次调试按顺序点击debug按钮1—2操作;非首次调试直接点击3启动debug。

进入debug configurations,选择application

链接可执行文件:可生成路径6。

cross环境下:需结合配置上一节“4、远程调试”内容+上述linux环境的操作。

如下两张图。

Windows下交叉编译编译及远程调试环境搭建

版本

修改内容

编辑人

日期

V1.0

初版

陈桥

2024.02.20

V1.1

增加cross编译报错处理

陈思佳

2024.03.07

V1.2

增加自动重命名脚本执行,适合多合一工程

陈桥

2024.03.11

V1.3

增加5、多合一工程使用,适配tsmr_app版本0x54cc0bc7+

陈思佳

2024.03.20

工具链:eclipseCDT+CrossGcc+SSH/Serial远程调试

  1. eclipseCDT
    1. 下载地址(20-09版本)

官网:2020-09 R | Eclipse Packages

    1. 安装

解压后直接运行eclipse.exe即可。

  1. CrossGccToolChain

ARM官方提供了各环境下的交叉编译工具链,下载地址如下:

版本

下载地址

新版本

大于11.2

Arm GNU Toolchain Downloads – Arm Developer

旧版本

8.2~10.3

https://developer.arm.com/downloads/-/gnu-a

旧版本

4.9~7.5

https://releases.linaro.org/components/toolchain/binaries/

CrossGcc需要选择与目标环境glibc一致的版本,在目标环境中通过ldd --version查询对应glibc版本。

可通过查看各版本的ReleaseNote确认是glibc否与目标环境匹配,gcc 10.2版本的libc是2.31,与目标环境匹配。下载面向GNU/Linux的版本,压缩包解压到C盘即可。

  1. 工程设置

    1. 导入工程

    1. 编译器修改

  1. 将工程的编译环境修改为Cross-GCC

  1. 修改ToolChain为交叉编译起器,并使用CDT内部的build工具。

  1. 设置交叉编译环境路径和前缀

  1. 编译
    1. 报错

如果出现类似以下报错,则是缺少一些linux系统的特定库文件。

找到该库文件在Linux的路径,复制到工程(新建个路径),并将路径添加进工程libraries即可。

  1. 确认路径
  2. 复制到工程路径下

  1. 添加libraries

    1. 自动重命名脚本执行

修改prebuild & postbuild脚本

C:\Program Files\Git\bin\sh.exe  -c "cd ../../../hooks && ./prebuild-git.sh  ../version"

C:\Program Files\Git\bin\sh.exe  -c "cd ../../../hooks && ./postbuild-rename.sh ../binaries ../prj/tsmr_app/debug_2chip_win/tsmr_app TSMR300D_arm_app"

  1. 远程调试
    1. 目标机端gbdserver设置
      • 开启root的ssh访问权限
        1. sudo nano /etc/ssh/sshd_config
        2. sshd_config文件中找到PermitRootLogin这一行。如果这一行已经存在,确保它的值设置为yes。如果这一行以#开头,则表示它被注释掉了,你需要取消注释(移除#)并设置其值为yes。

PermitRootLogin yes

        1. sudo systemctl restart ssh
      1. 安装gdbserver

apt-get install gdbserver

    1. 调试机端gdb设置

    1. 调试机端python环境设置

设置PYTHON的PATH路径,python版本必须与aarch64-none-linux-gnu-gdb所使用的python版本一致(可通过在cmd中运行此exe根据错误提示判定版本),当前gdb对应的版本为2.7。可通过evertyhing搜索电脑中已经存在的python27或单独下载安装包。环境变量设置如下:

此外,需要保证python27.dll在系统PATH中,如没有,可将python27.dll复制到aarch64-none-linux-gnu-gdb同目录。

Python27.dll文件附件如下:

    1. 开启调试

  1. 多合一工程使用

修改单片、cascade2、cascade4等工程多合一后,需要重新导入工程,编译、调试方法也有些变化。

  1. 将原CDE中的工程删除(右键delete不勾选其它),重新导入工程“tsmr_app”
  2. 编译:右键“build configuration”选择所需工程,例如原cascade2_lin工程则选“debug_2chip_lin”

  1. 首次编译后,出现对应debug文件,后续再次修改编译可右键—“build project”

  1. 调试:

linux环境下: 首次调试按顺序点击debug按钮1—2操作;非首次调试直接点击3启动debug。

进入debug configurations,选择application

链接可执行文件:可生成路径6。

cross环境下:需结合配置上一节“4、远程调试”内容+上述linux环境的操作。

如下两张图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值