导航:首页 > 源码编译 > 麒麟x86编译问题

麒麟x86编译问题

发布时间:2022-06-09 05:30:04

㈠ x86的应用程序内存访问时是编译时固定一个地址还是运行时根据状况再计算(我是指物理内存地址),谢谢。

编译时给定的是相对地址,运行时根据内存的实际情况给定基址。[给定基址就是系统为正在运行的程序分配内存]
放栈上的变量啊,堆里的动态内存啊都是每次运行有可能放在不同的地方。
但是,一些运行环境数据(库函数)是会实现加载到指定内存的(这个是放在指定内存的)

——————————————————————

还有不要把虚拟内存和上面的混淆了,MMU是实现虚拟地址————>物理地址的转换
这个就算硬件不支持虚拟内存,程序数据每次运行都很可能放在不同的内存中

㈡ 为什么x86和arm的架构不同,但是都能装linux呢,他们的编译时如何实现的。

rm架构和x86架构区别:

一、性能:

X86结构的电脑无论如何都比ARM结构的系统在性能方面要快得多、强得多。X86的CPU随便就是1G以上、双核、四核大行其道,通常使用45nm(甚至更高级)制程的工艺进行生产;

而ARM方面:CPU通常是几百兆,最近才出现1G左右的CPU,制程通常使用不到65nm制程的工艺,可以说在性能和生产工艺方面ARM根本不是X86结构系统的对手。

但ARM的优势不在于性能强大而在于效率,ARM采用RISC流水线指令集,在完成综合性工作方面根本就处于劣势,而在一些任务相对固定的应用场合其优势就能发挥得淋漓尽致。

二、扩展能力:

X86结构的电脑采用“桥”的方式与扩展设备(如:硬盘、内存等)进行连接,而且x86结构的电脑出现了近30年,其配套扩展的设备种类多、价格也比较便宜,所以x86结构的电脑能很容易进行性能扩展,如增加内存、硬盘等。

ARM结构的电脑是通过专用的数据接口使CPU与数据存储设备进行连接,所以ARM的存储、内存等性能扩展难以进行(一般在产品设计时已经定好其内存及数据存储的容量),所以采用ARM结构的系统,一般不考虑扩展。基本奉行“够用就好”的原则。

三实现编译:

因为linux是系统,他支持现在大多数的结构体系。而要使他移植到相应的不同的硬件平台上时,需要对内核源码进行相对应的交叉编译处理,然后才能进行烧写运行,因为都有驱动只要那个系统有对应平台的驱动就可以。

(2)麒麟x86编译问题扩展阅读:

Linux常用命令

1、pwd命令该命令的英文解释为print working directory(打印工作目录)。

2、输入pwd命令,Linux会输出当前目录。

3、cd命令cd命令用来改变所在目录。

4、cd / 转到根目录中

5、cd ~ 转到/home/user用户目录下

6、cd /usr 转到根目录下的usr目录中-------------绝对路径

7、cd test 转到当前目录下的test子目录中-------相对路径

8、cat命令可以用来合并文件,也可以用来在屏幕上显示整个文件的内容。

9、cat snow.txt 该命令显示文件snow.txt的内容,ctrl+D退出cat。

㈢ vs2005 anycpu更改为x86后,插件编译不通过咋回事

有可能代码中的预编译的代码
即#define...
#if
之类的

㈣ 大家编译一个x86的Linux内核需要多长时间

make
时加参数
-jX
X
是你的
CPU
核心数量
+1

可以加快你的编译速度。
我的本本
T5450
编译需要
10
分钟。我的内核是针对机器剪裁了的。不剪裁的全功能内核貌似我就需要
30
分钟了。

㈤ x86 平台编译的二进制包是否都不能运行在树莓派中

firmware:树莓派的交叉编译好的二进制内核、模块、库、bootloader
linux:内核源码
tools:编译内核和其他源码所需的工具——交叉编译器等
我们只需要以上三个文件即可,下面的工程可以了解一下

documentation:树莓派离线帮助文档,教你如何使用、部署树莓派(树莓派官方使用教程)
userland:arm端用户空间的一些应用库的源码——vc视频硬浮点、EGL、mmal、openVG等
hats:Hardware Attached on Top,树莓派 B+型板子的扩展板资料
maynard:一个gtk写成的桌面环境
scratch:一个简易、可视化编程环境
noobs:一个树莓派镜像管理工具,他可以让你在一个树莓派上部署多个镜像
weston:一个应用程序
target_fs:树莓派最小文件系统,使用busybox制作
quake3:雷神之锤3有线开发源码firmwareb
2)下载方法:
a、网页直接下载:

点到所需要下载的工程,左上角选版本,右方有一个download ZIP按钮可直接下载(笔者下载完成后,在linux中解压提示出错,windows又非常慢切内核建议不要在windows环境解压,所以笔者不建议使用这种办法)

b、使用git下载
$ mkdir raspeberrypi_src
$ cd raspberrypi_src
$ git clone git://github.com/raspberrypi/firmware.git
$ git clone git://github.com/raspberrypi/linux.git
$ git clone git://github.com/raspberrypi/tools.git

会得到三个文件夹
firmware linux tools

2、编译、提取内核及其模块

1)获得内核配置文件
在运行的树莓派中运行:
$ls /proc/
可看到一个叫config.gz的文件,他是当前的树莓派配置选项记录文件,我们将他拷出,放入我们的内核源码目录树下

$cp /proc/config /home/pi
我们这里使用前面交过的samba拷出并拷入内核源码目录下,不熟悉的人可参考前面文章

在linux内核源码下执行:
$zcat config.gz > .config

2)配置、编译内核
a、修改内核源码makefile ARCH类型和编译器路径
$vi Makefile +195
找到以上类似代码,改为如图所示

b、查看、修改配置选项
$make menuconfig
可出现以下界面

如果不做修改,直接选中exit即可(注意使用键盘操作)

c、编译内核镜像
$make
在arch/arm/boot目录下可以看到一个叫zImage的文件,就是我们新的内核

但是树莓派需要另外一种格式的镜像,需要进行处理一下,执行以下命令
$cd tools/mkimage

$./imagetool-uncompressed.py ../../linux/arch/arm/boot/zImage
即可在当前文件夹下看到一个叫:kernel.img的文件,就是我们需要的新内核了

d、提取moles
上一步其实不但编译出来了内核的源码,一些模块文件也编译出来了,这里我们提取一下
$cd raspberrypi_src
$mkdir moles
$cd linux
$ make moles_install INSTALL_MOD_PATH=../moles

即可在moles得到我们需要的模块文件

2、升级RPi的kernel、Firmware、lib
将SD卡拔下插在电脑上(可使用读卡器)
1)升级内核
将新编好的内核拷入SD卡,改名为:kernel_new.img
打开boot目录下
找到config.txt文件,加入:kernel=kernel_new.img这一行

2)升级boot
将firmware/boot/目录下 以下文件拷入SD卡boot目录:fbootcode.bin fixup.dat fixup_cd.dat start.elf

3)更新vc库及内核moles
将第3步d步中编译出来的moles/lib/moles拷入树莓派文件系统/lib下

㈥ 求高手解答:linux系统编译问题

configure是每个源码包里自带的配置脚本,它会自动检查你的系统是否满足编译这个软件所需要的条件(比如,编译器是否安装,用到的头文件是否有,等等),并进行一些相关配置。
一般来说 ./configure后面带的参数主要是用来设置编译和安装这个软件时的一些相关参数,如果你不在 ./configure后面提供,那么编译、安装的时候就使用软件默认的设置。
最常见的参数就是 --prefix,指定安装软件的目录 (如果不指定,应该是默认为 /usr/local)。另外还有一些比方设置库路径,文档安装路径等参数 (这些参数一般各个软件都支持),还有一些是软件特有的配置参数,比如启用或者禁用某个特殊的功能等。具体每个软件的configure脚本支持哪些参数,可以用
./configure --help 的方法来查看。

第二个问题,./configure出错,一般来说就是你的系统不满足这个软件安装的要求,导致configure脚本检测出无法正确配置,如我上面说的,比方你没安装编译器或者编译器版本有问题,或者是缺少某个头文件,或者是缺少某些库等等,具体是什么问题,要看 ./configure 出错的提示了。

㈦ linux 下用arm体系QT编译问题(目前我系统里有X86 和 arm体系(老师编好的)的QT各一个)

貌似是缺少系统库,有些版本的linux编译qt是会出现缺少系统库而导致编译不成功的问题,不是很推荐用最新的编译器来编译,其实2.4的内核和3.4.5的编译器做qt就已经足够了,你可以去查查看那些版本的linux下可以成功的编译qt,安装的时候尽可能把开发用的库都选上,不然就只有自己再去打补丁,
仅作参考

㈧ x86是处理特定指令集的cpu, 就像编译器一样,有多个版本,那么哪些软件能在x86下运行呢

你知道不,你连门都没摸到,不要说登堂入室了。

问得驴头不对马嘴。次序混乱,自取烦恼。

㈨ 我编译的程序,是为x86和x64,两者的性能差别有点大。这是什么原因呢

理论上x64可以兼容x84的软件 但发挥不出显着性能提升 x64对内存的管理、利用强大些,

㈩ 求教编译openwrt x86,usb启动不成功

Make kernel_menuconfig

Device Drivers --->
SCSI device support --->

(Although SCSI will be enabled automatically when selecting USB Mass Storage,
we need to enable disk support.)
--- SCSI support type (disk, tape, CD-ROM)
<*> SCSI disk support

(Then move back a level and go into USB support)
USB support --->

(This is the root hub and is required for USB support.
If you'd like to compile this as a mole, it will be called usbcore.)
<*> Support for Host-side USB

(Select at least one of the HCDs. If you are unsure, picking all is fine.)
--- USB Host Controller Drivers
<*> EHCI HCD (USB 2.0) support
< > OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support

(Moving a little further down, we come to CDC and mass storage.)
< > USB Modem (CDC ACM) support
<*> USB Printer support
<*> USB Mass Storage support

(If you have a USB Network Card like the RTL8150, you'll need this)
USB Network Adapters --->
<*> USB RTL8150 based ethernet device support (EXPERIMENTAL)

(If you have a serial to USB converter like the Prolific 2303, you'll need this)
USB Serial Converter support --->
<*> USB Serial Converter support
<*> USB Prolific 2303 Single Port Serial Driver (NEW)

选上这些,,,再编译一次固件就可以了。

阅读全文

与麒麟x86编译问题相关的资料

热点内容
仿真51单片机 浏览:864
密码器单片机 浏览:380
php订单处理 浏览:248
安庆程序员接私活哪里接 浏览:978
程序员那么可爱第9集预告片 浏览:668
手机解压缩工具在哪 浏览:757
如何启用阿里云服务器 浏览:737
python里有trim函数吗 浏览:690
pdf里面的文字怎么复制 浏览:900
ps切图压缩 浏览:298
linux删除db2 浏览:283
用prim算法求公路最优解程序 浏览:640
gpu编译android 浏览:603
miui刷机显示加密中 浏览:582
linuxqt图形界面 浏览:719
c语言常用的排序算法 浏览:761
php写本地文件 浏览:979
光影魔术手批量压缩图片 浏览:657
python菜鸟面向对象 浏览:708
考虫讲义PDF 浏览:551