Ⅰ 飞思卡尔Kinetis W系列芯片用什么编译器
目前支持Freescale KW系列芯片的开发环境有keil (5.0版本以上), IAR (7.0)以上的版本都有支持。
Freescale自己的工具CodeWarrior 不再支持。但在后续退出的kds(Freescale的免费开发工具)中也会支持,目前KDS 1.1的版本还不支持KW系列,在下一版本(预计今年年底会推出)中将会支持
Ⅱ 如何使用GNU GCC编译MQX应用
1. 安装MQX4.0,在飞思卡尔官网把MQX的安装文件下载下来。
2. 安装好之后会在安装目录下生成如下图所示的子目录。
build目录:包含了飞思卡尔不同平台不同编译器的相关库的Makefile文件。具体内容如下列表示意图所示:
build
+---common
| +---make ... shared Makefiles with global settings, variables and paths
+--- ... board-specific folder
| +---make ... folder contains mass-build Makefile for all libraries
| +---tools ... tool-specific global settings, variables and paths
| +---bsp ... BSP Library Makefile
| +---psp ... PSP Library Makefile
| +---mfs ... MFS Library Makefile
| +---rtcs ... RTCS Library Makefile
| +---shell ... Shell Library Makefile
| +---usbd ... USB Device Library Makefile
| +---usbh ... USB Host Library Makefile
+---
+---make
3. 安装CodeWarrior Development Studio V10.5编译器。在飞思卡尔官网把CW10.5的安装文件下载下来。安装CW10.5时,请注意安装目录名称不要带空格。
CW10.5的Cross_Tools目录已经自带了GNU GCC for ARM Cortex-M4内核的交叉编译工具链。
4. 安装MinGW(Minimalist GNU on Windows) GNU工具集,在Windows下GNU GCC需要使用make.exe和sed.exe等工具。
5. 上述软件安装完毕后,按照实际安装情况,修改编译MQX所需的交叉工具链的目录。
1).修改全局宏定义脚本$MQX_DIR\build\common\make\global.mak
指定GNU 交叉工具链的安装路径TOOLCHAIN_ROOTDIR宏定义,如:
TOOLCHAIN_ROOTDIR = C:/Freescale/CW10_5
2).指定编译某一硬件平台需要GNU GCC编译器的具体安装路径。如需要编译twrk60d00m这款Demo板,修改脚本文件$MQX\build\twrk60d100m\make\tools\cw10gcc.mak,指定AS,CC,CX,AR,LD等工具的可执行文件。
#------------------------------------------------------------
# toolchain settings
#------------------------------------------------------------
AS = $(TOOLCHAIN_ROOTDIR)/Cross_Tools/arm-none-eabi-gcc-4_7_3/bin/arm-none-eabi-gcc.exe
CC = $(TOOLCHAIN_ROOTDIR)/Cross_Tools/arm-none-eabi-gcc-4_7_3/bin/arm-none-eabi-gcc.exe
CX = $(TOOLCHAIN_ROOTDIR)/Cross_Tools/arm-none-eabi-gcc-4_7_3/bin/arm-none-eabi-gcc.exe
AR = $(TOOLCHAIN_ROOTDIR)/Cross_Tools/arm-none-eabi-gcc-4_7_3/bin/arm-none-eabi-ar.exe
LD = $(TOOLCHAIN_ROOTDIR)/Cross_Tools/arm-none-eabi-gcc-4_7_3/bin/arm-none-eabi-gcc.exe
6. 修改完毕上述脚本后,就可以开始使用GNU GCC编译MQX。在windows命令窗口下进入需要编译的目录,如Tower K60的编译目录:$MQX\build\twrk60d100m\make。在命令行下输入make指令:
C:\Freescale\Freescale_MQX_4_0\build\twrk60d100m\make>mingw32-make build TOOL=cw10gcc CONFIG=debug
这条make指令能够将整个MQX进行编译,并生成bsp.a,psp.a,shell.a,rtcs.a,usbd.a,usbh.a等库文件。
7. MQX系统库编译完毕后,可以进行应用程序的编译。在命令窗口进入需要编译的应用程序目录。如需要编译hello例程代码,进入$MQX\mqx\examples\hello\make目录,在命令下输入make命令:
C:\Freescale\Freescale_MQX_4_0\mqx\examples\hello\make>mingw32-make BOARD=twrk60d100m TOOL=cw10gcc CONFIG=debug LOAD=intflash build
GNU GCC将会编译应用程序代码,并与MQX的bsp.a,psp.a的库文件链接,生成.elf格式的可以执行文件。
8. 下载调试.elf可执行文件。在CW10.5中New创建一个Bareboard Project工程,选择需要使用的下载调试器,并且选定使用GNU GCC作为编译器。在菜单Properties --> Run/Debug Setting中选择需要下载的目标文件。然后通过菜单Run-->Debug下载调试程序。
Ⅲ 请问学x86汇编语言用什么编译器
编译器自举!搜索这个关键字
程序都是编译器编译的。这个是肯定的
至于第一款X语言编译器是不是直接1010101010自己写的那就不知道啦
一般开发编译器的话。有两条路选择
1.利用yacc(或者其变种)&lex(词法分析)-等工具自己生成语法模板
词法语法都可以使用这些工具自己生成
然后自己编写生成的中间码和生成的机器码就可以了
一般做编译原理类似试验都是如此的。许多编译器也的确是这样
2.自己写词法分析和语法分析。可以参考一些开源的编译器
lcc-这个是ANSI C99标准的编译器是开源的
或者nasm,watcom等编译器到上不少开源的编译器
总的来说。高级语言编译器比较难写
如果想快速写出一个的话
可以采用第一种做法。利用工具生成语法词法模板
先写一个简单的汇编编译器比较简单
开源的有nasm,jwasm(支持masm语法开源的编译器)
fasm(这款编译器是自举的.就是自己可以编译自己),
剩下的就是自己做好语言规则关键字map
引用高手的话。语言map做好了你的编译器也做好一半了
剩下的都是机械性的工作了。
生成x86或者arm指令。
优化工作这个很难解释.根据你所需要的做吧
毕竟可以做出一个无错,又XX的编译器已经很难得
你可以选择使用现有的编译器开发自己的编译器
然后等到你的编译器支持相当数量指令和成熟度的时候
使用自己的语法重新写一遍编译器.
这样你就可以用自己的编译器开发自己的编译器了(是不是很邪恶?)
另外举几个例子
Delphi的编译器是C++ Builder开发的。
而C++ Builder的IDE是Delphi开发的
C++ Builder的编译器是C++ Builder开发的-这个就是编译器自举了。。Delphi和C++ Builder共享一个后端化优化器。
Delphi 早期的版本的编译器是tasm直接编译的。可见Anders的汇编功力多强悍(Anders也就是后来VJ++,C#,.NET工程的核心架构师.最关键的灵魂级人物)
VC++的编译器是VC++开发的。很明显这都说明了编译器自举
自己开发自己。如果一个编译器可以做到自己编译自己。那基本上就可以实现任何功能了。
关于编译器开发的书籍可以看一下
龙书《编译原理(第二版)》
虎书《现代编译原理-C语言描述》
鲸书《高级编译器设计与实现》
建议从鲸书看起。然后是龙书
再来是虎书--虎书里面描述了许多现代编译器(正如其名)技术
例如面向对象啦,优化,垃圾回收等等.
鲸书看完基本上就可以实现一个简单的Tiny C编译器了
然后在龙书巩固,读一下语言规范,自己看一些开源的汇编编译器代码
自己就可以尝试做一个汇编语言编译器了.等到技术提高了
在尝试做一些高级语法识别,参考LCC代码做一下ANSI C99的
C语言编译器。再来就看你自己的兴趣和领悟度拉
如果想支持C++的话就得要对编译器做许多方便的研究
类似Java那种跨平台或者Ruby,Python等动态语言
虎书中也有描述。当然看自己功力了