Windows下交叉编译编译及远程调试环境搭建
工具链:eclipseCDT+CrossGcc+SSH/Serial远程调试
- eclipseCDT
- 下载地址(20-09版本)
官网:2020-09 R | Eclipse Packages
-
- 安装
解压后直接运行eclipse.exe即可。
- CrossGccToolChain
ARM官方提供了各环境下的交叉编译工具链,下载地址如下:
版本 | 下载地址 |
新版本 大于11.2 | |
旧版本 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盘即可。
- 工程设置
-
- 导入工程
-
- 编译器修改
- 将工程的编译环境修改为Cross-GCC
- 修改ToolChain为交叉编译起器,并使用CDT内部的build工具。
- 设置交叉编译环境路径和前缀
- 编译
- 报错
如果出现类似以下报错,则是缺少一些linux系统的特定库文件。
找到该库文件在Linux的路径,复制到工程(新建个路径),并将路径添加进工程libraries即可。
- 确认路径
- 复制到工程路径下
- 添加libraries
-
- 自动重命名脚本执行
修改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" |
- 远程调试
- 目标机端gbdserver设置
- 开启root的ssh访问权限
- sudo nano /etc/ssh/sshd_config
- sshd_config文件中找到PermitRootLogin这一行。如果这一行已经存在,确保它的值设置为yes。如果这一行以#开头,则表示它被注释掉了,你需要取消注释(移除#)并设置其值为yes。
- 开启root的ssh访问权限
- 目标机端gbdserver设置
PermitRootLogin yes
-
-
-
- sudo systemctl restart ssh
- 安装gdbserver
-
-
apt-get install gdbserver
-
- 调试机端gdb设置
-
- 调试机端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文件附件如下:
-
- 开启调试
- 多合一工程使用
修改单片、cascade2、cascade4等工程多合一后,需要重新导入工程,编译、调试方法也有些变化。
- 将原CDE中的工程删除(右键delete不勾选其它),重新导入工程“tsmr_app”
- 编译:右键“build configuration”选择所需工程,例如原cascade2_lin工程则选“debug_2chip_lin”
- 首次编译后,出现对应debug文件,后续再次修改编译可右键—“build project”
- 调试:
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远程调试
- eclipseCDT
- 下载地址(20-09版本)
官网:2020-09 R | Eclipse Packages
-
- 安装
解压后直接运行eclipse.exe即可。
- CrossGccToolChain
ARM官方提供了各环境下的交叉编译工具链,下载地址如下:
版本 | 下载地址 |
新版本 大于11.2 | |
旧版本 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盘即可。
- 工程设置
-
- 导入工程
-
- 编译器修改
- 将工程的编译环境修改为Cross-GCC
- 修改ToolChain为交叉编译起器,并使用CDT内部的build工具。
- 设置交叉编译环境路径和前缀
- 编译
- 报错
如果出现类似以下报错,则是缺少一些linux系统的特定库文件。
找到该库文件在Linux的路径,复制到工程(新建个路径),并将路径添加进工程libraries即可。
- 确认路径
- 复制到工程路径下
- 添加libraries
-
- 自动重命名脚本执行
修改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" |
- 远程调试
- 目标机端gbdserver设置
- 开启root的ssh访问权限
- sudo nano /etc/ssh/sshd_config
- sshd_config文件中找到PermitRootLogin这一行。如果这一行已经存在,确保它的值设置为yes。如果这一行以#开头,则表示它被注释掉了,你需要取消注释(移除#)并设置其值为yes。
- 开启root的ssh访问权限
- 目标机端gbdserver设置
PermitRootLogin yes
-
-
-
- sudo systemctl restart ssh
- 安装gdbserver
-
-
apt-get install gdbserver
-
- 调试机端gdb设置
-
- 调试机端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文件附件如下:
-
- 开启调试
- 多合一工程使用
修改单片、cascade2、cascade4等工程多合一后,需要重新导入工程,编译、调试方法也有些变化。
- 将原CDE中的工程删除(右键delete不勾选其它),重新导入工程“tsmr_app”
- 编译:右键“build configuration”选择所需工程,例如原cascade2_lin工程则选“debug_2chip_lin”
- 首次编译后,出现对应debug文件,后续再次修改编译可右键—“build project”
- 调试:
linux环境下: 首次调试按顺序点击debug按钮1—2操作;非首次调试直接点击3启动debug。
进入debug configurations,选择application
链接可执行文件:可生成路径6。
cross环境下:需结合配置上一节“4、远程调试”内容+上述linux环境的操作。
如下两张图。