首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[开发工具] CodeBlocks+CodeSourcery搭建CM3集成编译环境

[开发工具] CodeBlocks+CodeSourcery搭建CM3集成编译环境

商业的开发环境都太贵了,用不起啊~~~
来搭一个免费的吧!
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玩玩。启动向量表的修改也还不太熟悉。慢慢来吧。
继承事业,薪火相传
返回列表