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.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;
- 点赞
- 收藏
- 关注作者
评论(0)