ARM Linux 环境 c程序设计

举报
泽宇-Li 发表于 2021/06/23 09:55:51 2021/06/23
【摘要】 正所谓:工欲善其事必先利其器   开发环境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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。