最新版本的TinyOS2.1.1,虽然增加了更多的平台支持,比如epic、shimmer,但是这些平台都有一个共同的局限性:采用的微控制器都是低端的MSP430系列,如MSP430F149、MSP430F1611。在一些应用场合,这些处理器已经不能达到性能要求,而基于ZigBee的开发平台,如TI推出的开发套件已经开始使用高性能的处理器,并且国内一些公司,如成都无线龙也都纷纷推出基于MSP430F2618和CC2520无线收发模块,这个模块自从它诞生就很好的支持了ZigBee,因为有TI的全力支持,并且相关的演示代码TI都已经准备好了。但是,目前还没有把TinyOS移植到MSP430F2618上的先例。网上很多人说,这个移植很简单,但是为什么现在还没有成功的案例呢?或许是有的,只是我没有找到而已。那么下面就先分析一下移植的关键点:
首先,通过比较MSPF2618与MSP430F1611的datasheet可以发现,这两款芯片的存储器映射就大不相同,下图是2618的存储器组织结构
值得注意的就是code memory的起始地址以及占用空间长度、中断向量表地址映射、RAM空间的地址映射。下图是1611存储器组织图
对比可以发现,两个地址空间有很大的不同。在TinyOS中设置存储器映射的文件是在/msp430/lib/script中,不过这些只是编译时的脚本文件,直接修改这些文件并不能解决问题,所以最终的办法就是升级你的mspgcc编译工具链,其安装升级方法可以参阅我的另一篇文章Ubuntu 下TinyOS msp430 Toolchain mspgcc升级 。还有就是两种MCU相关寄存器地址的映射,主要还是USCI端口的设置,2618提供4组USCIA0/1,USCIB0/1,比1611多了两组,还有就是2618的USC1A1/B1的中断使能以及状态寄存器不再是由特殊功能寄存器设置,并且没有了mode enable registers 1/2。USCI接口的移植可以说是最繁琐也是最核心的。其他寄存器的配置可以参考数据手册。当升级了mspgcc,MSP430相关库中也已经包含了相应的头文件,需要修改的就是.platform文件中-mmcu的设置,以及版本信息的设置。
在《TinyOS在MSP430F2618上移植(二)》中将详细介绍USCI的移植。
关键字:TinyOS MSP430F2618 移植
引用地址:
TinyOS在MSP430F2618上移植(一)
推荐阅读最新更新时间:2024-11-02 06:57
基于keil的contiki系统的stm32移植
一, 全部代码的文件情况 二, keil中文件包含情况 三,源文件的修改情况 1,contiki-2.5(基于这个版本内核),在cpu/arm/stm32f103文件夹下面修改clock.c文件中的函数 void clock_init() { if (SysTick_Config(SystemCoreClock /CLOCK_SECOND)) { while(1); } } void SysTick_handler(void) {current_clock++; if(etimer_pending() && etimer_next_expiration_time() =current_clock)
[单片机]
3D打印的医学憧憬:私人订制人体器官移植
有关统计数据显示,我国每年150万器官衰竭患者中,仅有一万余人能得到器官移植,更多的人只能在等待配体的过程中病情恶化甚至离世。如果3D打印能够解决这项难题,无疑将成为最受市场关注的焦点。然而,生物信息处理、高精度打印机等是目前3D生物打印面临的最大瓶颈,解决这一系列难题,尚需时日。 随着近年来全球不断掀起的“3D打印热”,先行者们的好奇心已不满足于打印一些玩具摆件、塑料杯子等常规物品,他们将目光投向了想象空间更为广阔的生物医学领域。
尽管3D打印在生物医学市场前景广阔,但生物数据处理、合适的生物材料、打印设备研发以及打印后的活体组织存活等四大技术性问题,是当前科研工作者面临的“最难啃的骨头”。
北京工业大
[医疗电子]
U-boot-2014.04移植到MINI2440(2) Readme翻译分析
为什么要阅读README,我觉得是更加方便我们理解U-BOOT吧,尤其是在整体上的把握,当然,开发人员写了二十多万个字符,一共六千多行的README,里面有很多涉及到具体配置和使用的部分,其实这就是U-BOOT的使用说明书,这里着重关注几个部分部分,按照README的顺序,就当做英文阅读理解吧。 1. 总结(summary) 首先看看开发者对U-BOOT的定义:a boot loader for Embedded boards based onPowerPC, ARM, MIPS and several other processors, which can be installed in aboot ROM and
[单片机]
uC/OS II在ARM 上的移植体会
移植uC/OS-II的绝大部分工作都集中在os_cpu_a.s文件的移植,这个文件的实现集中体现了所要移植到处理器的体系结构和uC/OS-II的移植原理;在这个文件里,最困难的工作又集中体现在OSIntCtxSw和OSTickISR这两个函数的实现上。这是因为这两个函数的实现是和移植者的移植思路以及相关硬件定时器、中断寄存器的设置有关。在实际的移植工作中,这两个地方也比较容易出错。 OSIntCtxSw最重要的作用就是它完成了在中断ISR中直接进行任务切换,从而提高了实时响应的速度。它发生的时机是在ISR执行到OSIntExit时,如果发现有高优先级的任务因为等待的time tick到来获得了执行的条件,这样就可以马上被调度执
[单片机]
STM32 FreeModbus RTU从机移植以及UART配置
FreeModbus的具体介绍就不提了。至于为什么要移植,大概就是因为移植比较快,而且比较稳定,可以减少因为自己编写出现的漏洞。 但是FreeModbus 1.5版本是没有主机的,因此移植的时候只可以做从机。网上有几个关于Modbus主机的源代码,回头等我弄好了再更新。 ================================== 理论上来说,此处我移植了全部,但是只调试了RTU部分,因此其他部分不做赘述。 移植过程: 1.将modbus目录下所有文件拷贝加入工程。 2.对modbus中的include下的mbconfig.h进行编辑,裁剪其中需要的模块。(此处我没有进行裁剪,因此选项都是默认) 3.将
[单片机]
交叉编译并移植opencv3.0.0到arm板
问题 项目需求,交叉编译opencv,并移植到arm中。 在opencv2.0以上的版本编译都要借助于cmake工具生成Makefile 2.0一下版本才是使用configure生成Makefile 请确保宿主机已经安装cmake和cmake-gui工具,如果请自行安装 sudo apt-get install cmake cmake-qt-gui cmake-curses-gui 开发环境 开宿主机:Fedora9.0 交叉编译器:友善之臂arm-linux-gcc4.4.3 自动化编译工具: cmake version 2.8.12.2 编译 下载opencv源代码 项目官网:http://opencv.org
[单片机]
OpenCV2.0.0移植到ARM9(二)(JZ2440----S3c2440)
1、交叉编译libjpeg 为了使OpenCV能处理jpeg图像,我们必须事先交叉编译好libjpeg这里使用的版本是jpegsrc.v6b。 下载地址:https://sourceforge.net/projects/libjpeg/files/libjpeg/6b/ 这里使用的安装包:jpegsrc.v6b.tar.gz。 (1)解压、配置 jpegsrc.v6b.tar.gz放在/work/system/目录下. 解压:$tar –zvxf jpegsrc.v6b.tar.gz 进入目录:$cd jpeg-6b 在/work/system/目录下新建一个libjpeg-arm目录,命令为:$sudo mkdir
[单片机]
Android移植到iPhone 4进展缓慢
iDroid Project是一个开发团队,2010年他们曾成功将Android系统移植到iPhone 3G,第一代iPhone和iPod touch。自从去年开始,他们就一直在研究将Android移植到iPhone 3GS和iPhone 4,但似乎进展缓慢。 科技论坛ModMyI的作者Joshua Tucker采访了iDroid Project开发团队,iDroid Project的负责人Nick Pack告诉Tucker,他们从去年就开始研究将Adroid移植到iPhone 4,但由于缺乏优秀的开发者,他们的进展一直很缓慢。鉴于开发过程对技术的要求,他们还不能预计成功移植的时间。 去年iDroid Projec
[手机便携]