1.为什么STM32MP157无法直接运行C语言程序?
说白了就是你直接用PC端gcc编译的程序,在你的板卡端是运行不了的,你可以用arm-linux-gcc才能运行在板卡端。
2.下载并运行arm-linux-gcc
2.1下载arm-linux-gcc
点上面的下载链接下载4.4.3那个。
2.2解压与安装
2.2.1目录
记住了在根目录建,不然等下环境不好建立昂!!!
mkdir /acc
打开该目录
cd /acc
将压缩包导入到该目录
mv后面有个空格然后你拖进来然后再来个空格然后有个小小的点别忘了你的小点哦
mv <你把你的安装包拖过来自动生成><这有个空格>.
打开终端,使用命令进行解压缩可以用tab键补齐
tar zxvf arm-linux-gcc-4.4.3-20100728.tar.gz
2.2.2环境变量的配置
使用命令打开配置文件
sudo vi /etc/pofile
这个配置文件别瞎改,改错了你的虚拟机容易废了(苦逼的我就废了一次)
添加环境变量
在配置文件末尾添加命令(在那个fi下一行配置):
export PATH=$PATH:/acc/local/arm/4.3.3/bin
这个操作很重要很容易出故障,一定要按照这个配置
解释一下上面一个命令
export PATH=$PATH:<你的解压以后的路径一直写到bin>
搞完了以后别忘了:wq
具体操作可以看看下面这个视频,这是别人的但是非常好使
ubuntu18.04.4下载arm-linux-gcc,所有可能问题,嵌入式系统开发_哔哩哔哩_bilibili
然后重启你的虚拟机
2.3验证安装
采用以下命令验证安装
arm-linux-gcc -v
一般是会报错的
可能是上面的错
但是没关系
具体看上面那个视频就行。
安装两个插件就OK了如下:
apt-get install lib32ncurses5
apt-get install lib32z1
再试试验证安装应该就可以了
3.arm-linux-gcc的使用
看看下面这个链接
003_arm-linux-gcc使用_arm-linux-gcc怎么用-CSDN博客
但是不能直接用下面这个指令不然你把hello传到板卡上会报错会出现-sh的错误(我查了好像是库不足还是啥的)如果你们有办法可以放在评论区探讨
arm-linux-gcc -o hello hello.c
然后我这边给一个可以替代的
就是用静态链接的方法,用下面这个命令,多加一个静态库
arm-linux-gcc -static -o hello hello.c
然后再用我以前写的
这个章节的3.2就可以把hello传到板卡中了
然后通过STM32MP157就可以直接运行hello了
./hello
但是静态链接很占内存,所以有更好的办法就放在评论区以下