ARM Linux 环境 c程序设计
【摘要】 正所谓:工欲善其事必先利其器 开发环境ip地址配置如下:windows工作主机地址为:192.168.1.101 linux宿主机 eth0 ip地址为192.168.1.102 tap0 ip地址 10.0.0.1 arm虚拟机ip地址为 10.0.0.101:编辑源码在windows主机上编辑以下的c语言源代码#include <stdio.h>int func(int n){i...
正所谓:工欲善其事必先利其器
开发环境ip地址配置如下:windows工作主机地址为:192.168.1.101 linux宿主机 eth0 ip地址为192.168.1.102 tap0 ip地址 10.0.0.1 arm虚拟机ip地址为 10.0.0.10
1:编辑源码
在windows主机上编辑以下的c语言源代码
#include <stdio.h>
int func(int n)
{int sum=0; for(i=0;i<n;i++)
{sum+=i;}
return sum;
}
main()
{int i;
long result=0;
for(i=1;i<=100;i++)
{
result+=i;}
printf("result[1-100]=%d\n",result);
printf("result[1-250]=%d\n",func(250));
保存文件为test.c通过Samba服务将服务文件复制到linux宿主机中 设置/opt/work目录为共享目录 编辑/etc/samba/smb.conf配置文件 在最后加入内容
{root}
path=/opt/work
valid users=root
writable=yes
添加root用户
smbpasswd - aroot
New Smb password
Retype new SMB password
修改好配置文件重启服务 在windows工作主机访问共享目录 可以设置映射网络驱动器 这样就可以像访问本地磁盘一样访问共享目录了
2:交叉编译
源程序 test.c已经编译完成并赋值到了linux宿主机的/opt/work中 下面进行交叉编译
# arm-linux-gcc-g test.c- o test
在编译之前需要检查gcc版本
3:下载程序到arm虚拟机中去
交叉编译完成后需要将test程序赋值到arm虚拟中去 打开arm虚拟机 使用ftp登录到arm虚拟机上
#fp 10.0.0.10
Connected to 10.0.0.10
220 Friendly Arm ftp server verstion 6.4/OpenBsd/linux-ftpd-0.17 ready
name(10.0.010:root):plg
331Passwird required for plg
password:
230 User plg logged in.
Remote system type is UNix
using binary mode to transfer files
fip>
登录用户名 密码为plg 使用put命令上传文件
ftp>put
(local-file)/opt/work/test
(remote-file)test
local:/opt/work/test remote:test
200 PORT command successful
150 opening binary mode data connection for test 226transfer complete 9250 bytes sent in 0.00 secs(19057.4kb/s)
上传的文件在arm虚拟机的/home/plg目录下
使用gdb进行远程调试
修改test程序属性
{root@friendlyarm/opt}#chmod a+ x test
在arm虚拟机中运行 gdbserver 设置调试端口9000
# ./gdvsever 10.0.01:9000 test
Process test created;pid=792
listening on port 9000
在linux宿主机上运行gdb 链接在arm虚拟机中的gdbserver进行远程调试
#./arm-linux-gdb/opt/work/test
GNU gdb (GDB)7.2
license gplv3+:gnu gpl version 3 or later<http://gnu。org/licenses/gpl。html>
this is free softwate :you are free to change and redistribute it......................warning unable to find dynameic linker break
point function GDB will be unable to debug shared library initalizers
and track explicitly loaded dynameic code.
(gdb)1
cannot access memory at address 0x0
6{sum+=i;
} return sum;}
12main()
13{
14int i;
15int result=0;
(gdb)
在arm虚拟机中将显示连接成功
#./gdbserver 10.0.0.1;9000 test
Process test created pid=792
listening on port 9000
remote debugging from host 10.0.0.1;
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)