基于ubuntu的Launchpad(5529)开发环境搭建

来源:互联网 发布:centos搭建网站 编辑:程序博客网 时间:2024/05/16 09:15

这里写图片描述

本文参考
github chintal
在 Gentoo Linux 下開發 Launchpad MSP430 程式

注意!注意!因为之前用的旧版本的库slac460r没有问题,而最近使用slac460s无法正确识别设备,烧写不正常,所以有问题的可以下载旧版本(r版之前的)。

\

其实GUN开发环境搭建基本都是一个套路,安装交叉编译工具就可以了,然后就是烧写仿真工具了。

交叉编译工具的安装

在ubuntu下可以直接使用如下命令安装
sudo apt-get install gcc-msp430
当然也可以下载其他版本的编译器自己解压安装,本人使用的是msp430-elf-gcc
首先将压缩包解压到自己喜欢的位置,然后设置一下环境变量就可以了。

烧写软件mspdebug的安装与配置

这部是整个搭建过程最麻烦的了
首先是安装,也是一条命令的事
sudo apt-get install mspdebug

但是在使用过程中就出现问题了
在 Gentoo Linux 下開發 Launchpad MSP430 程式这篇文章中使用的平台是MSP430G2,板子上的eZ-FET固件是rf2500版的,mspdebug是支持这个固件的,可以直接通过相应的命令打开调试器,然而我用的F5529固件是其他版本的,mspdebug不支持,这里需要更新一下libmsp430.so。

下载源码slac460s.zip选择MSPDS-OPEN-SOURCE下载。
编译libmsp430.so还需要hidapi.h、hid.o两个文件,由hidapi编译获得,hidapi是一套关于hid设备的函数库,比如键盘、鼠标等设备都属于hid设备,下载hidapi源码。

另外hidapi的编译需要boost工具,使用以下命令安装boost工具:

sudo apt-get install libboost-thread-dev
sudo apt-get install libboost-filesystem-dev
sudo apt-get install libusb-1.0-0-dev libudev-dev

解压hidapi-0.8.0-rc1.zip,进入hidapi-0.8.0-rc1目录,输入以下命令配置编译:

./bootstrap
./configure CFLAGS='-g -O2 -fPIC'

-fPIC选项表示编译的动态链接库是地址无关的,64位系统不加此选项会报错。

然后解压slac460s.zip,将hidapi.h、hid.o两个文件添加到slac460s相应的目录。
- hidapi/hidapi.h to ThirdPary/include
- libusb/hid.o to ThirdParty/lib64
我的系统是64位,32位复制到ThirdParty/lib/目录

进入slac460s目录,修改一下Makefile中HIDOBJ的值,重新设置使用的hid库:
"HIDOBJ := $(LIBTHIRD)/hid-libusb.o" 改为 "HIDOBJ := $(LIBTHIRD)/hid.o"
然后执行make编译得到libmsp430.so,将libmsp430.so复制到/usr/lib/中即可。
可以使用以下命令进入调试模式
mspdebug tilib
这里指定了使用的固件是tilib,tilib调用的就是刚才编译的libmsp430.so。

\

到此整个开发环境搭建完成下面附上一个简单的LED闪烁例程的源码以及Makefile

\

main.c

#include <msp430.h>/* * main.c*/int main(void) {        volatile int i;        WDTCTL = WDTPW | WDTHOLD;>      // Stop watchdog timer        P1DIR = 0x01;        P1OUT = 0x00;        while (1) {                P1OUT ^= 0x01;                for (i = 0; i < 0x6000; i++) {}        }        return 0;}

Makefile

PROJ = bllSUPPORT_FILE_DIR = /opt/ti/msp430/gcc/includeCROSS_COMPILE = msp430-elf-DEVICE  = msp430f5529DEBUG_DRIVER    = tilibCC  = $(CROSS_COMPILE)gccLD  = $(CROSS_COMPILE)ldGDB = $(CROSS_COMPILE)gdbCFLAGS  = -I $(SUPPORT_FILE_DIR) -mmcu=$(DEVICE) -O2 -gLFLAGS  = -L $(SUPPORT_FILE_DIR)OBJS     = main.oOBJS    += a.o.PHONY : clean allall : $(OBJS)    $(CC) $(CFLAGS) $(LFLAGS) -o $(PROJ).elf $(OBJS)clean :    rm -rf *.elf *.o *.outerase :    mspdebug $(DEBUG_DRIVER) "erase"upload :    mspdebug $(DEBUG_DRIVER) "prog $(PROJ).elf"
0 0
原创粉丝点击