作者:mobiledu2502887637 | 来源:互联网 | 2017-10-27 06:30
最近无意间看到网友说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个包,分别是
Standard C library for TI MSP430 development
430的C标准库
debugging tool for MSP430 microcontrollers
430的调试工具,用来连接仿真器
Spec files, headers and linker scripts for TI's MSP430 targets
430的头文件以及链接脚本
Binary utilities supporting TI's MSP430 targets
430的二进制工具包
The GNU C compiler (cross compiler for MSP430)
430的GCC编译器
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的调试敬请期待。