社区
驱动开发/核心开发
帖子详情
关于移植gcc编译器的问题
bluntcp
2005-11-04 10:14:35
我现在要对一款gcc不支持的处理器实现c编译。
看了好多的文章都说直接移植gcc最方便,修改
gcc中关于机器描述的文件即可,但是我有一个
疑问,修改了gcc的机器描述文件,他是不是就
可以直接生成可执行的机器代码呢?我猜应该
不是吧?
我想问的是在一个gcc不支持的目标机上移植
gcc编译器的具体过程。
btw:我们已经实现了一个目标机的简单的汇编
器能够生成可执行的目标机代码。
...全文
335
7
打赏
收藏
关于移植gcc编译器的问题
我现在要对一款gcc不支持的处理器实现c编译。 看了好多的文章都说直接移植gcc最方便,修改 gcc中关于机器描述的文件即可,但是我有一个 疑问,修改了gcc的机器描述文件,他是不是就 可以直接生成可执行的机器代码呢?我猜应该 不是吧? 我想问的是在一个gcc不支持的目标机上移植 gcc编译器的具体过程。 btw:我们已经实现了一个目标机的简单的汇编 器能够生成可执行的目标机代码。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bluntcp
2005-11-16
打赏
举报
回复
thanks
tb01412
2005-11-13
打赏
举报
回复
如果连GCC都不支持你的CPU的话,我劝你不要在上面花功夫了,不是一般人做得出来的,也不是一天两天做得出来的,相当于你要从头实现一次GCC中的汇编处理和连接处理,而首先要了解相关CPU的指令集,机器码,然后再谈别的!!!!
所谓交叉编译环境都是指在GCC所支持的CPU的情况下,才能建立!!!!!!!!!!!
一个编译器有编译程序的时候,大概要经历预处理,语法,词法分析,优化,产生中间代码,编译,连接等过程,如果是一套GCC都不支持的CPU,预处理,语法,词法分析,优化过程可以跟与它差不多的CPU共享同样的过程,但产生中间代码,编译连接与具体的CPU有很大的相关性
我们现在举一个例子来说明:比如我们建立一个支持ARM的交叉编译环境
这个例子你与所说的要求还有一定区别(因为GCC支持ARM),不过通过这个例子可以引申出你需要做的事情,第一件要做的事情用在PC机上的GCC来编译一套用于ARM的编译工具,就是所谓的bilutils工具,包括用于ARM芯片的as,ld等程序,第二件事情就是用第一步中所产生的那套工具来编译GCC(用于ARM的),第三件事是用第二步所产生的工具来编译GLIBC库,当然,你也许还需要它对C++的支持,那么就得再编译对C++的支持,比如G++,STL库等
而LZ现在要做的工作除了上述要求之外,还有最重要的工作要作,就是在GCC中加入产生as,ld等工具的代码,很显然,这个工作量巨大,而且很难,比如你写一个最简单的C文件,里面仅声明一个整型变量,此时你自巳的编译器在前期处理阶段与x86没什么区别,可以照抄,那么如何让它变成机器码呢?这就是你需要做的工作,我没有做过类似的工作,在这里仅是建议,你需要去深入理解GCC源码,然后再加入你自己的实现,我想你加入的部分比起整个GCC来说,应该是非常少的,因为你可以共享很多与体系无法的代码
rzsheng
2005-11-09
打赏
举报
回复
交叉编译
bagualong
2005-11-08
打赏
举报
回复
是不是ARM呀?
yangyzqo
2005-11-08
打赏
举报
回复
UP
bluntcp
2005-11-07
打赏
举报
回复
我们肯定不是X86的
结构都不是冯。诺易曼的,跟arm一样是哈佛结构的。
肯定是要作成交叉c编译器,在linux下的。
关键问题是怎么作。修改了机器描述文件之后呢
怎么生成新的gcc,是不是还必须再改as,ld来生成
指定的目标机代码。
bluedreammer
2005-11-04
打赏
举报
回复
思路如下:
---〉是x86吗?
是---可以移植的,
不是---需要交叉编译器,如arm-cross-gcc等
---〉操作系统是什么?linux下还是windows
找找资料把
解析
gcc
编译器
的
移植
方法
设计一个新的
编译器
往往需要几年的时间因此我们希望能找到一种缩短开发时间的方法修改已有的
编译器
就是一种有效的手段本文讨论的是GNU C
编译器
的
移植
GNU C
编译器
自身有许多符合
移植
的特点如支持不同系统的配置文件...
GCC
编译器
后端
移植
技术
从
GCC
编译器
的体系结构出发,提出了
GCC
前后端分离的结构以适合
移植
到不同的硬件平台,分析了
GCC
后 端
移植
的关键技术。重点阐述后端
移植
所必须的文件,并详细说明这些文件的作用,给出了RTL中间语言的语法结构以及 ...
GCC
编译器
后端
移植
技术.pdf
GCC
编译器
后端
移植
技术.pdf
MinGW,
GCC
编译器
GCC
官网提供的
GCC
编译器
是无法直接安装到 Windows 平台上的,如果我们想在 Windows 平台使用
GCC
编译器
,可以安装
GCC
的
移植
版本。 目前适用于 Windows 平台、受欢迎的
GCC
移植
版主要有 2 种,分别为 MinGW ...
uC/OS II 在M64上的
移植
模板,
GCC
编译器
如上所述,这是一个uC/OS II 在M64上的
移植
模板,采用
gcc
编译器
,我并没有对它进行过多的研究,初步测试显示,它是能用的。要是发现有错误,请原谅我吧,我也不太懂这个东西。
驱动开发/核心开发
21,597
社区成员
21,709
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章