Lab2树莓派交叉编译(windows平台)

Windows环境下树莓派交叉编译指南
本文详细介绍了如何在Windows平台上使用cygwin和预编译的arm tool-chain进行树莓派交叉编译。通过该过程,可以利用Windows的高性能进行编译,避免在树莓派上直接编译导致的效率低下。教程涵盖了cygwin的安装、工具链的获取与配置,以及编译和测试Hello World程序的步骤。

何为交叉编译?

所谓交叉编译简单的说,就是在一个平台上编译出在另一个在平台能跑的可执行程序。比如,本文的情况是,在windows上编译出在树莓派上能跑的可执行程序。(其中,windows是运行在x86的cpu上,而树莓派是arm的cpu。)

树莓派上已经有gcc了,为什么还要用交叉编译这种方式呢?

因为,树莓派的运行速度是比较慢的,而我们的PC机运行速度比较快,如果编译都在树莓派上做,那么就只有慢慢等了。

教程目标:

在windows平台上,搭建出树莓派的交叉编译环境

教程器材及软件:

  1. 树莓派的板子。
  2. SD卡(已经有镜像刷入)。
  3. 电源线及USB充电器。
  4. cygwin。
  5. 有DHCP的网线。

步骤:

cygwin:

  1. 下载cygwin(http://www.cygwin.com/)。
  2. 安装cygwin,途中需要看看,稍作选择。(其中,源选择163的可能会快一些。)
  3. 其中要特别选择一下ssh,还有mintty,以便之后要用。其他就默认吧。当然,如果漏过了什么也可以重新打开这个程序,选择想要的,再安装一遍。
  4. 这样装完了可能会出现一个错误,叫pango1.0.sh exit code 1之类的,那么你需要进入到c:\cygwin\etc下面建一个文件夹叫pango,然后再执行一遍上面的过程,应该就没事了。(这就是个bug,pango他们已经在改了)这样装完了,其实默认的gcc等一系列的东西是没有,如果想要可以回去再选择再安装。

arm tool-chain:

  1. 到https://github.com/IanLinsdell/Raspberrypi去下载编译好的工具链。其实是可以在cygwin中编译出工具链的,但是,听同学说,他在linux上花了2个小时和4G+硬盘空间去编译,那还不如下一个现成的。
  2. 下载后,解开压缩,有两个选择一个是hardfp,另一个是softfp。(目前,我也不知道有什么区别。我用的是hardfp,之后试了一下浮点好像没有问题。)将你的选择解压缩后放到cygwin下面,形成这样的目录结构。c:\cygwin\opt\cross\x-tools\arm-unknown-linux-gnueabi。并在环境变量PATH中加入,c:\cygwin\opt\cross\x-tools\bin\

测试:

  1. 打开mintty,建一个hello.cpp,然后,写一个经典的helloworld,之后编译一下
    arm-unknown-linux-gnueabi-g++ hello.cpp
    如果,好运的话,没有什么错误。(我之前尝试其他编译出来的工具链,不断地出错。)
  2. 用sftp命令将a.out上传到树莓派上,然后用ssh登录后运行它。

后记:

在这过程中,不断地出错,不断地上网去查,也不知道参考了多少。不能像linux下一样,有比较多的教程,剩下的只是等待的时间。也发现了许多开源软件的bug和问题,令人十分烦恼,比如下面这个。

但不管怎么样,我还是得感谢开源,感谢为开源做出贡献的人,感谢那些在网上分享出自己的知识的人。

参考:

http://www.a2p.it/wordpress/tech-stuff/development/remote-debugging-raspberrypi/

备注:

此教程为浙江大学计算机学院嵌入式课程的实验二实验报告。


### 如何在树莓派上安装和配置JupyterLab #### 准备工作 确保拥有合适的硬件,包括任意一款树莓派(推荐树莓派3),但即使是早期仅有256MB内存的版本也能够胜任此任务[^4]。此外,还需要一张至少16GB容量的SD卡、Micro-USB电源适配器以及Ethernet或Wi-Fi连接方式。 #### 更新系统软件包列表并升级现有软件包 首先应当保持系统的最新状态: ```bash sudo apt-get update && sudo apt-get upgrade -y ``` #### 安装必要的依赖项 接着安装Python及其相关工具,这一步骤对于构建一个稳定可靠的开发环境至关重要: ```bash sudo apt install python3-pip python3-dev libffi-dev build-essential git curl cmake pkg-config libssl-dev -y ``` #### 创建虚拟环境 创建一个新的Python虚拟环境有助于隔离不同项目的依赖关系,从而减少冲突的可能性: ```bash python3 -m venv jupyter-env source jupyter-env/bin/activate ``` #### 利用`piwheels`加速安装过程 通过指定`piwheels`作为pip的一个额外索引源,可以显著加快安装速度: ```bash pip install wheel pip install --extra-index-url https://www.piwheels.org/simple jupyterlab ``` #### 启动JupyterLab服务 完成上述准备工作之后,可以通过下面命令启动JupyterLab: ```bash jupyter lab --no-browser --ip=0.0.0.0 ``` 此时应该能够在本地终端看到类似于`http://localhost:8888/?token=...`这样的URL链接信息。请注意保存好该页面显示的安全令牌(token),因为后续从其他设备访问时需要用到它。 #### 访问JupyterLab界面 为了让局域网内的其它计算机也能顺利访问到JupyterLab的服务端口,默认情况下监听的是所有可用接口(`--ip=0.0.0.0`)而非仅仅限于本机回环地址。因此只需知道树莓派的具体IP地址,在另一台联网PC上的浏览器中输入如下格式的网址即可进入管理后台:`http://<树莓派的实际IP>:8888`[^3]。建议采用Google Chrome浏览器以获得最佳浏览效果。 #### 设置开机自启功能 如果希望每次重启后自动加载JupyterLab,则可以在~/.profile文件末尾追加一行脚本来实现自动化部署目的: ```bash echo "jupyter lab &" >> ~/.profile ``` 这样当再次开启树莓派的时候就不必手动执行启动指令了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值