【单片机】msp430几种不同开发平台的对比

http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/

以m开头的

一些软件的下载

GCC toolchain for MSP430 download | SourceForge.net

http://sourceforge.net/develop/   gcc的官网

TinyOS (moteiv & mica)

编辑器

没有特定的编辑器,记事本类似的都行,保证所编辑的源文件是“.nc”结尾的nesC程序。

工程管理

一个目录即为一个工程,包括一个makefile檔和一个或多个“components”,组件有两种:

1.       配件(configuration):描述不同组件之间的关系;

2.       模块:(module):描述组件提供的接口中的函数功能的实验过程。

开发环境

在windows下安装cygwin环境,并在cygwin下安装TinyOS的开发工具包,其中包括

avr-binutils,        二进制代码工具

avr-gcc,          

avr-insight,

avr-libc,            

nesC-1.1.2              nesC编译器

编译、运行和下载

TinyOS支持多种硬件平台,每个硬件平台在tos/platform有自己的目录。

在应用程序的目录里/app/Blink下输入:

make tmote      //其中tmote代表的是平台种类。如果target为pc,刚生成的main.exe可

//用于GDB的调试。

上面的语句实际上是按照当前目录的makefile文件运行的,makefile檔中包含了编译、连接等。具体的实现如下:

1.ncc编译链接:  #ncc –o main.exe –target=tmote Blink.nc   //编译生成了main.exe,可以作

//PC机上的模拟之用。

2.转换: #msp430-objcopy –output-target=ihex main.exe main.ihex   //生成了main.ihex

下载:运行:  #make tmote reinstall,1          //设置网络地址为1

其中运行过程中主要的两个命令如下:

installing tmote bootloader using bsl  ####安装启动引导檔,根据开发板的不同而不同。

tos-bsl –telosb –c 7 –r –I –p C:/cygwin/opt/moteiv/tos/lib/Deluge/TOSBoot/build/tmote/main.ihex

       installing tmote binary using bsl      #####安装二进制程序。ihex与ihex.out-1文件相同

tos-bsl –telosb –c 7 –r –I –p build/tmote/main.ihex.out-1

make过程分析

其中提到的目录说明如下:(具体参照上面的图)

opt\tinyos-1.x\tos\lib  ----------------------------------------包括了用到的库函数.

opt\tinyos-1.x\tos\interfaces----------------------------------包括接口函数,

opt\tinyos-1.x\tos\platform----------包括了不同硬件平台间的配置文件.(启动引导檔在这里)

opt\tinyos-1.x\tos\sensorboards ------------------------------包括板载传感器的具体实现

可以看到所有的程序都是调用了同一个make规则,除了工程本身所在目录的makefile文件与本工程相关外,在\opt\tinyos-1.x\apps目录下的makerule文件是公用的,其中定义了选用的编译器及硬件平台的选择。

TinyOS操作系统设计思想

1.轻量级线程技术(lightweight thread)

2.主动消息通信技术(active message)

3.事件驱动模块(event driver)

4.组件化编程(component-based programming)

nesC语言把组件化/模块化思想和基于事件驱动的执行模型结合起来。

组件化:其中的组件即“Configuration”(配件)、“Module”。两个东西就像零件一样组合在一起。

模块化:

MSPGCC

编辑器

可以配置一些IDE(集成开发环境),如VIM、UltraEdit、CodeBlocks等,其中VIM是命令行的,用起来很有感觉,CodeBlocks是开源的,UltraEdit为商业软件。但不管怎么样,都是调用的mspgcc安装程序里的make.exe,调试环境是msp430-insight

工程管理

用UltraEdit可以很好的管理工程文件,在工程目录里面应该有一个makefile檔,告诉make如何去生成所要的目录文件和文件之间的依赖关系。同样,用开源的CodeBlocks也可以自己搭建一个很好的IDE,鉴于对CodeBlocks都比较熟悉,即采用之!

开发环境

在windows下安装mspgcc-2007021.exe,注意,这里最好是安装最新版的,在之前我下载的是2003版的,又很多工具都不全,导致一个人摸索了好久。

然后在CodeBlocks里的“settings”项里配置相关的compiler和debugger,最重要的部分是库函数所在的目录位置。

编译、运行和下载

编译和链接部分基本上和相同,只是分别调用的是msp430-gcc.exe、msp430-ld.exe

下载是通过msp430-downloader.exe来下载的。

make过程分析

下面是makefile文件的部分分析:

${NAME}.elf: ${OBJECTS}               #######################msp430-gcc进行编译

       msp43o-gcc.exe  -mmcu=${CPU}  -o $@ ${OBJECTS}  ####生成了 “*.elf”文件

${NAME}.a43:  ${NAME}.elf                  ##################目标文件进行转换

       msp430-objcopy -O ihex $^ $@         ##################将elf文件转换为*.a43文件

${NAME}.lst: ${NAME}.elf            ##################反汇编,生成*.lst文件,其中

msp430-objdump -dSt $^ >$@    ##################这个文件包含了c源码,汇                                   ##################编原码

download-jtag: all

       msp430-jtag -e ${NAME}.elf

download-bsl: all               #####这里的下载工具也是bsl,和TinyOS的tos-bsl类似

       msp430-bsl -e ${NAME}.elf

其中,*.a43为TI-Text格式, *.hex为Intel-hex格式.

IAR_MSP430

编辑器

IAR Embedded Workbench IDE一个瑞士开发的商用软件的,价格好象在6500.00;目前个人感觉相比开源的MSPGCC也没太大的优势。

工程管理

一个“.eww ”即为一个工程,

开发调试环境

编译、运行和下载

编译:调用“icc430.exe”编译器和已经设定好的一些参数,包括指定的动态库文件,输出文件所在的目录,具体的代码好下:

 icc430.exe -I D:\Program Files\IAR Systems\Embedded Workbench 4.0\430\INC\

-I D:\Program Files\IAR Systems\Embedded Workbench 4.0\430\INC\DLIB\

-o C:\Documents and Settings\Administrator\My Documents\Debug\Obj\

-z3 --no_cse --no_unroll --no_inline --no_code_motion --no_tbaa --debug -e --double=32

-D_DLIB_CONFIG_FILE=D:\ProgramFiles\IARSystems\EmbeddedWorkbench4.0\430\LIB\DLIB\dl430fn.h  

D:\Program Files\IAR Systems\Embedded Workbench 4.0\430\FET_examples\fet140\C-source\fet140_1.c

运行上面的命令之后,在“..\obj”目录下生成了*.r43文件。(The Obj directory is the destination directory for the object files from the compiler and the assembler. These files have the extension r43 and will be used as input to the IAR XLINK Linker.)

链接:这里调用的是“xlink.exe”,具体的代码好下:

xlink.exe  C:\Documents and Settings\Administrator\My Documents\Debug\Obj\fet140_1.r43

-o C:\Documents and Settings\Administrator\My Documents\Debug\Exe\SMC4200.d43 –I  D:\Program Files\IAR Systems\Embedded Workbench 4.0\430\LIB\

-f  D:\Program Files\IAR Systems\Embedded Workbench 4.0\430\CONFIG\lnk430F149.xcl

-f D:\Program Files\IAR Systems\Embedded Workbench 4.0\430\config\multiplier.xcl -D_STACK_SIZE=50

-rt D:\Program Files\IAR Systems\Embedded Workbench 4.0\430\LIB\DLIB\dl430fn.r43

-e_PrintfLarge=_Printf

-e_ScanfLarge=_Scanf

-D_HEAP_SIZE=50

-s __program_start

##### -o This option creates a UBROF output file, with a DE>d43DE> filename extension, to be used with the IAR C-SPY Debugger. (The Exe directory is the destination directory for the executable file. It has the extension d43 and will be used as input to the IAR C-SPY Debugger. Note that this

directory will be empty until you have linked the object files.)  <<EW430_UserGuide>> P66

下载:

在下载部分,IAR没有给出很详细的,

总结:

下面是和IAR、Jennic及TinyOS平台做的对比:  

开发工具包

IAR

Jennic

TinyOS

MSPGCC

compiler

编译器

C Compiler

icc430.exe

ba-elf-gcc.exe

ncc.exe

msp430-gcc.exe

msp430-gcc.exe

C++ Compiler

ba-elf-g++.exe

msp430-g++.exe

Linker

链接器

动态库的链接器

xlink.exe

ba-elf-ld.exe

msp430-ld.exe

静态库的链接器

?

ba-elf-ar.exe

msp430-ar.exe

Debugger

ba-elf-gdb.exe

msp430-gdb.exe

make

Make.exe

Make.exe

Make.exe

Download file

?

*.bin

*.hex.out-1 (tmote)

*.elf  *.hex  *.txt

downloader

tos-bsl

download-bsl

AVRGCC、ARMGCC和MSPGCC

IAR

ü         application and library projects.

ü          The Obj directory is the destination directory for the object files from the compiler and the assembler. These files have the extension r43 and will be used as input to the IAR XLINK Linker(<<EW430_UserGuide>> P69)

嵌入式开发,C语言不可或缺。优秀的编译器直如倚天屠龙。读书时,用过MSP430,编译器为IAR(盗版),code有2K限制。为此,曾攻读过专门以此器为背景的C语言书(蓝封面,北航社,忘其名)。此器,功能强大,调试方便,硬件寄存器皆有显示。窥430之门径,离Hello World之苦海,伴我几易寒暑,初踏嵌入式之地者,正是此器。
后,一直未曾用430。前些天,某任务要用。我重拾往日之事。IAR终为不完全盗版,破解太烦。懒,不愿做。放狗搜,见mspgcc,版本号:20081230。与gcc一脉传承,想必不错。试用几日,感觉这才是利器!
1. 正版。无限制。
GPL,天下皆知
2. 与gcc系出同源,使用方式极像。
如果用过gcc
    查看mspgcc对gcc的扩展
如果没有用过gcc
    先了解一下gcc的基本用法,比如
    gcc -o hello hell.c
    gcc -S hell.c
    等
    然后,mspgcc
其它
goto error;
3. 针对430扩展C语言,汇编能做的,他几乎都能做。
仅在此列出我认为有趣的几个,详情,查手册。
(1)堆栈
mspgcc对堆栈的设置很灵活。你可以为自己保留一定字节的RAM不被C占用。如下声明
int RESERVE_RAM(10) main()
你保留的10字节RAM。
你也可以自己写启动文件,代替标准的启动文件,自己控制进入C语言时的环境。
(2)头文件
在嵌入式开发中,一般会有针对硬件的头文件。其中为特殊功能寄存器定义等。不同的硬件环境,当然需要不同的定义。在mspgcc的开发环境中只需增加
#include <io.h>
即可。
不同的硬件如何区别?在Makefile文件中或者在编译时说明是哪种430芯片就可以了。这一点,和winavr相同。
(3)中断
中断是硬件的珍贵资源。标准C中似乎没有中断的定义,所以一般采用扩展。mspgcc提供了interrupt关键字,以及控制进入中断方式的选项。比如,下面的中断程序中没有用到诸如R4,R5等其它寄存器,却仍将其在堆栈中保护。
interrupt (ADC_VECTOR) ADC12ISR(void)
{
    ADCresult = ADC12MEM0;                // Move results, IFG is cleared
}
属性naked修饰后,裸奔。不做任何事情,甚至reti都不执行,所以,得自己控制返回。
interrupt (ADC_VECTOR) __attribute__ ((naked))  ADC12ISR(void)
{
    ADCresult = ADC12MEM0;                // Move results, IFG is cleared
    asm("reti");
}
mspgcc中扩展了下面这些属性(参考mspgcc手册)。
reserve(x)    When applied to main(), this reserves "x" bytes of RAM above the stack. This cannot be used with C++ (if C++ is supported later on).
interrupt(x)    Make the function an interrupt service routine for interrupt "x".
signal        Make an interrupt service routine allow further nested interrupts.
wakeup        When applied to an interrupt service routine, wake the processor from any low power state as the routine exits. When applied to other routines, this attribute is silently ignored.
naked        Do not generate a prologue or epilogue for the function.
critical    Disable interrupts on entry, and restore the previous interrupt state on exit.
reentrant    Disable interrupts on entry, and always enable them on exit.
saveprologue    Use a subroutine for the function prologue, to save memory.
noint_hwmul    Supress the generation of disable and enable interrupt instructions around hardware multiplier code.
(4)汇编
mapgcc支持行间汇编。只是,gcc的汇编语言似乎与TI的不尽相同。
4. 烧写
有三种方式
(1) gdb
(2) msp430-downloader.exe
(3) msp430-jtag.exe
5. 调试
当前,最新版mspgcc没有insight,只有gdb。个人感觉不如IAR直观

前些天接了个任务,要把原来在MCU430x149里面的程序移植并烧写到MCU430x1611里面去,以前没用过430,但它的鼎鼎大名早有耳闻,许多论文、报告上都提到过430。大概的搜了些资料,觉得它最突出的地方莫过于功耗小、速度快,据说以前RAM有点小,现在出了16xx,应该是可以满足一些需求了。虽说430声名在外,可上网搜了一通,却发现有用的资料不多,其实我主要是想找一下开发环境,至少程序方面并没有什么太

大的期望,一来有源代码,二来有手册和用户指南,所以在代码上问题应该不大。
   430的开发工具一般都是用的IAR,我问了周围的同事,也都这么说,于是就上网费了n大的劲下了一个IAR For 430 3.41A版的,然后破解、建工程、编译代码,谁知道这时候出问题了,原来代码是用MSPGCC环境编译的,在IAR下错误一大堆。于是就又放弃了IAR,开始搜索MSPGCC,谁知道这个东西的资料少的可怜,按理说是开源软件,用户应该多些,可情景正好相反,鲜有详细的资料,只在利达尔的论坛上有些资料,还都是一两年前的,可能是考虑到开发环境的兼容性,用IAR的占了绝大多数,反正国内用MSPGCC的不多。在摸索了几天,查了n多资料,上了n多网站后(基本上是E文的),终于建立了MSPGCC的编译与仿真环境,下面就是小弟的搭建过程,希望对像我这样的初学者或者对MSPGCC感兴趣的朋友有点用处。
1、从网上下载MSPGCC的安装包(For Windows),可以从这儿下载最新版: GCC toolchain for MSP430 download | SourceForge.net
   然后再下载20030506版本:
因为新版中没有insight 工具。
2、下载一个WinAVR,主要是为了在Windows下建立一个Linux环境,然后就不用怎么修改Makefile文件了,因为原来程序的环境就是这样建的,所以我也就装了一个,其实WinAVR对MSPGCC来说不是必须的,不过用了它的话会方便一些,并且从AVR上移植程序也方便。
3、先看一下网上的资料,像Asnake兄的Mspgccgo、yfzhcn的MSPGCC学习笔记、finewei的博客,利尔达论坛上都有,看了这些就会有个大概的了解。
4、把MSPGCC和WinAVR都装上,注意MSPGCC要先装老版本的,再装新版,这样就可以支持新MCU,比如说1611,网上也有说先装新版再装旧版的,但我装了之后就识别不了新的MCU,但如果要想用Insight的话,旧版的是一定要装的,只有旧版的才有,新版的没有GUI的调试程序。我在装了旧版的以后,就不再支持1611,如果不装的话没有问题,后来不得不一个一个文件的对比,然后用新版的覆盖。还有就是在装完MSPGCC和WinAVR以后,一定要把cygwin1.dll版本统一,直接用新的覆盖旧的就行了。
5、这些完成之后,打开WinAVR安装时自带的Programmer Notepad 2,然后打开原来的工程,也不用配置(我没有配置,就用的默认菜单配置),然后Makeall就可以了,但我在用MSPGCC的make.exe替换掉WinAVR里的make.exe以后,或者修改菜单配置以后就再也通不过编译,不知道为什么,或者是我那样做根本就不对,还请用过的前辈指点一下。
6、程序make成功以后,就可以下载或者调试了,这个可以参考Asnake兄的Mspgccgo,里面说的很详细,也有图片,我想说的就是在点击了Run   或下载以后,下载的过程很慢,并且Insight看起来像是没有响应一样,但在右上角会有一个绿色的下载进度条,这些都是正常的,千万不要以为程序死掉了。
啰唆了这么久,其实过程也很简单的,只是一个人摸索的话费点时间罢了,感觉MSPGCC还是很好用的,用过Linux或用惯了命令行的会觉得很方便的,上手也很容易,并且是免费的,最重要的是现在已经有了AVRGCC、ARMGCC和MSPGCC,程序程序移植起来很方便,呵呵,各位如果感兴趣的话,不妨也试一下,大家也可以相互交流,共同学习。

MSP430单片机问答
Q 1: 如何将msp430与5v 的系统作连结?
A 1: 可以参考我们的一份Application note:slaa148。
Q 2: 除了使用于pda 或smart phone 外,430可否使用在其它的应用中?
A 2: msp430 是一颗混合信号处理能力相当优秀的mcu,为16bit、flash架构,超低功耗的特性使其非常适合用于可携式外围,另外在于一般的meter、传感器应用及低耗电量的应用也非常合适。
Q 3: 在目前的430于数字相机及pda 中,430的主要功能为何?使用到哪些模块?
A 3: 主要使用的是timer_a 及i/o,另外随着功能的强化您可以使用adc及比较器及其它相关模块。
Q 4: 在中国是否有经销点及技术支持人员?
A 4: 有的,您可以与我们苏子杰先生联络。电话是:21-58369345。
Q 5: 我想要学习msp430,请问在软件及硬件设计上有没有更完整的范例?
A 5: 可以与我们联络或是至ti 网站:http://www.ti.com/msp430。访问网址超出本站范围,不能确定是否安全继续访问 取消访问www.ti.com/msp430。
Q 6: 我能够使用msp430 中的adc做为voice 的codec 吗?
A 6: 有的,我们有些范例就是实现voice codec,您可以与我们联络取得此范例。
Q 7: 我的系统中有一颗dsp 作为主要的运算核心,msp430 与它们的沟通能力好吗?
A 7: 相当优秀,您可以使用i2c或spi 或uart 与dsp 沟通,我们亦用范例是利用msp430做为dsp 之boot rom 做为更安全之外部程序保护。
Q 8: 听说c 语言的程序效能较为低落,msp430 的c compiler 的效能好吗?如果我想使用msp43的汇编语言作开发会不会很难学?可以在同一个项目中同时使用c 及汇编语言呢?
A 8: 可以在同一个项目中使用c及asm,其效率相当不错,您可以自行将c code转换成asm code便可以发现其除了效率外,code size 也相当的小。
Q 9: 我对于贵公司的产品很感兴趣,但是不知道价格及交期怎么样?
A 9: 关于价格及其它产品的询问及技术支持,请直接与我们联络方便得到更多更好的服务。
Q 10: 我目前使用8051 作开发,不知道这个IC 会不会很少人用?会不会不好用,模拟功能会不会不强?还要另外增加其它的硬件及线路?
A 10: 无论是在亚洲或是欧美,430均有显注的成长,另外msp430是一颗功能强大的soc,整合了模拟及数字的处理能力,所以您可以放心。
Q 11: 我有遥控器的案子要开发,但是不知道用哪一颗比较合适?在挑选ic上有没有好的建议?
A 11: 我们从最低阶的f1101到高阶的f440 均可以完成ir 的编译码,另外如果您有更多需求,如adc、如lcd 您可以选择其它的msp430 来做为您最适合的解决方案。
Q 12: 我想在仪器设计中采用mps430及有关配套组件和显示系统.不知道该片的更新时间大约是多少? 如果有相关的应用资料请寄来.谢谢北京大学姜天仕
A 12: 如果您使用MSP430F4xx 内的LCD Driver,请参考data sheet,如果使用lcm,请参考供应商的资料。
Q 13: 能否将此次的演示文稿给大家一份,好让我们有时间时仔细学习一下?
A 13: 您可以于EEPlace 上取得本次投影片,如果需要进一步的支持,请与我们联络。
Q 14: 我们一直使用PC104 嵌入式PC 或DIMM 式PC,以及单片机等开发产品。我们想用DSP来作产品。请问用DSP 来作(或开发)产品,首先需要作哪些准备工作(例如开发平台所需的软件和硬件等),大约需要多少资金。能否提供这方面的建议和方案。并提供帮助。谢谢!易碧金呈上2003.6.24
A 14: 关于DSP 的部份,欢迎您直接与我们联络。
Q 15: MSP430 可能支持MP3解码?
A 15: 目前不能,需另外搭配dsp。
Q 16: 支持的操作系统有哪些?
A 16: 目前您可以在Windows 及Linux 下开发,至于MSP430您可以使用在各种手持设备中。
Q 17: How many the most uart can be used by MSP430? How much one piece?
A 17: 硬件uart 最高到2组,另外亦可使用sw uart。
Q 18: IAR 4k c-compiler 是表示不能compiler 超过4k 的C code 吗?
A 18: 是指linker 最大只会link 4k的c source code,而在assembler 中并无此限,另外,尚有全功能的30天试用版,如果您有需要请与我们联络。
Q 19: 我在使用TI 的产品(msp-us-trf6900)遇到了一个问题。
A 19: 这蛮奇怪的,也许与您的硬件有关,请直接与我们联络来共同研究解决。
Q 20: 我无法将写好的程序重新download到msp430 上。
A 20: 这蛮奇怪的,也许与您的硬件有关,请直接与我们联络来共同研究解决。
Q 21: 我想请问一下MSP430 是否可以用软件规划呢?
A 21: 新版的iar有提供此功能。
Q 22: 请问msp430F149 的复位电路如何解决?
A 22: 使用svs ic或是直接将您的电路与我们工程师一起来研究,蛮多的情况均
是reset 电路设计不良造成reset 失效。
Q 23: msp430 与sygnal 的性能方面的对比如何?您用什么打动我放弃sygnal,使
用msp430?
A 23: MSP430 为16bit CPU核心,Flash base 的mcu,整合了数字及模拟信号的
处理能力,在强大的功能下,又具备了超低功耗的特性。所以您可以从耗电量、
数字模拟整合能力、Signal chain/SoC、Total cost 等各方向来评估MSP430 对于
您目前的设计上的帮助了。
Q 24: 我有一电路需求要侦测一电压5v~20v 及温度并记录数据且与pc 连
线监看.请问msp 430 可适用否? msp430 单价大约多少钱?
A 24: 没有问题,您可以使用MSP430 内部的ADC12 或是ADC10或是SlopeADC 搭配硬件或软件UART,MSP430 的价格从0.49 美金开始,针对您所需求
的。
Q 25: 1)Is there MMU can provide? 2) Can it support OS? 3) How to program the internel Flash? 4) Have a large code space to store datas?
A 25: 1) Please discuss with us 2) Yes,you can program it as an OS 3) very
easy, NO special instruction ,we can give you some examples for your reference.
4)Yes,Up to 60K.
Q 26: 可以问您一下关于TI的其它芯片的信息吗?
A 26: 请随时与我们联络,我们将会提供最好的支持及服务给您。
Q 27: 我同事设计的一个MSP430F1121电路上电复位不可靠, 麻烦讲述一下430
系列上电复位硬件设计注意事项。
A 27: 在F1121 上并没有SVS 的功能(在4XX系列及新推出的1XX 系列具有),
所以您可以使用具Power good 的LDO或SVS IC 以增加Reset 电位的可靠。一
般说来使用外部的RC即可,当然也可以利用简单的电路就可增加此部份的可靠
度,如果您需要此部份线路,请与我们联络。
Q 28: 低功耗是否用在工业控制场合有致命的问题,如强电磁干扰,应如何处
理? 谢谢。
A 28: 除了msp430 本身的抗ESD能力外,您亦可利用外部的线路来将外部干扰
信号滤除,如果您有需要这些线路的协助,请与我们联络。
Q 29: 请问msp430 Flash系列仿真器在原理上有什么不同吗?有没有能仿真全系
列的?
A 29: 我们MSP430 内部具有JTAG Interface,透过这个接口,您可以直接的去
access ram/rom/register 等,所以您看到的是真实的msp430 状况,包含有ADC、
Timer等。所以对430 而言,您使用的是Emulator而非Simulator,另外在MSP430
flash 家族中均具有此一功能。
Q 30: 请问FET IDE的c-complier只能complier4K吗?会不会太小呢?
A 30: 另外亦有30 天全功能的试用版本可以提供给使用者使用。您可以与我们
联系以取得更完整的数据。
Q 31: 使用C 语言超过4kb 怎么办?
A 31: 购买正式版本的C Compiler或使用免费的GCC for MSP430http://mspgcc.sourceforge.net。访问网址超出本站范围,不能确定是否安全继续访问 取消访问http://mspgcc.sourceforge.net。
Q 32: 请问在使用430 时,特别要注意哪些问题?
A 32: MSP430 是一个模块化的16 bit CPU 核心、Flash 的SoC,实现了Signal Chain on Chip,也就是说与过去其它的8bit MCU相比,您不再需要使用许多外部零件、不再需要许多额外的指令周期、不再需要外挂eeprom或占用许多的code size。所以建议您能够以设计系统的概念来使用MSP430,我想这是最重要的。
Q 33: 请告诉我,编译器的网址,我的Email:bird_mc958@163.com, 谢谢!
A 33: http://www.quadravox.com访问网址超出本站范围,不能确定是否安全继续访问 取消访问http://www.quadravox.com
Q 34: MSP430 的I/O是否带抗静电ESD保护功能。抗干扰能力如何?
A 34: 有,您可以与我们联络取得更完整的测试报告。
Q 35: msp430 有中文资料吗,在哪里可以得到?
A 35: 目前在中国有三本的MSP430 中文书可以购买。此外如果您有需要也可以
与我们进行在线的讨论:网址是www.vpdsp.com,我们提供了丰富的DSP 参考资
料及TI产品的在线讨论区。
Q 36: MSP430 I2C 接口是否可以实现Master 能力?
A 36: 可以。
Q 37: msp430 系列单片机目前的产品没有除法功能,请问以后的新产品,有没有
可能集成除法的运算功能?
A 37: 目前暂无规画,但是我们未来的产品会提升我们整体运算的效能至30mips
以上。
Q 38: MSP430 可否提供多重中断的Example code ? Web 尚未提供...
A 38: 请与我们直接联络,我们可以提供范例程序给您作参考。
Q 39: 430 该如何连接802.11A/B 做数据收集?
A 39: 在ti 的网站上,我们有提供一个关于MSP430 于internet 应用的范例,或
许您可以参考它并应用于您的案子上。该文件编号为:slaa137。
Q 40: 内建DAC 的MSP430 什么时候可以量产?
A 40: 2003 年第3Q。
Q 41: MSP430F1122 有否计划出mask type?
A 41: 目前没有,如果您有此方面的需求请与我们联络,我们可以给您相关的解
决方案。
Q 42: 有没有背板开发包(for VxWorks)或者是嵌入式LINUX的编译器提供?
A 42: MSP430GCC 有提供Linux 的编译器,http://mspgcc.sourceforge.net,您可以自行参考研究。
Q 43: 可以应用在有USB的产品吗? 如何应用Thanks?
A 43: 在20004 年我们会有关于MSP430 5xx 系列更完整的数据,希望您能与我
们保持联络。
Q 44: 请问现在有支持C 语言的MSP430 编程调试环境吗?
A 44: 有,目前有许多厂商为MSP430 开发高效能的C compiler。
Q 45: 初学者应该从那方面着手,应该注意那些问题?
A 45: 建议您可以从使用FET及参阅MSP430 相关程序开始着手。利用FET本身所提供的功能,您可以在这个平台上完成开发、模拟、烧录、除错等功能,其次MSP430 为一个模块化的SoC,也就是说您要使用何种功能,您在去分别学习及开发相关的模块即可。
Q 46: 请问当它设计在DC to DC converter 时, 效率如何?
A 46: 在实际使用上与您的电路设计会有关系,请直接与我们联络取得更完整的
资料。
Q 47: 我可不可只买FET tool 中的Emulation Cable。多少钱呢?
A 47: FET套件中含有JTAG Interface、Target board及2 个msp430 的芯片,如果
您仅需要JTAG Interface,您可以向TI的3rd party购买,价格为49 元美金。网
址是www.softbaugh.com。

【IAR编译和单片机】IAR编译和单片机的一些积累

 1、2012.4.12: IAR C编译器中如何选择才能不初始化片内RAM

               程序复位不清除变量值

用__no_init 实现:__no_init 是一个SEGMENT,是给LINKER用的,定义到不初始化的块中去。

__no_init用于禁止系统启动时的变量初始化,什么情况下需要用这个关键字使系统禁止变量的初始化,禁止变量初始化用在什么场合,为什么要这样做,有什么意义吗?

1、看门狗复位的现场恢复,如果初始化了就完全不可恢复了

2、使用nvram保存数据,需要连续记录的。


给一简单的程序,例如你做一个时钟,不希望在狗复位时丢失时间,可如此定义
__no_init unsigned char month,day,hour,minute,second;

例子:http://bbs.ednchina.com/BLOG_ARTICLE_1986896.HTM 

IAR配置中遇到的几个错误

IAR配置中遇到的几个错误_happyflovef的博客-CSDN博客

怎样最好地使用MSP430 编译器的建议

 为了避免使用低效的语言结构理解MSP430 结构的限制是重要的下面是有关怎样最好地
使用MSP430 编译器的建议
因为在MSP430 上位域类型执行缓慢所以应当仅在为了保存数据存储器空间时才使用它
用unsigned char 或unsigned int 的位屏蔽代替位域如果用户必须使用位域那么为了提高
效率使用unsigned
在其模块之外不使用的变量应当被声明为静态的static 这是因为这样将改善把它们暂
时保存在寄存器中的可能性
?1 在可能时 使用无符号unsigned 数据类型某些时候unsigned 无符号操作比signed
有符号操作执行效率更高这特别适用于除法和求模运算
?2使用 ANSI 原型对ANSI 函数的调用比对K&S 样式K&S-style 函数的调用能效率更
高地被执行参见K&S 和ANSI C 语言定义一节
?3对 16 位数据类型例如short 和unsigned short MSP430 的工作效率更高通常8 位
数据类型的使用节省数据空间但不减少代码大小MSP430 的结构不直接支持32 位数
据类型因而其效率较低
?4自动比例(scalar auto)变量常被分配在寄存器中所以只要有可能就应使用自动而
不是静态变量
?5函数的头两个参数 parameters 在寄存器中传送参见调用约定一节能因此以
参数parameters 而不是静态变量方式把自变量(arguments)传送给函数是更为有装

?6复制结构 structs 和联合unions 是耗费较大的操作应避免运行时结构/联合的
赋值带结构/联合参数的函数以及返回结构/联合的函数只要有可能应采取指向结
构/联合的指针操作
?7每当调用了函数时 声明在这些函数中具有初始值的非自动比例Non-scalar auto
变量结构联合和数组将引起运行时run-time 复制对于常数变量使用储存
类静态常量the storage class static const” 可避免这种情况

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值