历史上的今天
今天是:2025年03月06日(星期四)
2020年03月06日 | MSP430G2-LaunchPad简明教程02
2020-03-06 来源:eefocus
发环境的准备包括驱动程序与开发工具两部分,本教程以Win7平台为例,Linux平台下的开发也可参考。
驱动程序
小红板自带一个免驱的USB仿真器供调试与程序烧写用途,以及一个最高支持9600bps波特率的application UART的通信接口。为避免后续开发中的奇怪问题,建议安装针对后者的驱动。驱动的下载地址为MSP-EXP430G2 LaunchPad Driver,解压后可得430cdc.cat(驱动数字签名)、430cdc.inf与LaunchPad_Driver.exe三个文件。
将小红板使用USB数据线与PC连接后,在设备管理器中会产生3个新设备,其中的MSP430 Application UART是需要安装上述驱动方可正常运行的,因此应依次进行如下的操作:【右键】-【更新驱动程序软件】-【浏览计算机以查找驱动软件】,在地址栏中填入下载并解压好的驱动程序所在路径,点击下一步即可完成安装。

最终在设备管理器中的将有三个如下图所示的设备图标。

开发工具
对于MSP430的开发工具有多种选择,IDE方案有IAR或者TI官方基于Eclipse封装的CCS。但本教程将提供一套更为简单粗暴的轻量级开发环境配置方案(mspgcc+mspdebug),可支持Windows/Linux平台开发。
工具 描述
mspgcc 开源的msp430单片机编译器,本文使用的是当前较新的8.3版本。
mspdebug 开源的msp430单片机调试器,也可用于烧写用途;可创建gdb server供gdb调试,作用类似OpenOCD,在较新版本中的mspgcc自带该工具,无需单独安装。(官方推荐的MSPFlasher也是一个不错的选择。)
make/gmake GNU make,GNU全家桶中的项目管理工具。
Git Bash/Mingw/Cygwin.. 若在Windows平台下开发,需要有一个Bash运行环境,网上有大量的安装教程,本教程不冗述。
vim/notepad++... 文本编辑器,用于代码编写,可根据个人爱好自由选择。
mspgcc & mspdebug
在TI官网的下载页面下,找到【GCC all-in-one installer】子表格中,根据自身的操作系统找到对应的下载选项即可。下载完成后将有一个齿轮图标的exe格式的安装程序。

双击该图标将进入如下安装界面

【Directory】填写自己的安装路径(本人填写的是D:mspgcc-8.3),路径不允许带空格与中文;复选框【Add binary directory %PATH%】是用于设置环境变量PATH的,我建议不勾选这个,以避免和既有的GNU全家桶存在潜在冲突;若为了使用方便且不存在上述风险亦可勾选该选项。最后勾选同意协议的选项即可完成安装。
安装完成之后,在程序根目录下的bin目录将存放如下的应用程序
$ ls
libusb0.dll msp430-elf-gcc-8.3.1.exe msp430-elf-objcopy.exe
make.exe msp430-elf-gcc-ar.exe msp430-elf-objdump.exe
MSP430.dll msp430-elf-gcc-nm.exe msp430-elf-ranlib.exe
msp430-elf-addr2line.exe msp430-elf-gcc-ranlib.exe msp430-elf-readelf.exe
msp430-elf-ar.exe msp430-elf-gcov.exe msp430-elf-run.exe
msp430-elf-as.exe msp430-elf-gcov-dump.exe msp430-elf-size.exe
msp430-elf-c++.exe msp430-elf-gcov-tool.exe msp430-elf-strings.exe
msp430-elf-c++filt.exe msp430-elf-gdb.exe msp430-elf-strip.exe
msp430-elf-cpp.exe msp430-elf-gprof.exe msp430-gdbproxy.exe
msp430-elf-elfedit.exe msp430-elf-ld.bfd.exe mspdebug.exe
msp430-elf-g++.exe msp430-elf-ld.exe readline5.dll
msp430-elf-gcc.exe msp430-elf-nm.exe regex2.dll
经常使用gcc开发的同学是不是会感觉到很熟悉呢?这也是一个完整的GNU全家桶,而且和常见的针对ARM平台的交叉编译器有着一模一样的架构,一模一样的命名风格($CROSS_COMPILE+$UTILITY_NAME);不仅有gcc、g++,包括ar、nm、ld在内的工具也一应俱全,此外还有调试与烧录程序所需的mspdebug。相较于Linux平台,Windows平台下的工具链还多了几个dll格式动态库。
由于我们没有将该bin目录添加至环境变量PATH中,因此我们还需要编写一个环境配置脚本env.sh来完成环境的配置,该脚本中不仅会修改环境变量PATH,还将封装包括CC、LD等在内的交叉编译工具链常用的环境变量供Makefile使用。在此提供一个示例脚本可直接使用,支持Windows平台的Msys(Git Bash)Cygwin与Linux。
#!/bin/sh
# ------------------------------------------------------------------------
# Author : Weilun Fong | wlf@zhishan-iot.tk
# Date : 2020-02-10
# Description: configure MSP430 build system environment
# E-mail : mcu@zhishan-iot.tk
# Page :
# Project :
# Version :
# ------------------------------------------------------------------------
# ------------------------------------------------------------------------
# Usage:
# $1: root path of mspgcc, e.g.: D:mspgcc-8.3
# $2: root path of MSP430Flasher, e.g.: D:tiMSPFlasher_1.3.20
# usage.1: source env.sh "D:mspgcc-8.3" "D:tiMSPFlasher_1.3.20"
# usage.2: source env.sh "D:mspgcc-8.3"
#
# @note: You can fill with fixed path here instead of script parameters
# ------------------------------------------------------------------------
if [ -z "$1" ]; then
echo "$0:$LINENO: error: Incomplete parameters. Try $0 ( else pMspgcc="$1" # pMspflasher="$2" fi # This is e-mail address of maintainer MAINTAINER_EMAIL=mcu@zhishan-iot.tk # Judge run environment UNAME_O=`uname -o 2> /dev/null` UNAME_S=`uname -s 2> /dev/null` if [ "$UNAME_S" == Linux ]; then ENV=Linux else if [ "$UNAME_O" == Cygwin ]; then ENV=Cygwin elif [ "$UNAME_O" == Msys ]; then ENV=Mingw else # Just support Linux/Cygwin/Mingw now. If you meet others, please report # to us. echo "$0:$LINENO: error: Unknown platform... Report to <$MAINTAINER_EMAIL>" && return 1 fi fi # Configure absolute path # specify root path of mspgcc if [ "$ENV" == Linux ]; then export SYSROOT="$pMspgcc" export PATH=$PATH:$SYSROOT/bin if [ -n "$pMspflasher" ]; then export MSPFLASHER_PATH="$pMspflasher" fi elif [ "$ENV" == Cygwin ]; then export SYSROOT="$pMspgcc" export PATH=$PATH:`cygpath -p "$pMspgcc" -a`/bin if [ -n "$pMspflasher" ]; then export MSPFLASHER_PATH="$pMspflasher" fi elif [ "$ENV" = Mingw ]; then export SYSROOT=`cygpath -p "$pMspgcc" -a` export PATH=$PATH:$SYSROOT/bin if [ -n "$pMspflasher" ]; then export MSPFLASHER_PATH=`cygpath -p "$pMspflasher" -a` fi fi if [ ! -d "$SYSROOT" ]; then echo "$0:$LINENO: error: Target path $SYSROOT is non-existent." && return 1 fi export PATH=$PATH:$MSPFLASHER_PATH # ------------------------------------------------------------ # @note: the CROSS_COMPILE value in older version is "msp430-"!!! # ------------------------------------------------------------ # export CROSS_COMPILE=msp430- export CROSS_COMPILE=msp430-elf- # modify environment variable PATH # Define toolchain export ARCH=msp430 export CC=${CROSS_COMPILE}gcc export CXX=${CROSS_COMPILE}g++ export CPP=${CROSS_COMPILE}cpp export AS=${CROSS_COMPILE}as export AR=${CROSS_COMPILE}ar export GDB=${CROSS_COMPILE}gdb export LD=${CROSS_COMPILE}ld export M4=m4 export NM=${CROSS_COMPILE}nm export OBJCOPY=${CROSS_COMPILE}objcopy export OBJDUMP=${CROSS_COMPILE}objdump export RANLIB=${CROSS_COMPILE}ranlib export STRIP=${CROSS_COMPILE}strip # ------------------------------------------------------------ # @note: some version of mspgcc toolchain don't have mspdebug # ------------------------------------------------------------ which mspdebug > /dev/null if [ $? -eq 0 ]; then export MSPDEBUG=mspdebug export DEBUG_DRIVER=tilib fi # Define command line parameters export CFLAGS="-I$SYSROOT/include" export LDFLAGS="-L$SYSROOT/include" # Check result $CC -dumpversion > /dev/null if [ $? -ne 0 ]; then echo "$0:$LINENO: error: Failed to set compile toolchain" && return 1 fi # For MSP430Flasher # export MSPFLASHER=MSP430Flasher # which $MSPFLASHER > /dev/null # if [ $? -ne 0 ]; then # echo "$0:$LINENO: error: Failed to set MSPFlasher" && return 1 # fi 脚本注释中的usage有相关的使用说明,如: source env.sh "D:mspgcc-8.3" 唯一的一个脚本输入参数为mspgcc安装位置,即bin目录的父目录。需要注意的是务必使用source命令运行该脚本以生效相关的参数。最后输入如下命令查看mspgcc工具链是否已经正确配置(实际上上文的示例脚本中已带自我检测功能): $ $CC --version msp430-elf-gcc.exe (Mitto Systems Limited - msp430-gcc 8.3.1.25) 8.3.1 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 至此开发环境即完成配置。
史海拾趣
|
网上有老外做的LED旋转显示屏,在技术上软硬件都不难,只需要花些时间慢慢调就能出来。关键是,给旋转的LED供电,对电子爱好者来说,是个麻烦事。 这里,给出一个不需要给LED电路供电的方法。即让LED和单片机电路固定不动,而是旋转一面镜子。 原 ...… 查看全部问答> |
|
replyreload += \',\' + 375296; 本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑 Timson,如果您要查看本帖隐藏内容请回复 … 查看全部问答> |
|
pxa270-s自定wince内核为何不识别activesync和usb鼠标? 使用的博创的intel xscale pxa270-s的实验平台 ,用pb5.0定制了mobile handler的内核,内核设置时选择了activesync,同时将博创的bsp(光盘提供的)板级支持包里的各个组件依次添加到了os design中,sysgen后得到的nk.bin传到板子上出现了wince的 ...… 查看全部问答> |
|
我的主板配置是pxa270+wce50,现在主板有个问题是usb device有点问题,MS activesync连接不上,通过查看PXA270的USBC_P,USBC_N两脚的信号,好像不对,但感觉查这两个信号也无法确定问题,其实USB device电路应该很简单,没有什么东西,但就是不通, ...… 查看全部问答> |
|
while ((IFG1 & UTXIFG0)==0); 停止怎么解决? 初始化函数: void S_Init() { P6SEL&=~(SCK+SDA+SVCC); //选择P6.3 P6.4 为IO端口输出, P6.5输入 P6DIR|=(SCK+SVCC); P6DIR&=~SDA; BCSCTL1=(XT2OFF+RSEL2 ...… 查看全部问答> |
|
国标字库显示 http://hi.baidu.com/liangsir168/blog/item/0592c515ad722112c93d6d1a.html UCDOS中的点阵字库HZK12,HZK16,HZK24,ASC12,ASC16 如何在嵌入式系统中使用大 ...… 查看全部问答> |
|
电容,作为电子电路的又一基本元器件,大家也是熟悉不过的了。下面我们谈谈电容的一些基本应用及注意事项。但是,由于电容的应用非常广泛,未必能面面俱到,如果有网友觉得没有谈到的地方,希望公共完善。 1. 概念 电 ...… 查看全部问答> |




