目录
IAR配置中遇到的几个错误_happyflovef的博客-CSDN博客
原文:http://zh200581134.blog.163.com/blog/static/96010202010310536447/
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