上回讲到已经成功编译了源代码,生成了可执行文件,接下来就是要连接仿真器,下载可执行文件了。mspgcc中连接仿真其用的是mspdebug(功能上类似与openocd),连接成功之后它也能够充当gdbserver的角色,开启守护进程之后我们就可以使用msp430-gdb进行调试以及下载程序了。

mspdebug之前已经从Ubuntu的源中安装过了,接下来首先插上仿真器,我用的是SEED-FET430USB,外壳被合众达包了一下而已,芯片还是TI的FET430UIF,插上电脑之后,就能识别出来,在终端中输入:

lsusb

输出下面内容:

。。。。。

Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 002 Device 003: ID 090c:c371 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.)

Bus 005 Device 004: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse

Bus 006 Device 014: ID 2047:0010 Texas Instruments

。。。

然后会在/dev目录下模拟出一个ttyxxx的终端,并且不同版本的固件模拟出的终端名称还不一样,我查了一下资料,有这么一段说法:

The V3 firmware image provides a CDC-ACM class interface, whereas the V2 image appears as a generic TI3410 serial adapter. In the following instructions, it's assumed that devices running V2 firmware appear as /dev/ttyUSB0 and devices running V3 firmware appear as /dev/ttyACM0. You may have to adjust these names to suit your system.

如果出现/dev/ttyUSB0的话,则是V2的固件版本。如果是出现/dev/ttyACM0的话则是V3的固件版本。

大家可以试一试,如果是V2的固件版本,即出现/dev/ttyUSB0的情况下是否能够连接上,至少我是连接不成功的,命令如下:

sudo mspdebug uif-d/dev/ttyUSB0

如果连接不成功的话就需要考虑将V2版本库升级到V3版本库了。官方的链接如下:

总结一下有下面几个步骤:

The libmsp430.so binary, built as explained above.

Uifv3Updater-1_00_00_00.zip -- a package from TI containing upgrade/downgrade program images.

The latest git version of mspdebug (at least commit 82ec966d5e377a66d7d904067cc227d65dccdd01).

首先需要编译出libmsp430.so的共享库,然后下载固件升级/降级的程序,然后使用mspdebug进行固件升级。下面详细介绍步骤:

1. 编译libmsp430.so

sudo apt-getinstall quilt libboost-dev libboost1.46-dev

sudo apt-getinstall libboost-thread-dev libboost-filesystem-dev

sudo apt-getinstall libboost-date-time-dev libboost-system-dev

接下进行源码的编译安装:

unzip slac460e.zip

cd MSP430.DLLv3_OS_Package

make

编译过程中会遇到如下Error:

DLL430_v3/src/TI/DLL430/MessageData.cpp:113:33: error: 'memcpy' was not declared

参考了这篇链接:

这里需要稍微修改一下源代码:

在MSP430.DLLv3_OS_Package/DLL430_v3/src/TI/DLL430/MessageData.cpp中添加#include

在MSP430.DLLv3_OS_Package/DLL430_v3/src/TI/DLL430/EM/Sequencer/Sequencer430.h中添加#include

再次make之后就能编译通过,然后将源代码顶层目录下生成的libmsp430.so拷贝到系统库目录中,同时刷新共享库cache:

sudo cp libmsp430.so/usr/local/libsudo ldconfig

2. 下载固件升级/降级程序

3. 重新编译mspdebug

编译之前我们需要将ubuntu中已经安装的mspdebug包卸载,并且安装编译所需要的一些开发包。

sudo apt-getremove mspdebug

sudo apt-getinstall libreadline-dev

下载教新版本的mspdebug,我下载的是0.21,链接如下:http://sourceforge.net/projects/mspdebug/,接下来就是一系列的操作:

tar xvf mspdebug-0.21.tar.gz

cd mspdebug-0.21

make

sudo make install

4. 升级固件

首先最好做一个当前仿真器固件的备份:

sudo mspdebug uif-bsl-d/dev/ttyUSB0"hexout 0x2500 0xdb00 old-v2-firmware.hex"

MSPDebug version 0.18 - debugging tool for MSP430 MCUs

Copyright (C) 2009-2011 Daniel Beer

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Device ID: 0xf16c

BSL version is 1.61

Reading 4096 bytes from 0x2500...

Reading 4096 bytes from 0x3500...

Reading 4096 bytes from 0x4500...

Reading 4096 bytes from 0x5500...

Reading 4096 bytes from 0x6500...

Reading 4096 bytes from 0x7500...

Reading 4096 bytes from 0x8500...

Reading 4096 bytes from 0x9500...

Reading 4096 bytes from 0xa500...

Reading 4096 bytes from 0xb500...

Reading 4096 bytes from 0xc500...

Reading 4096 bytes from 0xd500...

Reading 4096 bytes from 0xe500...

Reading 2816 bytes from 0xf500...

接下来加载V3版本的固件升级程序,注意首先将终端切换到固件升级包解压之后的目录。

mspdebug/mspdebug uif-bsl-d/dev/ttyUSB0"prog Uifv3Updater.txt"

MSPDebug version 0.18 - debugging tool for MSP430 MCUs

Copyright (C) 2009-2011 Daniel Beer

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Device ID: 0xf16c

BSL version is 1.61

Erasing...

Programming...

Writing 4096 bytes to 2500...

Writing 4096 bytes to 3500...

Writing 4096 bytes to 4500...

Writing 3374 bytes to 5500...

Writing 2 bytes to f7f0...

Writing 2 bytes to f7fe...

bsl: failed on command 0x3b (addr = 0x0000, len = 0x0000)

最后的是正常的,这个时候FET仿真器会自动重启并且在linux下会模拟出/dev/ttyACM0的设备,现在可以写入最新的匹配固件库了:

sudo mspdebug tilib-d/dev/ttyACM0--allow-fw-update

MSPDebug version 0.21 - debugging tool for MSP430 MCUs

Copyright (C) 2009-2012 Daniel Beer

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

MSP430_Initialize: /dev/ttyACM0

Firmware version is 30205004

MSP430_VCC: 3000 mV

MSP430_OpenDevice

MSP430_GetFoundDevice

Device: MSP430F169 (id = 0x006a)

8 breakpoints available

MSP430_EEM_Init

Chip ID data: f1 69

Available commands:

= erase isearch opt run setwatch_w

alias exit load power save_raw simio

break fill load_raw prog set step

cgraph gdb locka read setbreak sym

delbreak help md regs setwatch verify

dis hexout mw reset setwatch_r verify_raw

Available options:

color gdb_loop iradix

fet_block_size gdbc_xfer_size quiet

Type "help " for more information.

Press Ctrl+D to quit.

(mspdebug)

到这里升级就成功了。

这里请注意,我升级固件库升级了三次才成功,所以如果第一次失败请多尝试几次。

下次要连接仿真器只需要输入:

sudo mspdebug tilib-d/dev/ttyACM0

如果要开启gdb守护进程,即作为一个gdbserver来工作的话,输入:

sudo mspdebug tilib-d/dev/ttyACM0"gdb"

MSPDebug version 0.21 - debugging tool for MSP430 MCUs

Copyright (C) 2009-2012 Daniel Beer

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

MSP430_Initialize: /dev/ttyACM0

Firmware version is 30205004

MSP430_VCC: 3000 mV

MSP430_OpenDevice

MSP430_GetFoundDevice

Device: MSP430F169 (id = 0x006a)

8 breakpoints available

MSP430_EEM_Init

Chip ID data: f1 69

Bound to port 2000. Now waiting for connection...

此时启动msp430-gdb之后进行远程连接目标,即可进行gdb调试:

msp430-gdb

GNU gdb (Linaro GDB) 7.3

Copyright (C) 2011 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law. Type "show copying"

and "show warranty" for details.

This GDB was configured as "--host=i686-linux-gnu --target=msp430".

For bug reporting instructions, please see:

.

(gdb)target remote localhost:2000

Remote debugging using localhost:2000

段错误 (核心已转储)

这里出现了一个段错误,后来谷歌了一下,发现launchpad上有人已经报告了这个bug,并且已经提供了patch补丁:

Bug #891970 “msp430-gdb segmentation fault with target remote” : Bugs : “gdb-msp430” package : Ubuntu

鉴于时间精力有限,这里就不再折腾了,不过到这里已经离成功很接近了。

参考链接:

ti linux 开发环境,Ubuntu下搭建MSP430开发环境(MSPGCC)相关推荐

  1. ubuntu下搭建android开发环境(转载)

    在ubuntu下搭建android开发环境,准备学习一下android开发. 1.安装JDK        首先到oracle的官网上下载linux版本的JDK(网址为:http://www.orac ...

  2. ubuntu下搭建android开发环境(四)核心篇安装AndroidStudio、sdk、jdk

    [置顶] ubuntu下搭建android开发环境(四)核心篇安装AndroidStudio.sdk.jdk(by 星空武哥) <div class="article_manage c ...

  3. Ubuntu下搭建MPI并行计算环境

    Ubuntu下搭建MPI并行计算环境 [日期:2012-10-10] 来源:Linux社区 作者:hs794502825 [字体:大 中 小] 在这里面可以选择一个合适的openmpi安装包,此处我选 ...

  4. ubuntu下搭建erlang编程环境

    ubuntu下搭建erlang编程环境 吐槽:erlang作为一门小众语言,编程环境配置的我发疯啊,官方标配是emacs,但是我作为中毒已深的vimer实在不想换编辑器了,在尝试的途中我还试过了用ec ...

  5. linux lighttpd php,Ubuntu下搭建Lighttpd+PHP+MySQL环境

    简单的几个命令在Ubuntu下搭建Lighttpd+PHP+MySQL环境,Lighttpd是众多OpenSource轻量级的web server中较为优秀的一个.支持FastCGI, CGI, Au ...

  6. 【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解 (旧版本 | 仅作参考)

    . 基本上可以导入项目开始使用了 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21035637 ...

  7. felayman——Ubuntu下搭建PHP开发环境

    可以选择一键安装所有包,也可以一个个的安装,这里我选择一键安装. 步骤如下: 1.sudo apt-get install apache2 mysql-server mysql-client php5 ...

  8. ubuntu下搭建的lamp环境新建站点

    这几天刚装了一个ubuntu 16.04桌面版,总之来来回回几遍才基本把环境搭建好,本来用apt-get搭建,结果不知道什么原因16.04版不支持装php5 ,提示源放弃了php5版本,不得不使用ph ...

  9. mac php开发套件_Mac 下搭建 PHP 开发环境的步骤

    php 的本地开发环境,搭建很简单,成功启动三个进程就可以了,步骤如下: 1.安装服务器端编程语言:PHP,并启动 php-fpm 进程: php-fpm 2.安装 Web 服务器:Nginx; 2. ...

最新文章

  1. CES 2019开胃菜竟然是芯片,英特尔 英伟达 高通 华为 AMD已经开打!
  2. 已经到了快元旦,可是总是不自在
  3. JavaScript中Ajax源码
  4. 10双屏鼠标过不去_升级到2.0版本的双屏工作桌!家中工作高效还需利器辅助
  5. 用FFmpeg从视频截取任意一帧图片的解决办法~
  6. 归纳偏置是什么?从现实生活中观察到的现象中归纳出一定的规则,然后对模型做一定的约束,从而可以起到“模型选择”的作用
  7. linux-数据库篇-索引
  8. 《MySQL技术内幕(SQL编程)》——基础
  9. 如何把大写金额变为小写数字_如何将小写金额转换为大写金额?这几个公式你至少要学会一个……...
  10. 【剧透】2017云栖大会·北京峰会——企业云上业务优化专场
  11. 计算机在无法打开情况下怎么重置,电脑提示internet explorer无法打开internet站点怎么办...
  12. Android SystemUI 快捷开关分析
  13. 根据录入的计算公式计算_炒股还需工匠精神:请笑纳30个财务分析指标和计算方式,上市公司财务分析必备,速速珍藏...
  14. 2021年,你读了哪些不错的C++书籍?
  15. 中国首个“芯片大学”即将落地;生成对抗网络(GAN)的数学原理全解
  16. Monte Carlo tree search 学习
  17. 英语常用缩写(Abbreviations) ---一般常用缩写
  18. 冷门高性价比蓝牙耳机,不是烧友一定很少知道的五大蓝牙耳机品牌
  19. 基于STC89C52单片机实现简易计算器
  20. 面试连环炮:从HashSet开始,一路怼到CPU

热门文章

  1. 100盏灯开关问题python_100盏灯泡的开关问题
  2. html5多选题库_HTML5考试模拟题库知识分享
  3. wiegand 问题
  4. 基于安卓Android在线课程管理系统的设计(uniapp,SSM,MySQL)
  5. 帝国默认编辑器更改维百度编辑器
  6. MapStruct 一文读懂
  7. 计算机维修工中级在线阅读,计算机维修工中级资格考试笔试试题(B卷)
  8. 2017年8月微软“周二补丁日”
  9. java Float.parseFloat
  10. 举个栗子~Minitab 技巧(4):自定义缩放图形或数据显示