当前位置:  首页  >  服务器技术  >  Linux/unix  >  Linux系统

Ubuntu下搭建MSP430开发环境(MSPGCC)

最近无意间看到网友说MSP430也有了GCC编译器,即MSPGCC,欣喜之余我也开始想到,那在Linux下开发MSP430也不远了。谷歌了一端时间,找到MSPGCC的Wiki:http://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=MSPGCC_Wiki,并且在Ubuntu下已经有编译好的安装包,说到这里,其实本人并不是太喜欢从U

最近无意间看到网友说MSP430也有了GCC编译器,即MSPGCC,欣喜之余我也开始想到,那在Linux下开发MSP430也不远了。谷歌了一端时间,找到MSPGCC的Wiki:http://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=MSPGCC_Wiki,并且在Ubuntu下已经有编译好的安装包,说到这里,其实本人并不是太喜欢从Ubuntu的源中安装这些工具链,我更倾向于MSPGCC官方发布的工具链,不过官方的工具链找了好久都没有找到,因此现在就暂时先用Ubuntu的安装包吧,上面的链接中找到Ubuntu的链接,https://launchpad.net/ubuntu/oneiric/+search?text=msp430,lp上有6个包,分别是

msp430-libc:
Standard C library for TI MSP430 development
430的C标准库
mspdebug:
debugging tool for MSP430 microcontrollers
430的调试工具,用来连接仿真器
msp430mcu:
Spec files, headers and linker scripts for TI's MSP430 targets
430的头文件以及链接脚本
binutils-msp430:
Binary utilities supporting TI's MSP430 targets
430的二进制工具包
gcc-msp430:
The GNU C compiler (cross compiler for MSP430)
430的GCC编译器
gdb-msp430:
The GNU debugger for MSP430
430的GDB调试器
关于这些包的作用以及它们与GCC的关系可以参考下面这篇帖子,个人觉得讲的非常好。
http://cms.mcuapps.com/techinfo/toolchains/gcc/
我们一并装上!在终端中输入:

 

sudo apt-get install msp430-libc mspdebug msp430mcu binutils-msp430 gcc-msp430 gdb-msp430
不过装的过程中出现了一些小插曲,会出现如下错误:
dpkg:处理 /var/cache/apt/archives/gdb-msp430_7.2~mspgcc-7.2-20110612-1ubuntu1_i386.deb (--unpack)时出错:
正试图覆盖 /usr/share/gdb/python/gdb/__init__.py,它同时被包含于软件包 gdb 7.4-2012.04-0ubuntu2.1
正在处理用于 man-db 的触发器...
在处理时有错误发生:
/var/cache/apt/archives/gdb-msp430_7.2~mspgcc-7.2-20110612-1ubuntu1_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
这里的意思应该是gdb-msp430包中的安装文件会覆盖掉gdb包中的文件,这里参考了这篇博客:
http://mitchtech.net/cross-compiling-for-ti-msp430-launchpad/
上面说是直接覆盖就可以了,因为两个东西本质上是一样的,在终端输入:

 

sudo apt-get-o Dpkg::Options::="--force-overwrite" install gdb-msp430
接下来会看到如下信息:
dpkg:警告:由于开启了 --force 选项,以下问题被忽略:
正试图覆盖 /usr/share/gdb/python/gdb/__init__.py,它同时被包含于软件包 gdb 7.4-2012.04-0ubuntu2.1
dpkg:警告:由于开启了 --force 选项,以下问题被忽略:
正试图覆盖 /usr/share/gdb/python/gdb/types.py,它同时被包含于软件包 gdb 7.4-2012.04-0ubuntu2.1
dpkg:警告:由于开启了 --force 选项,以下问题被忽略:
正试图覆盖 /usr/share/gdb/python/gdb/printing.py,它同时被包含于软件包 gdb 7.4-2012.04-0ubuntu2.1
dpkg:警告:由于开启了 --force 选项,以下问题被忽略:
正试图覆盖 /usr/share/gdb/python/gdb/command/__init__.py,它同时被包含于软件包 gdb 7.4-2012.04-0ubuntu2.1
dpkg:警告:由于开启了 --force 选项,以下问题被忽略:
正试图覆盖 /usr/share/gdb/python/gdb/command/pretty_printers.py,它同时被包含于软件包 gdb 7.4-2012.04-0ubuntu2.1
正在处理用于 man-db 的触发器...
正在设置 msp430mcu (20110613-3) ...
正在设置 binutils-msp430 (2.22~msp20110716p5-1) ...
正在设置 gcc-msp430 (4.5.3~mspgcc-20110716-4) ...
正在设置 msp430-libc (20110612-2) ...
正在设置 mspdebug (0.18-1) ...
正在设置 gdb-msp430 (7.2~mspgcc-7.2-20110612-1ubuntu1) ...
到这里表示安装成功。
接下来新建一个文件编译,内容如下:

 

/* Blink LED example */
 
#include
 
/** Delay function. **/
delay(unsignedint d){
int i;
for(i =0; i<d; i++){
nop();
}
}
 
int main(void){
WDTCTL = WDTPW | WDTHOLD;
P1DIR =0xFF;
P1OUT =0x01;
 
for(;;){
P1OUT =~P1OUT;
delay(0x4fff);
}
}
终端中输入:

 

msp430-gcc -Os-mmcu=msp430g2553 -o led.elf led.c
编译成功!关于在线调试以及eclipse+msp430-gdb的调试敬请期待。
吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有