arm-linux 交叉编译后程序,ARM交叉编译下,应用程序实践
ARM交叉编译下,应用程序实践
一。首先准备一个小程序
hello.c
代码如下:
#include
int main(void) {
printf("hello,world\n"); //向终端打印字符输出
}
二。然后编写makefile如下:
CROSS=opt/host/armvl/bin/arm-linux- #这个是定义的宏,指向具体得
#交叉编译工具路径
all: hello
hello:
$(CROSS)gcc -o hello hello.c #编译ELF可执行文件
clean:
@rm -vf hello *.o *~ #输入make clearn时删除编译文件
#尤其注意这里得交叉编译工具一定要与烧写内核得交叉编译工具一致
#否则产生得文件armlinux内核不能执行
三。在终端输入 : make 生成可执行文件hello
四。将hello,down到目标板得文件系统中
这里有三种方法:
1.解压缩ramdisk.image.gz,把自己写得hello文件复制进去,重新打包,并烧录到目标板上,方法见我的另一篇博文。这个方法优点是彻底的烧录上去,掉电不会丢掉自己的程序,而其他方法都是将应用程序放在ram中,重启就没有了。缺点很明显,太复杂费时,而且不利于延长flash的寿命,只需要再彻底写好应用程序后使用,调试不推荐。
2.使用USB。
首先在PC端输入:
#mount -t vfat /dev/sdb1 /mnt/ 挂载U盘到mnt文件夹,sdb1根据实际情况修改
#cp -av /hello /mnt/ 把自己写的hello文件夹复制到u盘
#cp / 这步确保路径不在u盘,卸载时不会busy
#umount /mnt 卸载u盘
超级终端上:
#mount -t vfat /dev/sda1 /mnt/ 同样挂u盘
#cp -av /mnt/hello / 把U盘中自己写的文件复制到根目录
cd /mnt/hello
./hello 执行自己的文件
#umount /mnt
用U盘调试前提时目标板上的linux支持USBhost,过程简单但是比较麻烦。
2.使用NFS
首先配置NFS服务,见另一篇博文,关键一定要关掉防火墙,在/etc/exports文件中加入允许访问的路径。
(1)关闭防火墙:
#setup //进入系统服务,取消iptables和ipchains,选上nfs
#/etc/rc.d/init.d/iptables stop
#vim /etc/exports
在vim中添加 /nfs 192.168.2.120(rw,insecure,no_root_squash,no_all_squash),含义是允许下位机读写PC的/nfs文件夹
(2)连好网线,PC端,将hello复制到共享文件夹nfs:
(3)超级终端输入:
#mount -t vfat -o onlock 192.168.2.126:/nfs /mnt 挂载PC的nfs文件夹到目标板mnt中
#cd /mnt/hello 远程浏览自己的程序
#./hello 远程执行
这个方法前提是下位机已经打通了网口,并且支持nfs服务,推荐用这种方法调试
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
arm-linux 交叉编译后程序,ARM交叉编译下,应用程序实践相关推荐
- HMI-66-【MeterDisplay for Arm Linux】液晶仪表Arm Linxu迁移
HMI-66-[MeterDisplay for Arm Linux]液晶仪表Arm Linxu迁移 文章目录 HMI-66-[MeterDisplay for Arm Linux]液晶仪表Arm L ...
- arm linux 2.6下载,ARM+LINUX(montavista2.6.x)环境下SIMCOM5218使用
ARM+LINUX(montavista2.6.x)环境下 SIMCOM5218使用 http://blog.sina.com.cn/s/blog_4c796ed20100hpxg.html 一. 系 ...
- arm linux 工控,基于ARM和Linux通用工控平台设计 - ARM - 电子发烧友网
交叉编译 交叉编译就是在一个平台上生成另一个平台上的可执行代码.所谓平台,实际上包含两个概念:体系结构及操作系统.根据上述建立的开发环境,目标平台是基于ARM体系结构的运行嵌入式Linux操作系统,而 ...
- arm linux 指纹识别,基于ARM—Linux指纹识别系统的设计.pdf
基于ARM-Linux指纹识别系统的设计.pdf 第 20卷 第 l5期 电子设计工程 2012年 8月 Vo1.20 No.15 ElectronicDesienEn~inee Aug.2012 基 ...
- arm linux 进程调度,详解ARM Linux 2.4.x进程调度
Linux2.4.x是一个基于非抢占式的多任务的分时操作系统,虽然在用户进程的调度上采用抢占式策略,但是而在内核还是采用了轮转的方法,如果有个内核态的线程恶性占有CPU不释放,那系统无法从中解脱出来, ...
- arm linux 进程页表,linux-kernel – ARM Linux页表项格式 – 未使用的位?
我需要使用两个PTE位来存储我的内核模块在拦截页面保护错误时将使用的自定义"状态"值. 我正在开发Galaxy Nexus,它有一个ARM Cortex A9(我相信ARM v7) ...
- 通过修改程序解决win7下应用程序兼容性助手弹出
在win7和vista下,有一个系统兼容性助手功能,利用VS2008开发的程序在运行时,总是弹出应用程序兼容性助手提示框,非常烦人,事实上我们的程序兼容性是没有问题的,只不过是在程序中没有指定应用程序 ...
- 嵌入式linux webkit,嵌入式平台arm linux 之qt 4.5交叉编译到webkit时出错解决方法
错误输出为 libQtWebKit.so: undefined reference to `trunc' libQtWebKit.so: undefined reference to `lroundf ...
- arm linux运行安卓app,Android x86 下运行纯ARM版APP
Android x86 默认不带houdini,运行纯ARM版会提示: 很抱歉,"xxxx"已停止运行 设置->应用兼容性->打开 终端模拟器 $ su # enabl ...
- windows arm linux,Windows服务器搭载ARM,人生大赢家不是微软而是Linux
微软现在运行了一大批基于ARM处理器的Windows服务器.显然,这些ARM芯片表现良好,微软可能会尝试转换整个类别的工作负载.世界的八卦重点全是--基于ARM的Windows服务器是否会出现在本地数 ...
最新文章
- 关于 linux io_uring 性能测试 及其 实现原理的一些探索
- 批量下载的实现及java.lang.IllegalStateException异常
- [CES 2018] 联想公布全球首款Daydream一体机,第二季度或将发售
- HTTPS 接入优化建议
- python安装pyopenssl
- 大叔也说Xamarin~Android篇~Activity之间传递数组
- InvokeHelper:多线程修改主界面控件属性并调用其中方法
- 如何用Python发送通知到微信?
- 装修相片(第50天拍,全部,25号更新)
- iphone以旧换新活动_一年当中什么时候买手机最便宜?|手机|优惠券|购物节|苹果手机|iphone...
- vmware克隆主机
- 随想录(cloud 网络库)
- python 局域网服务器_Python一秒搭建ftp服务器,帮助你在局域网共享文件
- RTSP丢包处理原理及doubango代码改进
- 系统集成项目管理工程师历年案例考试汇总
- iOS依赖注入框架系列(二):设置Typhoon
- Solr实现全文检索
- 刷脸支付就是会员为大商户管理与运营提供帮助
- WPS 宣布将推出“WPS AI”
- 动物识别系统的规则库