电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
STM32MP157-Mini开发板评测 交叉编译环境
分 享
扫描二维码分享
STM32MP157-Mini开发板评测 交叉编译环境
STM32
linux
天启raf
关注
发布时间: 2022-04-02
丨
阅读: 692
> 之前申请了STM32MP157 Mini试用的开发板,到手发现资料太多搁置了一段时间,现在拿出来重新捣鼓。 ## 交叉编译环境搭建 这里我使用的Linux环境为WSL2的Ubuntu 18.04,具体安装过程就不详细讲了,网上教程也很多。简单列举WSL的几个优点: 1. WSL运行Linux比虚拟机更加流畅 2. WSL可以直接读写Windows下的文件,文件传输更方便 3. 与Windows的剪贴板互通 安装交叉编译工具的过程可以参考正点原子的官方教程。 * 首先在ubuntu中创建目录 ```bash sudo mkdir /usr/local/arm ``` * 将交叉编译器复制到该目录中。我这里的交叉编译器位于Windows下的`D:\My_Documents\Embeded\STM32\【正点原子】STM32MP157-mini开发板(A盘)-基础资料\05、开发工具\01、交叉编译器\gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz`,在WSL中D盘挂载路径为`/mnt/d`,可以直接访问。 ```bash sudo cp /mnt/d/My_Documents/Embeded/STM32/【正点原子】STM32MP157-mini开发板(A盘)-基础资料/05、开发工具/01、交叉编译器/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz /usr/local/arm/ -f ``` * 复制完成后进入该目录并解压缩 ```bash cd /usr/local/arm/ sudo tar -vxf gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz ``` * 修改环境变量 ```bash sudo vi /etc/profile ``` * 按`i`,在文件末尾添加`export PATH=$PATH:/usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin`,按`esc`后,`:wq!`保存并退出 * 使环境变量生效 ```bash source /etc/profile ``` * 为了避免出错,安装相关库(实测没有安装也没有出现问题,不过还是建议安装) ```bash sudo apt-get update sudo apt-get install lsb-core lib32stdc++6 ``` * 查看交叉编译器版本 ```bash arm-none-linux-gnueabihf-gcc -v ``` 显示以下结果则表示成功 ![查看交叉编译器版本](https://cf04.ickimg.com/bbsimages/202203/488c445e4c5cd4c8607b5e1169ea1aec.png "查看交叉编译器版本") ## 编译代码并上传 * 这里用一个简单的例子来演示,新建`helloworld.c`,输入以下代码 ```c #include
#include
#include
//毫秒级延时 void sleep_ms(int ms) { struct timeval delay; delay.tv_sec = 0; delay.tv_usec = ms * 1000; select(0, NULL, NULL, NULL, &delay); } void main() { sleep_ms(3000); printf("hello world!\r\n"); } ``` * 如果已经配置好交叉编译工具,这里可以直接编译了 ```bash arm-none-linux-gnueabihf-gcc helloworld.c -o helloworld ``` * 如果没有问题的话,会在目录下生成可执行二进制文件`helloworld`。当然这个二进制文件是为ARM架构生成的,当前的Ubuntu执行会出现以下错误,不必担心 ``` -bash: ./helloworld: cannot execute binary file: Ex
ec format error ``` * 现在使用`scp`命令来讲生成的可执行文件上传到开发板中,其中`192.168.1.9`是开发板的IP地址。**这里我用的是WSL1,因此Ubuntu可以共享宿主机的IP,所以Ubuntu与开发板处于同一局域网下。**第一次执行时会提示是否信任该主机,输入`yes`即可。 ```bash scp ./helloworld root@192.168.1.9:/home/root/ ``` ![上传可执行文件](https://cf04.ickimg.com/bbsimages/202203/ef67dce6b954f8141f1dad707c115fe2.png "上传可执行文件") * 现在回到开发板上,进入`/home/root`查看是否有可执行文件,有的话可以直接执行查看效果。 ```bash cd ~ ls ./helloworld ``` ![可执行文件上传成功](https://cf04.ickimg.com/bbsimages/202203/f0b0cf6c27a8c84e2c03cbd5761b1bda.png "可执行文件上传成功") * 成功运行的话是会等待3秒钟之后输出`hello world!`
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
天启raf
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交