本帖最后由 shepherd 于 2014-6-2 22:28 编辑
以前在爱板上铜板兑换的MSP430Launchpad一直在养灰,换工作时,很多板子都存放了,只有launchpad带在身旁,各种原因就不解释了。最重要的原因——想用它。 首先解释一下选择mspgcc的几个理由: - Code Composer Studio IDE很好,特别是针对低功耗的代码审查,真的非常好。但是软件太大,也有license限制等等;
- 工作以来,遇到很多项目开发并没有直接使用编译器来开发和编写代码,而是使用eclipse+make+MinGW/Cygwin+compiler(只是可执行文件而已)来开发代码。这样的开发好处有:compiler的license可以共享,编译时间很短,就可以释放license给别人了;eclipse的开发环境便于集成别的工具,比如coverity,PolySpace等等;不同的芯片或者编译器共用一套开发环境。
- 随着工作时间的累积,越来越觉得Linux/Unix的好处,也越来越想转移到Unix平台了,也在爱板上购买和使用过RaspberryPi,也准备在上面开发了。
综上,促使在Linux平台上折腾这个工具,首先我的系统安装在移动硬盘上,只需要修改启动顺序就可以启动Ubuntu,另外为了便于编辑帖子和其他原因,又在Windows下虚拟机安装Ubuntu。 1. 工具链搭建
要安装工具我都习惯去官网,TI官网的导航,直接就会进到MSPGCCWiki网站上MSPGCC Wiki其中又会有导航到Ubuntu系统的工具链MSP430 Search packages,如果正常的话会出现几个安装包的图标。在我第一次打开的时候,这个网页一直显示错误。这是我这么多天折腾原因的一部分。
我自己也想当然的认为是已经失效了,只能google别人的教程了。搜索到一篇,看起来还不错,就决定用它了。Programming the MSP430 Launchpad on Ubuntu
按照帖子的内容直接apt-get install,所需要的几个包(package)是
- binutils-msp430
- gcc-msp430
- msp430-libc
- mspdebug
- sudo apt-get install binutils-msp430 gcc-msp430 msp430-libc mspdebug
复制代码
Enter之后就是会出现查找安装界面,如下图
安装包也算比较大了,下载速度就看你的网络了。 工具安装好了,那就把LaunchPad连到电脑上,因为是要到虚拟机的Ubuntu操作,因此需要把Windows的USB共享给虚拟机,操作很简单如下图:
连接之后,虚拟机可能会死很长时间,这时候,只要拔插一下USB线,再连接就好了(在实际的Ubuntu的系统不会出现这个问题)。 但是会出现以下出错界面,原因至今未知。
我Ctrl+C的命令回到命令行。用lsusb命令能找到Texas Instruments的USB设备,证明电脑认这个USB接口。
按照网页的作法,我也测试一下: 得到debug界面
跟随者原作者的步骤- <p class="MsoNormal">md 0xf800 2048</p>
复制代码出现了下面这幅界面
结合出现的字符和刚才的命令,猜测md命令(对MSP430还不是很熟,也是第一次用Linux来编译调试单片机,很多时候都是要猜)应该是用来查看地址的,0xf800应该是起始地址,2048是大小,只不过输出太多了,前面的就被刷掉了。测试几次,用了下面的命令证实猜测。
按照网页的介绍,这就证明工具链安装完成了。接下来可以写点程序了。
2. 写程序 创建test.c并且别写程序。如下图,就是一段LED闪烁程序。
编译程序 - msp430-gcc –mmcu=msp430x2553 –o test.elf test.c
复制代码编译的命令来自网络,我只是把mcu改了,结果是一大串的错误,第一次嘛还是很正常的,根据错误和提示来一个个的查找问题。
首先第一条警告是io.h被废除了,建议改成msp430.h。果断修改文件。
现在养成的习惯是,修改程序的时候,多数采用注释,害怕不知道自己改了什么。修改头文件,再编译
刚才的警告消失,证明修改还是有效的。现在第一条警告的是不认识编译命令中-mmcu=msp430x2553了。 这时我猜测gcc没有找到msp430的include路径 调用命令查找环境变量,echo $PATH,果然不出所料,系统路径下没有msp430相关的路径。
查找msp430的安装路径,采用命令安装,所以我也不知道装哪去了,忽然发现还是自己安装的时候指定路径比较好。当然也不用怕,用户安装应该会在/usr路径下,果然找到了msp430。
查看一下里面的内容,include里面就是包含了所支持的所有msp430芯片的头文件,能找到msp430g2553.h
要添加系统环境变量,google出来一堆的方法,我选用下面这种,查找用户路径下的.bashrc cd ~ 回到用户根目录,再用文本编辑程序编辑就能找到,注意可以用tab键帮助查找。
在文件的最后添加,如下图:
按照要求,修改环境变量需要重启。(好像不是指系统重启,但是我不会操作,图方便系统重启一下)。 重启完成后,进入程序的目录用编译命令编译程序,这次我修改了-mmcu=msp430g2553,因为刚才我能够找到这个头文件,能够指定编译是最好的。果然编译成功了。ls一下果然找到了test.elf。
下载程序,首先还是 mspdebug rf2500 然后 prog test.elf 程序下载完成,如红框所示
运行一下 run
程序运行了,但是我的LED灯咋不闪呢?原因可以分成两部分:程序出错或者下载出错 。代码很简单没有错误,下载出错原因就难找了。 下载出错可能是debug出错嘛,那就到mspdebug的网站去找找原因:
MSPDebug
是不是我的MSP430/V3firmware出错了呢?按照网页的信息查看一下
是V3版本没错啊,这时又重新mspdebugrf2500 此时发现在InitializingFET过不去了。
网络也搜索不到这段错误的原因,在mspdebug的网页上找到
但是我的固件已经是V3 ,在链接MSP Debug Stack里有这么一段解释
MSPDS掌握着下载代码生杀大全,跟现在的症状很像,不管三七二十一按照指示,安装编译并且配置了一遍还是没用。(编译过程很复杂,花费了半天时间,由于基本没有关系,所以在此就不列出了。) 一切又回到起点了,只好继续在google了看有没有和我出现过同样的问题,搜索MSP430 Launchpad Ubuntu,找到另一篇帖子Cross-Compiling for TI MSP430 Launchpad看到密密麻麻的安装那么多package,我直接搜索msp430
看到他安装的msp430好像比我的多,检查发现他多安装了gdb-msp430 和 msp430mcu 果断安装上,然后就好了,此时才回想起一开始的时候,编译找不到头文件,应该是和没有安装msp430mcu有关,而“无法运行”可能和gdb-msp430有关,而具体什么原因等待以后慢慢折腾找出来吧。
这是端午节假期的成果,也是这半个多月的成果。稍作小结。,正式的安装步骤,稍后再编辑分享吧。
|