ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux – 用于32位LSB MIPS MIPS32架构的编译器

2019-08-16 23:50:33  阅读:384  来源: 互联网

标签:c-3 c linux compiler cross-compilation


我有一个我正在尝试的电视机顶盒:

enter image description here

我通过板上的串口建立了一个串口控制台连接.我正在尝试编译一个简单的C可执行文件以在此设备上运行,但我似乎无法找到如何执行此操作.

我尝试过CodeSourcery,cross-compiler-mipsel和uClibc,但它们没有用,后来用它的配置选项构建起来非常困惑.

以下是我能够收集的有关系统的数据:

示例文件架构:

apps-startup: ELF 32-bit LSB  executable, MIPS, MIPS32 rel2 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.12, stripped

系统信息:

tangox[/]# uname -a
Linux tangox 2.6.22.19-40-sigma #3230 PREEMPT Thu Oct 3 15:54:23 IST 2013 mips GNU/Linux

cpuinfo中:

tangox[/]# cat /proc/cpuinfo 
system type             : Sigma Designs TangoX
processor               : 0
cpu model               : MIPS 24K V7.12  FPU V0.0
Initial BogoMIPS                : 332.59
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : yes
hardware watchpoint     : yes
ASEs implemented        : mips16
shadow register sets    : 1
VCED exceptions         : not available
VCEI exceptions         : not available

SMP8XXX Chip ID         : 8653
SMP8XXX Rev ID          : 2
System bus frequency    : 333000000 Hz
CPU frequency           : 499500000 Hz
DSP frequency           : 333000000 Hz

dmesg的:

tangox[/]# dmesg
Linux version 2.6.22.19-40-sigma (buildmgr@hulk) (gcc version 4.3.2 (Sourcery G++ Lite 4.3-51) ) #3230 PREEMPT Thu Oct 3 15:54:23 IST 2013
Mixed DRAM usage enabled.
Configured for SMP865x, detected SMP8653 (revision ES2).
Detected CPU/System/DSP Frequencies: 499.50/333.00/333.00MHz
SMP86xx Enabled Devices under Linux/XENV 0x9f3fbff4 = 0x003303f8
....

文件和目录:

tangox[/]# ls
apps@             images/           mrua_SMP8654F/    sysfs/
apps-peer/        init*             mruafw/           system@
bin/              initial_settings/ opt/              tmp/
cpgui/            lib/              probe/            upgrade/
data/             linuxrc@          proc/             usr/
dcchd_SMP8652/    logd/             rfs/              var/
dev/              lost+found/       root/             vnms/
etc/              media@            sbin/             webkit/
home/             mnt/              sys/

tangox[/]# find . -type f -name *.c
tangox[/]# find . -type f -name *.h
tangox[/]# find . -type f -name *.cpp
tangox[/]# find . -type f -name *.hpp
tangox[/]# find . -type f -name *.so
./webkit/lib/libcplibutils.so
./webkit/lib/libbrowserutils.so
./webkit/lib/plugins/npswitch.so
./webkit/lib/plugins/npplayer.so
./dcchd_SMP8652/directfb/lib/libdirectfb-smp86xx.so
./dcchd_SMP8652/dcchd/lib/libdcchd_dtv.so
./dcchd_SMP8652/dcchd/lib/librmcdda.so
./dcchd_SMP8652/dcchd/lib/libdcchd_acap.so
./dcchd_SMP8652/dcchd/lib/librmdvdfs.so
./dcchd_SMP8652/dcchd/lib/librmdvdfsapi.so
./dcchd_SMP8652/dcchd/lib/libdcchd_core.so
./dcchd_SMP8652/dcchd/lib/librmdvdvideoapi.so
./dcchd_SMP8652/dcchd/lib/libdcchd_tuner.so
./dcchd_SMP8652/dcchd/lib/librmvcdnavapi.so
./dcchd_SMP8652/dcchd/lib/librmpacketcommand.so
./dcchd_SMP8652/dcchd/lib/librmdisc.so
./dcchd_SMP8652/dcchd/lib/libdcchd_cap.so
./dcchd_SMP8652/dcchd/lib/libdcchd_mcast.so
./dcchd_SMP8652/dcchd/lib/libdcchd_dvd.so
./dcchd_SMP8652/dcchd/lib/librmdvdvideonav.so
./dcchd_SMP8652/dcchd/lib/librmcddanavapi.so
./dcchd_SMP8652/dcchd/lib/libdcchd_dvdvr.so
./dcchd_SMP8652/dcchd/lib/librmvcdnav.so
./dcchd_SMP8652/dcchd/lib/libdcchd_lpb.so
./dcchd_SMP8652/dcchd/lib/libdcchd.so
./mrua_SMP8654F/lib/libndsp.so
./mrua_SMP8654F/lib/libruai2c.so
./mrua_SMP8654F/lib/librmmkvdemux.so
./mrua_SMP8654F/lib/libindex.so
./mrua_SMP8654F/lib/librmdtcpapi.so
./mrua_SMP8654F/lib/librmmp4core.so
./mrua_SMP8654F/lib/librmdrm.so
./mrua_SMP8654F/lib/libruahdmi.so
./mrua_SMP8654F/lib/librmtextsubs.so
./mrua_SMP8654F/lib/libaudiooutports.so
./mrua_SMP8654F/lib/librmcore.so
./mrua_SMP8654F/lib/librmasfdemuxcore.so
./mrua_SMP8654F/lib/librmi2c.so
./mrua_SMP8654F/lib/librmmonitoring.so
./mrua_SMP8654F/lib/librmmpeg4framework.so
./mrua_SMP8654F/lib/librmmm_g.so
./mrua_SMP8654F/lib/libvp6decoder.so
./mrua_SMP8654F/lib/librmhsi.so
./mrua_SMP8654F/lib/librmcpputils.so
./mrua_SMP8654F/lib/librua.so
./mrua_SMP8654F/lib/librmmpegsystemindex.so
./mrua_SMP8654F/lib/libdcc.so
./mrua_SMP8654F/lib/librmwmaprodecodercore.so
./mrua_SMP8654F/lib/librmflv.so
./mrua_SMP8654F/lib/librmzlib.so
./mrua_SMP8654F/lib/librmmm_t.so
./mrua_SMP8654F/lib/librmcapture.so
./mrua_SMP8654F/lib/libgbus.so
./mrua_SMP8654F/lib/librmriff.so
./mrua_SMP8654F/lib/libllad.so
./mrua_SMP8654F/lib/librmdetector3api.so
./mrua_SMP8654F/lib/libdisplayoutports.so
./mrua_SMP8654F/lib/librmcdfs_t.so
./mrua_SMP8654F/lib/librmlibplay_t.so
./mrua_SMP8654F/lib/librmstreamingprotocols.so
./mrua_SMP8654F/lib/librmdetectorapi.so
./mrua_SMP8654F/lib/librmmpegdemux.so
./mrua_SMP8654F/lib/librmcprminterface.so
./mrua_SMP8654F/lib/librmdetector3.so
./mrua_SMP8654F/lib/librmhdmi.so
./mrua_SMP8654F/lib/libsh263decoder.so
./mrua_SMP8654F/lib/librmwmdrmstub.so
./mrua_SMP8654F/lib/librmmp4api.so
./mrua_SMP8654F/lib/librmwmaprodecoder.so
./mrua_SMP8654F/lib/librmcurl.so
./mrua_SMP8654F/lib/librmedid.so
./mrua_SMP8654F/lib/librmdescriptordecoder.so
./mrua_SMP8654F/lib/librmpthreadw.so
./mrua_SMP8654F/lib/librmasfdemux.so
./mrua_SMP8654F/lib/librmavicore.so
./mrua_SMP8654F/lib/librmvdemux.so
./mrua_SMP8654F/lib/librmsubidx.so
./mrua_SMP8654F/lib/librmvideoout.so
./mrua_SMP8654F/lib/librmrtk86.so
./mrua_SMP8654F/lib/librmcec.so
./mrua_SMP8654F/lib/librmmm.so
./mrua_SMP8654F/lib/librmsoftmixer.so
./mrua_SMP8654F/lib/librmdvbsubs.so
./mrua_SMP8654F/lib/librmcpputils_t.so
./mrua_SMP8654F/lib/librmsha1.so
./mrua_SMP8654F/lib/librmppf.so
./mrua_SMP8654F/lib/librmfp_t.so
./mrua_SMP8654F/lib/librmchannel.so
./mrua_SMP8654F/lib/libruahsi.so
./mrua_SMP8654F/lib/librmhttp.so
./mrua_SMP8654F/lib/librmcdfs.so
./mrua_SMP8654F/lib/librmmp4.so
./mrua_SMP8654F/lib/libsamples_t.so
./mrua_SMP8654F/lib/librmfontrender.so
./mrua_SMP8654F/lib/librmdisplay.so
./mrua_SMP8654F/lib/librmscc.so
./mrua_SMP8654F/lib/librmcw.so
./mrua_SMP8654F/lib/librmmpegsystemindexcreator.so
./mrua_SMP8654F/lib/librmcssinterface.so
./mrua_SMP8654F/lib/librmwmdrmndstub.so
./mrua_SMP8654F/lib/librmsofttxt.so
./data/myapps/tvstreamer/lib/libmpr.so
./data/myapps/tvstreamer/lib/libpcre.so
./data/myapps/tvstreamer/lib/libvuxmlgen.so
./data/myapps/tvstreamer/lib/libappweb.so
./data/myapps/tvstreamer/lib/modules/mod_vuxml.so
./lib/libnss_compat-2.8.so
./lib/libthread_db-1.0.so
./lib/libtinyxml.so
./lib/libIStagecraft.so
./lib/libnss_nis-2.8.so
./lib/ld-2.8.so
./lib/libIURLOps.so
./lib/libnss_files-2.8.so
./lib/libpcprofile.so
./lib/libIStreamPlayer.so
./lib/libIFL31NativeSoundOutput.so
./lib/libIXMLReaderLib.so
./lib/libSegFault.so
./lib/libresolv-2.8.so
./lib/libIEDKExtensions.so
./lib/libm-2.8.so
./lib/libarchop_74k.so
./lib/libIAEKernel.so
./lib/libsqlite.so
./lib/libutil-2.8.so
./lib/libtomcrypt.so
./lib/libIShell.so
./lib/libIVideoDecoder.so
./lib/libnss_nisplus-2.8.so
./lib/libIFileSystem.so
./lib/libIAudioDecoder.so
./lib/libcrypt-2.8.so
./lib/libIImageDecoder.so
./lib/libnss_hesiod-2.8.so
./lib/libISocket.so
./lib/libIStream.so
./lib/libBrokenLocale-2.8.so
./lib/libIFlashLib.so
./lib/libIIO.so
./lib/librt-2.8.so
./lib/libViewRightWebClient.so
./lib/libanl-2.8.so
./lib/libnss_dns-2.8.so
./lib/libIGraphicsDriver.so
./lib/libIJSONParserLib.so
./lib/libarchop_24k.so
./lib/libIProcess.so
./lib/libnsl-2.8.so
./lib/libc-2.8.so
./lib/libcidn-2.8.so
./lib/libpthread-2.8.so
./lib/libmemusage.so
./lib/libdl-2.8.so

没有内核或库头,但只有静态库.如何创建与此板兼容的二进制文件?

解决方法:

当然没有人会在嵌入式系统上留下任何源代码,因为这是不必要的.像您这样的嵌入式系统通常只有很小的空间来存储固件.

你看它包含glibc.在/ lib版本命名-2.8.so中存在共享对象可以看到它.你需要glibc兼容的工具链,它包含glibc 2.8或更早版本来编译这个系统的二进制文件.

或者您可以放弃使用glibc构建的想法,并将您的可执行文件与uClibc工具链静态链接.使用-static命令行参数.

使用musl libc构建更加容易,并且已经有了工具链.你只需将一个libc.so放入/ lib,动态链接符符号链接到它和你的二进制文件.

我希望应用程序启动来自您的主板,您已经知道它运行的是什么字节顺序.

并且您没有提到您对简单C可执行文件的要求.也许它需要您可能需要构建的其他库.

标签:c-3,c,linux,compiler,cross-compilation
来源: https://codeday.me/bug/20190816/1672382.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有