linux应用程序被杀死
我有一个带有嵌入式
Linux的“Seagate Central”NAS
$cat /etc/*release MontaVista Linux 6,(.dev-snapshot-20130726) 当我尝试在这个NAS上运行我自己的应用程序时,它将被“杀死” $cat /proc/cpuinfo Processor : ARMv6-compatible processor rev 4 (v6l) BogoMIPS : 279.34 Features : swp half thumb fastmult vfp edsp java CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xb02 CPU revision : 4 Hardware : Cavium Networks CNS3420 Validation Board Revision : 0000 Serial : 0000000000000000 我的工具链是 Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/arm-none-linux-gnueabi 我的编译开关是 -march=armv6k -mcpu=mpcore -mfloat-abi=softfp -mfpu=vfp 如何找出杀死我的应用程序的进程,或者我必须更改的设置? PS:我创建了一个简单的HelloWorld应用程序,它也无法运行! $ldd Hello $ not a dynamic executable readelf -a Hello => http://pastebin.com/kT9FvkjE readelf -a zip => http://pastebin.com/3V6kqA9b 更新1 我用硬浮动编写了一个新的二进制文件 Readelf output http://pastebin.com/a87bKksY 但没有成功;( 我想这实际上是一个“锁定”主题,它阻止我的应用程序执行.我如何找出杀死我的应用程序? 解决方法
使用这些编译开关:
-march=armv6k -Wl,-z,max-page-size=0x10000,common-page-size=0x10000,-Ttext-segment=0x10000 另见this link regarding the toolchain. 您可以针对其中一个内置二进制文件(例如/usr/bin/nano)运行readelf -a,以在程序头中的节标题和页面大小/对齐方式中查看正确的文本段偏移量.上面的编译器标志使自编译的程序与内置二进制文件的结构相匹配,并且已经过测试才能工作.似乎Seagate Central NAS使用的页面大小/偏移量为0x10000,而ARM gcc的默认值为0x8000. 编辑:我看到你已经运行了readelf.你的pastebin显示 HelloWorld:[ 1] .interp PROGBITS 00008134 000134 000013 00 A 0 0 1 zip:[ 1] .interp PROGBITS 00010134 000134 000013 00 A 0 0 1 值10134-134 = 10000(十六进制)生成正确的文本段链接器选项.进一步向下(LOAD …)是对齐说明符,HelloWorld为0x8000,内置zip为0x10000.根据我的经验,软浮动并没有造成问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 在Ubuntu上运行docker:挂载的主机卷不能从容器写
- LINUX学习:shell的编程结构体(函数、条件结构、循环结构)
- Linux--CentOS下载和安装
- LINUX学习:Too many open files 问题解决方法
- 在linux上的erlang shell中配置密钥
- linux – 在Ubuntu 8.04服务器上安装Python 2.6的最快方法是
- nginx源码编译以及源码编译过程中遇到的问题
- 如何将数据传递给在Linux中调用scanf()和read()的程序
- 把玩Alpine linux(二):APK包管理器
- 有没有办法获取电池信息(状态,插入等)而无需在Linux上读取p