|
本帖最后由 sunsili 于 2022-1-13 00:13 编辑
看看这段代码运行效果吧
用vim写代码 shuixianshu.c文件
按i键编辑代码:
- #include <stdio.h>
- void main(void)
- {
- int hun, ten, ind, n;
-
- printf("Shuixianhuashu result is:");
- for(n=100; n<1000; n++)
- {
- hun = n/100;
- ten = (n%100)/10;
- ind = n%10;
- if(n == hun*hun*hun + ten*ten*ten + ind*ind*ind)
- {
- printf("%d ", n);
- }
- }
- printf("\n\r");
- }
复制代码 这是水仙花数代码, 水仙花数:等于各位数立方之和。详解请参考http://bbs.sunsili.com/thread-225327-1-1.html
写保存退出 按键ESC 写命令:wq
- gcc -o shuixianshu.o shuixianshu.c
- ./shuixianshu.o
- Shuixianhuashu result is:153 370 371 407
- arm-linux-gnueabi-gcc -o shuixianshu.arm shuixianshu.c
- ./shuixianshu.arm
- -bash: ./shuixianshu.arm: cannot execute binary file: Exec format error
复制代码
(无法运行, 因为我们的电脑是X86框架的,用arm-linux-gnueabi-gcc 编译出来的程序是不在X86平台运行的, 只能要ARM平台下运行, 要下载到开发板上运行, 用用arm-linux-gnueabi-gcc 在ARM开发板运行也为报错,我们后面会说)
怎么把编译好的程序放到开发板呢
1、启动开发板,我这里使用的RK3399开发板
2、连接网络,要与我们的开发电脑linux(一般是虚拟机) 我用的是win10 -wsl(不知道wsl的,请查看超简单!这样在Windows下安装Linux系统,操作更方便-电子技术单片机开发编程WEB开发IT运维-谷动谷力(sunsili.com))在同一局域网
3、查看网络配置:
ifconfig
获得开发板ip
4、开发电脑 输入命令:
sftp 应用名@开发板IP
例我的开发板用户名root IP 192.168.10.76
- sftp root@192.168.10.76 (如果用户权限不够,就用sudo sftp root@192.168.10.76)
复制代码
按提示输入密码
提示选项时输入yes
连接成功是这样的:
5、这样可以输入sftp命令了(查看sftp命令详解http://bbs.sunsili.com/thread-225314-1-1.html):
向开发板传文件:
6、按提示传入得到开发板路径,一般在当前用户下主目录,我们这里用的root登录的,那么传入开发板的路径就是/home/root
7、在开发板里运行:
到/home/root目录:
查看是否有 shuixianshu.arm
查看到是有shuixianshu.arm
运行:
提示:
- shuixianshu.arm no such file
复制代码
提示没找这个文件,这里与开发电脑不一样,问题还是不能执行,为什么呢?ARM架构不一样,我们用的RK3399是要arm-linux-gnueabinf-gcc:
- arm-linux-gnueabinf-gcc -o shuixianshu.o shuixianshu.c
复制代码
再重复上过操作, 在开发板运行:
终于看到与我PC运行一样效果了
- Shuixianhuashu result is:153 370 371 407
复制代码
还有一种方法:
传源码到开发板, 用开发板里gcc, 开发里安装的gcc, 就是arm-linux-gnueabinf-gcc,在开发板编译就是交叉编译了,我们很少这样用,编译有误,在开板里,只能用vi/vim不方便修改代码。
重复上述传shuixianshu.c到开发板,然后编译运行:
- gcc -o shuixianshu.o shuixianshu.c
- ./shuixianshu.o
- Shuixianhuashu result is:153 370 371 407
复制代码
使用与PC一样了,其实开发板就是一台linux电脑。
|
+10
|