查看: 17206|回复: 18

[配件] MSP430开发环境MSPGCC + Codeblocks【【配置图文】】

  [复制链接]
  • TA的每日心情
    开心
    2017-12-20 19:35
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2012-9-14 10:14:15 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 vellonj 于 2012-9-14 10:13 编辑

    我比较喜欢简单小巧的东西,所以官方的CCS不太适合我,IAR又要破解,所以选择这个平台作为MSP430的开发环境。
    codeblocks本身就集成MSPGCC编译器的模板,但是新版的MSPGCC比起旧版的似乎有点不一样,所以需要做一些配置的工作。
    理论上,搭建方法也适用于linux系统,我个人还没在linux下搭建。

    相比Eclipse,codeblocks显得很小巧(不想要MinGW的话也不到30M),无需JAVA环境,运行速度也很快,支持搭建多种开发环境,是我摆弄东西的首选平台。至于它的其它优点,自行google吧。

    我的mspgcc是放在D:\mspgcc目录下,TI官方的烧录软件我放在"D:\mspgcc\flash_fet"目录下 ,请读者自行修改。
    开始:
    1) 先安装好codeblocks 10.05,这个很简单。下面的一个是不带minGW的只有23M,带minGW的74M
    http://sourceforge.net/projects/codeblocks/files/Binaries/10.05/Windows/codeblocks-10.05-setup.exe/download
    http://sourceforge.net/projects/codeblocks/files/Binaries/10.05/Windows/codeblocks-10.05mingw-setup.exe/download
    2)下载MSPGCC(新版的只有37M),解压到“D:\mspgcc”
    http://sourceforge.net/projects/mspgcc/files/Windows/mingw32/mspgcc-20120406-p20120502.zip/download
    3)下载TI LuanchPad软件包,并将里面Flasher,driver等解压到“D:\mspgcc”目录下。(附件)

    4)运行codeblocks,点击Setting->Compiler and debugger..
    选择编译器 “GNU GCC Compiler for MSP430”
    01.jpg
    注意:如果你只用到一种编译设置只用一种型号的MCU的话,Complier Flags的话可以也可以在这里设置。(我个人不推荐~~)

    切换到"Toolchain executables",修改如下
    02.jpg
    本页下切换到“Addition Paths”,将msp430的目录也加上
    03.jpg
    切换到"Search directories", 添加Compiler的include目录和linker的lib目录

    04.jpg
    05.jpg
    保存。


    5)新建一个项目。File->New->project->Empty project
    一般我都只勾选Release,不要Debug

    06.jpg

    07.jpg
    7)新建空白文件,并添加到项目中File->New->Empty file
    输入测试代码。我的LaunchPad代码(没注释的,见笑了):
    #include <msp430g2553.h>

    void delay(int duration)
    {
            volatile int d = duration;
            while((d--) > 0)
            {
            }
    }

    int main(void)
    {
            WDTCTL = WDTPW | WDTHOLD;

            P1OUT = 0x00;
            P1DIR = 0x41;

            while(1)
            {
                    P1OUT = 0x40;
                    delay(5000);
                    P1OUT = 0x01;
                    delay(5000);
            }
            return 0;
    }
    提醒一下:delay函数里面的变量要加上volatile修饰。

    8)在编译之前还有一些重要的工作要做。
    Project->Propertise..->Build targets
    08.jpg

    以下内容也可以在上面红色字体的页面设置(不推荐)
    9)Project->Build Options..
    09.jpg

    10.jpg

    11.jpg
    我的设置:
    msp430-objcopy -O ihex bin/Release/CB_MSP430_test001.elf  bin/Release/CB_MSP430_test001.a43
    D:/mspgcc/msp_fet/MSP430Flasher.exe -n msp4302553 -w bin/Release/CB_MSP430_test001.a43 -v -g -z [VCC]


    至此,设置完成。

    可以点击运行了。成功后显示信息~~

    -------------- Build: Release in CB_MSP430_test001 ---------------

    msp430-gcc.exe -Wall -mmcu=msp430g2553  -Os -O3     -ID:\mspgcc\msp430\include -ID:\mspgcc\include  -c CB_MSP430_test001.c -o obj\Release\CB_MSP430_test001.o
    msp430-gcc.exe -LD:\mspgcc\msp430\lib\ldscripts\msp430g2553 -LD:\mspgcc\msp430\lib -LD:\mspgcc\lib  -o bin\Release\CB_MSP430_test001.elf obj\Release\CB_MSP430_test001.o   -s  
    Output size is 584.00 bytes
    Running target post-build steps
    msp430-objcopy -O ihex bin/Release/CB_MSP430_test001.elf  bin/Release/CB_MSP430_test001.a43
    D:/mspgcc/msp_fet/MSP430Flasher.exe -n msp4302553 -w bin/Release/CB_MSP430_test001.a43 -v -g -z [VCC]
    **  ERROR: Unable to access log file. Log disabled.
    **  Please make sure the directory 'Log' exists in line with the executable.
    Evaluating additional triggers...done
    Initializing interface on TIUSB port...done
    Checking firmware compatibility...done
    Reading FW version...done
    Reading HW version...done
    Powering up...done
    Configuring...done
    Accessing device...done
    Reading device information...done
    Loading file into device...done
    Verifying transfer...done
    Resetting device...done
    Refreshing registers...
    /* ----------------------------------------------------------------------------
    * UseCase     : MSP430Flasher.exe
    * Arguments   : -n MSP4302553 -w bin/Release/CB_MSP430_test001.a43 -v -g -z [VCC]
    * ATTENTION: Default options used due to invalid argument list.
    * ----------------------------------------------------------------------------
    * Driver      : loaded
    * Dll Version : 20409001
    * FwVersion   : 30394216
    * Interface   : TIUSB
    * HwVersion   : E 2.0
    * Mode        : AUTO
    * Device      : MSP430G2xx3
    * EEM         : Level 1, ClockCntrl 1
    * Prog.File   : bin/Release/CB_MSP430_test001.a43 (ERASE_ALL, verified = TRUE)
    * BSL Unlock  : FALSE
    * InfoA Access: FALSE
    * VCC ON      : TRUE
    * UseCase specific tasks: ----------------------------------------------------
    * Powering up...done
    * Disconnecting from device...
    * ----------------------------------------------------------------------------
    * Driver        : closed (No error)
    * ----------------------------------------------------------------------------
    */
    Process terminated with status 0 (0 minutes, 7 seconds)
    0 errors, 0 warnings













    TI_LaunchPad.zip

    4.58 MB, 下载次数: 678

    回复

    使用道具 举报

    该用户从未签到

    发表于 2012-9-14 10:53:10 | 显示全部楼层
    很详细的教程,好,顶起
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2012-9-14 10:56:38 | 显示全部楼层
    顶啊!!!很有帮助~~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-3 18:51
  • 签到天数: 772 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2012-9-14 11:02:18 | 显示全部楼层
    跟顶不错
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2012-9-14 11:44:19 | 显示全部楼层
    ddllxxrr 发表于 2012-9-14 11:02
    跟顶不错

    你也来点吧,哈哈!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2024-10-28 10:11
  • 签到天数: 1703 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2012-9-14 13:22:25 | 显示全部楼层
    很好很好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-12-20 19:35
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2012-9-15 11:49:04 | 显示全部楼层
    刚刚查阅MSPGCC文档时发现delay函数的写法不太好,MSPCC推荐写法~~
    static void __inline__ delay(register unsigned int duration)
    {
        __asm__ __volatile__ (
                              "\n1:\n"
                              "\tdec.w %[duration]\n"
                              "\tjne 1b \n"
                                : [duration] "+r" (duration)
                              );
    }
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-9-11 09:31
  • 签到天数: 155 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2012-9-15 12:15:28 | 显示全部楼层
    呵呵 用的还比较冷门的编译器啊 好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-6-4 09:20
  • 签到天数: 427 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-9-15 18:15:04 | 显示全部楼层
    这两种延时在什么场合会有区别?求解
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-12-20 19:35
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2012-9-17 09:46:25 | 显示全部楼层
    本帖最后由 vellonj 于 2012-9-17 09:50 编辑
    zhiqiuyiye504 发表于 2012-9-15 18:15
    这两种延时在什么场合会有区别?求解

    用汇编和用C的区别一样,汇编的延时比较“透明”的,能直接就计算延时的长短。而C代码会根据c编译器对源代码的优化程度不一样而不一样。当你要求比较准确延时用后者比较好。若是你只需个大概的延时,前者能够快速的生成,而且便于移植。

    刚刚把两者生成的汇编边大致看了一下,前者需要19条汇编指令,后者只需7条汇编指令。

    初学者,不对的话,请多指教~
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2025-1-3 07:14 , Processed in 0.198410 second(s), 33 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.