ARM Linux 环境 c程序设计

网友投稿 596 2022-05-29

正所谓:工欲善其事必先利其器

开发环境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

int func(int n)

{int sum=0; for(i=0;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进行远程调试

ARM Linux 环境 c程序设计

修改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

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;

ARM Linux

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:优化 MySQL: 3 个简单的小调整
下一篇:NLTK-004:加工原料文本
相关文章