商业的开发环境都太贵了,用不起啊~~~
来搭一个免费的吧!
1. 准备工作
1.1 CodeBlocks
CodeBlocks是一个跨平台的IDE(集成开发环境),我们用它来做开发环境所需的图形界面。下载地址:
http://www.codeblocks.org/
1.2 CodeSourcery for ARM
用于ARM的GNU工具链。下载地址:
http://www.codesourcery.com/sgpp/lite/arm
1.3 安装
以上两个工具直接setup就可以了。
2. 配置
启动CodeBlocks,它会让你选默认的编译器。此时它列出的编译器列表里可能还看不到刚安装的CodeSourcery,先选GNU GCC
Complier作为默认项。
现在添加CodeSourcery for ARM的支持。从CodeBlocks的菜单里选:
Settings -> Compiler and Debugger
弹出窗口右边我们可以看到默认的编译器是GNU GCC Compiler。
点下Copy按钮,在弹出的对话框里输入一个新名字给刚安装的CodeSourcery。比如“I love you CodeSourcery G++ Lite” :-)
选择刚复制的CodeSourcery G++,在下面的选项卡里选:
ToolChain Executable。
输入你的CodeSourcery Compiler可执行程序所在目录,比如:
X:\CodeSourcery\Sourcery G++ Lite\bin
注意CodeSourcery里有两个bin目录,选择里面有arm-none-eabi的那个。另一个bin是工具链自己用的。
在下面的Program Files里填上bin里的可执行程序。
按确定。
3. 建立工程并编译
新建一个project,编译器选刚才复制出来的那个CodeSourcery。
新建一个很简单的文件main.c:
int main()
{
while(1) {
}
}
将该文件添加进工程。
除了源程序以外,我们还需要一个link script,类似于IAR的icf文件。
CodeSourcery的安装目录里提供了模板,
x:\CodeSourcery\Sourcery G++ Lite\arm-none-eabi\lib\thumb2\generic-m.ld
和
x:\CodeSourcery\Sourcery G++ Lite\arm-none-eabi\lib\thumb2\micro-names.inc.
把它们复制到你的项目文件目录。
从CodeBlocks菜单里选择Project -> build options。
在linker settings里的other link options编辑框里写上
-T generic-m.ld
这样编译器在链接的时候就知道用哪个link script。
另外,我们需要给gcc的链接程序(ld)指定库文件位置。
还是在Project -> build options里面,
在search directory里的linker选项卡中添加:
x:\CodeSourcery\Sourcery G++ Lite\arm-none-eabi\lib\thumb2
关闭对话框,build一下。如果没有什么错误,那么编译环境就没什么大问题了。
上面只是很简单的编译了一个文件。如果要实战,需要根据硬件配制修改link script,
可能还需要修改启动向量表。
这只是一个编译环境,好处是不需要自己弄Makefile,但是还欠缺调试功能,算是抛砖引玉。
调试功能正在弄,还有些小问题。目前主要有两套方案,一是CodeBlocks自己的集成调试环境,二是insight。弄出来再贴吧。
======================================
CodeBlocks是我以前用来学习C++的工具,也用它来写WIN32API,qt程序和Linux Driver。
上面的步骤比商业工具稍微麻烦了点,不过毕竟是免费的,自己动手丰衣足食啊。因为调试环境还没搭起来,只写了一个小程序在自己的板子上点LED玩玩。启动向量表的修改也还不太熟悉。慢慢来吧。 |