当前位置:首页 » 编程软件 » 龙芯编译器

龙芯编译器

发布时间: 2022-01-25 20:32:29

A. 为什么没有国产的C/C++的编译

首先:国产有编译器,比如龙芯就用
其次:开发编译器难度非常大,编译器、操作系统、数据库这三样是程序界的三座大山,不是 所有牛奶都叫愚公。国产即使有编译器我认为也不是完全从零开发的。龙芯虽然有了自己的编译器也只是针对自己的平台编译,不具备通用性。一句话,中国目前缺少大企业的眼光和决心以及实力

B. 龙芯发布新一代指令系统,新一代系统都有哪些优点

龙芯指令所有的嵌入式处理器都是基于一定的架构的,即 IP 核(Intellectual Property,知识 产权),生产处理器的厂家很多,但拥有 IP 核的屈指可数。如果有自己的 IP 核,光靠卖 IP 核即可坐拥城池。 嵌入式系统的架构有专有架构和标准架构之分,在 MCU(微控制器)产品方面,像瑞萨 (Renesas)、飞思卡尔(Freescale)、NEC 都拥有自己的专有 IP 核,而其他嵌入式处理 器都是基于标准架构。

由于此世代的产品效能与功耗比可以说是 过去 X86 体系的甜蜜点, 加上已经被市场长久验证, 稳定性高, 故常被应用于效能需求不高, 但稳定性要求高的应用中,如工控设备等产品。 世界上生产处理器芯片的厂家有很多, 但他们生产的芯片绝大部分都属于以上几种架构, 只 有少数厂家设计生产一些自成体系的处理器,他们有自己的指令集、编译连接器、调试器、 集成开发环境, 有的甚至还有自己的小型操作系统。

但他们的这些处理器基本都是自产自销, 专用于他们自己的某些产品中, 而且这些处理器都是比较低端的, 针对性强, 应用也比较窄, 同时也正是因为他们所有都是“自己造”, 导致技术比较封闭, 公开资源少, 了解的人不多, 开发的人自然就少,所以它们根本不可能形成主流,当然这些公司并非靠生产芯片挣钱,而 是靠卖产品发财,所以严格来说,这些公司算不上是专门的芯片生产商,而是某个产品(如 照相机)的生产商,一旦他们的产品滞销,他们“自己造”的芯片也将随之退市。 不同架构处理器之间最根本的区别是指令集而不是其他, 也可以说指令集是区分不同架 构处理器之间的标志; 指令集最本质的含义在我看来应该是指汇编指令与二进制机器码的对 应关系。

C. 龙芯电脑的软件用什么编译器,能在龙芯电脑上编译吗可视化怎么实现还有IP是自己的还是直接MIPS的

MISP版本的linux上有那些编译器,龙芯就能用那些编译器,目前gun一系列,pythonphp等等都能用。
龙芯是自己设计的,指令集兼容mips,并自己扩充了一些。

D. 龙芯CPU有什么特点

龙芯CPU不同于我们常用的CPU,它属于RISC处理器。
而常见的Inter和AMD的属于CISC处理器。
但IBM的POWER GX处理器就是RISC。
所以原先的苹果机上无法运行windows。
同样的龙芯上也无法运行windows。
具体的两种处理器的区别如下:

复杂指令集CPU内部为将较复杂的指令译码,也就是指令较长,分成几个微指令去执行,正是如此开发程序比较容易(指令多的缘故),但是由于指令复杂,执行工作效率较差,处理数据速度较慢,PC 中 Pentium的结构都为CISC CPU。
RISC是精简指令集CPU,指令位数较短,内部还有快速处理指令的电路,使得指令的译码与数据的处理较快,所以执行效率比CISC高,不过,必须经过编译程序的处理,才能发挥它的效率,我所知道的IBM的 Power PC为RISC CPU的结构,CISCO 的CPU也是RISC的结构。
咱们经常见到的PC中的CPU,Pentium-Pro(P6)、Pentium-II,Cyrix的M1、M2、AMD的K5、K6实际上是改进了的CISC,也可以说是结合了CISC和RISC的部分优点。

RISC与CISC的主要特征对比

比较内容 CISC RISC
指令系统 复杂,庞大 简单,精简
指令数目 一般大于200 一般小于100
指令格式 一般大于4 一般小于4
寻址方式 一般大于4 一般小于4
指令字长 不固定 等长
可访存指令 不加限制 只有LOAD/STORE指令
各种指令使用频率 相差很大 相差不大
各种指令执行时间 相差很大 绝大多数在一个周期内完成
优化编译实现 很难 较容易
程序源代码长度 较短 较长
控制器实现方式 绝大多数为微程序控制 绝大多数为硬布线控制
软件系统开发时间 较短 较长

所以两种处理器的架构不同无法直接相比,
但现在的龙芯的处理水平已经可以和初期P4相比了。
因为上面无法运行windows且速度上无法与主流处理器相比,所以市场上没有针对个人用户出售龙芯的。

龙芯

龙芯(英语:GODSON)是中国科学院自主开发的通用CPU,采用简单指令集,类似于MIPS指令集。第一型的速度是266MHz,最早在2002年开始使用,龙芯2号第二型为500MHz,第三型的目标在1GHz。

关连
“龙芯2号”处理器,也称“Godson-2”处理器、“狗剩2号”处理器、“毛泽东110”处理器、“MZD110”处理器,其中“MZD”是取自“毛泽东”以英文发音时的三个开头字母。

大记事
“十五”期间,国家863计划提出了自主研发CPU的战略思路。
2001年3月起,中国科学院计算技术研究所正式启动处理器设计项目。
2001年3月,中科院计算技术研究所开始研制具有中国自主知识产权的高性能通用CPU芯片,被命名为“龙芯”。项目领导是中科院计算所所长李国杰,具体技术主管是研究院胡伟武。
2001年10月 龙芯的FPGA验证成功,通过中国科学院主持的“龙芯(Godson)CPU设计与验证系统”项目评审。
2002年6月 “龙芯1号”CPU研制成功。
2002年7月 “龙芯1号”CPU小批量投片成功。
2002年9月28日中科院计算技术研究所和北京神州龙芯集成电路设计有限公司联合发布新闻,宣布“具有自主知识产权的我国第一款高性能通用CPU—“龙芯1号”研制成功。从此,中国信息产业“无芯”时代宣告结束。
2002年8月6日 由中国科学院计算技术研究所和江苏综艺集团等合资组建的“ 北京神州龙芯集成电路设计有限公司”正式成立。
2005年2月18日,龙芯2号处理器正式面世,鉴定委员会认为,这款芯片的总体性能已经达到2000年左右的国际先进水平,相当于中档的“奔腾三”处理器。
2006年9月13日,“64位龙芯2号增强型处理器芯片设计”(简称龙芯2E)通过科技部验收,该处理器最高主频达到1.0GHz,实测性能超过1.5GHz奔腾IV处理器的水平。同日,其成果“龙芯2号增强型处理器”通过了科技成果鉴定。

E. 有在龙芯电脑上升级或重新编译Linux内核成功的吗

龙芯本质上是属于MIPS芯片,但是又在指令集上进行了修改和扩展,所以和真正的MIPS芯片又有些不同,要用合适的编译工具,在龙芯电脑上编译Linux内核超麻烦的,还是尽量使用原来适合的那个版本的内核吧,这样相对小众的平台出现问题了参考资料都难找呢。

F. 龙芯1b linux下 程序用什么编译执行

Linux下C程序的编辑,编译和运行以及调试

要使用的工具:
编辑:vim(vi)
编译和运行:gcc
调试:gdb

安装很简单(以下是以在CentOS中安装为例):

1
yum vim gcc gdb

1.使用vim编辑源文件
首先,打开终端练下手:

1
vim hello.c

(进入一般模式)
按下"i",进入编辑模式,在编辑模式下输入:

1
#include <stdio.h>

2
int main(){

3
printf("Hello, World!\n");

4
return 0;

5
}

输入完成,按"ESC"键,回到一般模式,然后按下":wq",即可保存并退出vim。

附注:
在一般模式下,按下":%!xxd"查看hello.c的16进制形式,回到文本格式按下":%!xxd -r"。
查看hello.c的二进制形式,按下":%!xxd -b",这是hello.c保存在磁盘上的存储状态。
至此,在vim已完成C源文件的编辑。
关于vim的使用,直接上网搜索vim,相关的文章是相当多的;或者参考vim的联机帮助,在命令行上键入"man vim"即可。

2.编译和运行

gcc命令的基本用法:

1
gcc[options] [filenames]

其中,filenames为文件名;options为编译选项
当不使用任何编译选项编译hello.c时,gcc将会自动编译产生一个a.out的可执行文件:

1
[root@localhost c]# ls

2
hello.c

3
[root@localhost c]# gcc hello.c

4
[root@localhost c]# ls

5
a.out hello.c

执行:

1
[root@localhost c]# ./a.out

2
Hello, World!

使用-o编译选择,可以为编译后的文件指定一个名字:

1
[root@localhost c]# ls

2
a.out hello.c

3
[root@localhost c]# gcc hello.c -o hello

4
[root@localhost c]# ls

5
a.out hello hello.c

执行:

1
[root@localhost c]# ./hello

2
Hello, World!

注意:使用-o选项时,-o后面必须跟一个文件名,即:-o outfile。

为了便于描述后面的选项,删除hello和a.out可执行文件。

结合介绍gcc的编译选项,分析hello.c的编译和执行过程:
(1)预处理阶段:使用-E选项,对输入文件只做预处理不编译。当使用这个选项时,预处理器的输出被送到标准输出而不是存储到文件。如果想将预处理的输出存储到文件,可结合-o选项使用,使用如下:

1
[root@localhost c]# ls

2
hello.c

3
[root@localhost c]# gcc -E hello.c -o hello.i

4
[root@localhost c]# ls

5
hello.c hello.i

使用less查看下hello.i:

1
[root@localhost c]# less hello.i

(2)编译阶段:使用-S选项,将C程序编译为汇编语言文件后停止编译,gcc编译产生汇编文件的默认后缀为.s。

1
[root@localhost c]# ls

2
hello.c hello.i

3
[root@localhost c]# gcc -S hello.c

4
[root@localhost c]# ls

5
hello.c hello.i hello.s

在gcc -S hello.c处,使用C源文件编译,也可以用gcc -S hello.i的预处理文件编译,结果一样。

使用-S编译时,也可以和-o结合使用指定编译产生的汇编语言文件的名字:

1
[root@localhost c]# ls

2
hello.c hello.i hello.s

3
[root@localhost c]# gcc -S hello.i -o hello_s.s

4
[root@localhost c]# ls

5
hello.c hello.i hello.s hello_s.s

可使用less命令查看汇编代码。

(3)汇编阶段:使用-c选项,将C源文件或者汇编语言文件编译成可重定向的目标文件(二进制形式),其默认后缀为.o。

1
[root@localhost c]# ls

2
hello.c hello.i hello.s hello_s.s

3
[root@localhost c]# gcc -c hello.s

4
[root@localhost c]# ls

5
hello.c hello.i hello.o hello.s hello_s.s

也可以和-o结合使用指定编译产生的目标文件的名字:

1
[root@localhost c]# gcc -c hello.s -o hello.o

由于hello.o是二进制文件,使用less查看显示为乱码;

然后使用vim hello.o打开也显示为乱码,按下":%!xxd"查看其16进制形式,按下":%!xxd -r"退出 16进制查看模式,回到乱码状态。在退出vim时,若提示已经修改了文件,则使用":q!"强制退出。

(4)链接阶段:链接器将可重定向的目标文件hello.o以及库文件(如printf.o)执行并入操作,形成最终可执行的可执行目标文件。

1
[root@localhost c]# ls

2
hello.c hello.i hello.o hello.s hello_s.s

3
[root@localhost c]# gcc hello.o

4
[root@localhost c]# ls

5
a.out hello.c hello.i hello.o hello.s hello_s.s

可使用-o选项,指定输出文件(即可执行目标文件)的名字:

1
[root@localhost c]# gcc hello.o -o hello

2
[root@localhost c]# ls

3
a.out hello hello.c hello.i hello.o hello.s hello_s.s

(5)执行阶段:

1
[root@localhost c]# ./a.out

2
Hello, World!

3
[root@localhost c]# ./hello

4
Hello, World!

由此,看出前面使用的gcc hello.c -o
hello命令,将hello.c直接编译为可执行的目标文件,中间经过于处理器的预处理阶段(源文件到预处理文件),编译器的编译阶段(预处理文件到汇
编文件),汇编器的汇编阶段(汇编文件到可重定向的目标文件),链接器的链接阶段(可重定向的目标文件到可执行的目标文件)。

还有其他的选项如下:
-Idir:dir是头文件所在的目录
-Ldir:dir是库文件所在的目录

-Wall:打印所有的警告信息
-Wl,options:options是传递给链接器的选项

编译优化选项:-O和-O2
-O选项告诉GCC 对源代码进行基本优化。这些优化在大多数情况下都会使程序执行的更快。-O2选项告诉GCC产生尽可能小和尽可能快的代码。
-O2选项将使编译的速度比使用-O时慢。但通常产生的代码执行速度会更快。

除了-O和-O2优化选项外,还有一些低级选项用于产生更快的代码。这些选项非常的特殊,而且最好只有当你完全理解这些选项将会对编译后的代码产生什么样的效果时再去使用。这些选项的详细描述,请参考GCC的联机帮助,在命令行上键入"man gcc"即可。

调试选项:-g(使用详情见第3部分)
-g选项告诉GCC产生能被GNU调试器使用的调试信息以便调试你的程序。
即:在生成的目标文件中添加调试信息,所谓调试信息就是源代码和指令之间的对应关系,在gdb调试和objmp反汇编时要用到这些信息。

3.调试
虽然GCC提供了调试选项,但是本身不能用于调试。Linux 提供了一个名为gdb的GNU调试程序。gdb是一个用来调试C和C++程序的调试器。它使你能在程序运行时观察程序的内部结构和内存的使用情况。以下是gdb所提供的一些功能:
a.它使你能监视你程序中变量的值;
b.它使你能设置断点以使程序在指定的代码行上停止执行;
c.它使你能一行行的执行你的代码。

(1)启动gdb
在命令行上键入"gdb"并按回车键就可以运行gdb了,如下:

1
[root@localhost c]# gdb

2
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1)

3
Copyright (C) 2010 Free Software Foundation, Inc.

4
License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it.

5
There is NO WARRANTY, to the extent permitted by law. Type "show ing"

6
and "show warranty" for details.

7
This GDB was configured as "x86_64-redhat-linux-gnu".

8
For bug reporting instructions, please see:<>.

9
(gdb)

当启动gdb之后,即可在命令行上输入命令进行相关的调试操作。
也可以以下面的方式来启动gdb:

1
[root@localhost c]# gdb hello

这种方式启动gdb,直接将指定调试的程序文件装载到调试环境中。也就是让gdb装入名称为filename的可执行文件,从而准备调试。

了能够进行调试,当前调试的程序文件中必须包含调试信息。其中调试信息包含程序中的每个变量的类型和其在可执行文件里的地址映射以及源代码的行号,gdb
利用这些信息使源代码和机器码相关联。因此在使用gcc编译源程序的时候必须使用-g选项,以便将调试信息包含在可执行文件中。
例如:

1
[root@localhost c]# gcc -g hello.c -o hello

gdb还提供了其他的启动选项,请参考gdb的联机帮助。在命令行上键入"man gdb"并回车即可。

(2)gdb基本命令
<1>单步执行和跟踪函数调用
程序编辑如下:

01
#include <stdio.h>

02
int add_range(int low, int high){

03
int i;

04
int sum;

05
for(i = low; i <= high; i++){

06
sum = sum + i;

07
}

08
return sum;

09
}

10

11
int main(){

12
int result[100];

13
result[0] = add_range(1, 10);

14
result[1] = add_range(1, 100);

15
printf("result[0] = %d\nresult[1] = %d\n", result[0], result[1]);

16
return 0;

17

18
}

编译和运行如下:

1
[root@localhost gdb_demo]# vim test1.c

2
[root@localhost gdb_demo]# gcc test1.c -o test1

3
[root@localhost gdb_demo]# ls

4
test1 test1.c

5
[root@localhost gdb_demo]# ./test1

6
result[0] = 55

7
result[1] = 5105

G. 龙芯处理器采用了什么 基础架构

龙芯CPU不同于我们常用的CPU,它属于RISC处理器。 而常见的Inter和AMD的属于CISC处理器。 但IBM的POWER GX处理器就是RISC。 所以原先的苹果机上无法运行windows。 同样的龙芯上也无法运行windows。 具体的两种处理器的区别如下: 复杂指令集CPU内部为将较复杂的指令译码,也就是指令较长,分成几个微指令去执行,正是如此开发程序比较容易(指令多的缘故),但是由于指令复杂,执行工作效率较差,处理数据速度较慢,PC 中 Pentium的结构都为CISC CPU。 RISC是精简指令集CPU,指令位数较短,内部还有快速处理指令的电路,使得指令的译码与数据的处理较快,所以执行效率比CISC高,不过,必须经过编译程序的处理,才能发挥它的效率,我所知道的IBM的 Power PC为RISC CPU的结构,CISCO 的CPU也是RISC的结构。 咱们经常见到的PC中的CPU,Pentium-Pro(P6)、Pentium-II,Cyrix的M1、M2、AMD的K5、K6实际上是改进了的CISC,也可以说是结合了CISC和RISC的部分优点。 RISC与CISC的主要特征对比 比较内容 CISC RISC 指令系统 复杂,庞大 简单,精简 指令数目 一般大于200 一般小于100 指令格式 一般大于4 一般小于4 寻址方式 一般大于4 一般小于4 指令字长 不固定 等长 可访存指令 不加限制 只有LOAD/STORE指令 各种指令使用频率 相差很大 相差不大 各种指令执行时间 相差很大 绝大多数在一个周期内完成 优化编译实现 很难 较容易 程序源代码长度 较短 较长 控制器实现方式 绝大多数为微程序控制 绝大多数为硬布线控制 软件系统开发时间 较短 较长 所以两种处理器的架构不同无法直接相比, 但现在的龙芯的处理水平已经可以和初期P4相比了。 因为上面无法运行windows且速度上无法与主流处理器相比,所以市场上没有针对个人用户出售龙芯的。 龙芯 龙芯(英语:GODSON)是中国科学院自主开发的通用CPU,采用简单指令集,类似于MIPS指令集。第一型的速度是266MHz,最早在2002年开始使用,龙芯2号第二型为500MHz,第三型的目标在1GHz。 关连 “龙芯2号”处理器,也称“Godson-2”处理器、“狗剩2号”处理器、“毛泽东110”处理器、“MZD110”处理器,其中“MZD”是取自“毛泽东”以英文发音时的三个开头字母。 大记事 “十五”期间,国家863计划提出了自主研发CPU的战略思路。 2001年3月起,中国科学院计算技术研究所正式启动处理器设计项目。 2001年3月,中科院计算技术研究所开始研制具有中国自主知识产权的高性能通用CPU芯片,被命名为“龙芯”。项目领导是中科院计算所所长李国杰,具体技术主管是研究院胡伟武。 2001年10月 龙芯的FPGA验证成功,通过中国科学院主持的“龙芯(Godson)CPU设计与验证系统”项目评审。 2002年6月 “龙芯1号”CPU研制成功。 2002年7月 “龙芯1号”CPU小批量投片成功。 2002年9月28日中科院计算技术研究所和北京神州龙芯集成电路设计有限公司发布新闻,宣布“具有自主知识产权的我国第一款高性能通用CPU—“龙芯1号”研制成功。从此,中国信息产业“无芯”时代宣告结束。 2002年8月6日 由中国科学院计算技术研究所和江苏综艺集团等合资组建的“ 北京神州龙芯集成电路设计有限公司”正式成立。 2005年2月18日,龙芯2号处理器正式面世,鉴定委员会认为,这款芯片的总体性能已经达到2000年左右的国际先进水平,相当于中档的“奔腾三”处理器。 2006年9月13日,“64位龙芯2号增强型处理器芯片设计”(简称龙芯2E)通过科技部验收,该处理器最高主频达到1.0GHz,实测性能超过1.5GHz奔腾IV处理器的水平。同日,其成果“龙芯2号增强型处理器”通过了科技成果鉴定。

H. 龙芯电脑的软件用什么编译器,能在龙芯电脑

可以。
龙芯的电脑可以安装许多种其他版本的linux(包括安卓)甚至是bsd,只要支持mips架构的就可以。
例如Debian和FreeBSD,还有国内linux发行版deepin2014(deepin15暂时还不支持mips架构)

I. 龙芯与Linux问题

可以,但更建议你用ubuntu linux ,要容易上手些,使用也方便,不会打击新手自信。而且ubuntu 也有龙芯版的,可以装在龙芯上。它们本质是一样的。

原则上只要有相应的编译器,开源软件都可以运行在龙芯上。
虽然CPU不同,但是世界上所有的程序,绝大部分是C/C++语言写的,它是跨平台的语言,只要有相应的编译器(GCC)就能编译后运行在完全不同的CPU上。而linux 程序基本都是开源的,龙芯出现后肯定有很多人去移植和开发编译器。所以,你的程序只要是C/C++写的就能运行,当然,要用龙芯专用的编译器编译一次。
当然,Linux 脚本类程序不需编译也可直接运行。

J. 龙芯处理器是risc架构吗为什么只支持linux


MIPS 一种RISC的处理器(ARM也是)
构架问题啊 要看系统支不支持 而不是支持不支持某个系统(其实就是市场行为决定的)。。。
Linux。。。可是最大的系统。。(不是说桌面PC系统占有率 比如安卓的就是基于linux的还有很多嵌入式设备用的系统。。)

热点内容
逍遥绝脚本 发布:2024-12-27 11:44:59 浏览:430
我的世界哪个服务器可以1v1 发布:2024-12-27 11:43:37 浏览:933
c语言关键字有 发布:2024-12-27 11:41:54 浏览:367
gccc语言编译命令 发布:2024-12-27 11:41:06 浏览:188
欧美版思域是什么版本配置 发布:2024-12-27 11:20:45 浏览:251
具医院的wifi密码是什么 发布:2024-12-27 11:20:07 浏览:77
dll服务器如何重启 发布:2024-12-27 11:19:58 浏览:953
安卓怎么把视频变成模糊 发布:2024-12-27 11:18:37 浏览:962
oracle分页sql怎么写 发布:2024-12-27 11:02:02 浏览:846
服务器如何远程集中管理 发布:2024-12-27 11:00:26 浏览:890