版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SMeshStudio快速指博士fu 的开源软件平台,它们分别是Arduino,mBed和Contiki,它们在各自的应用领域都有着自己的优势,简单来说,Arduino重在简单易用,可以方便地连接各类传感器;mBed重在支持广泛,应用开发通用性强;Contiki重在的本地化IDE开发环境,如Arduino的开发环境过于简单,mBed只提供 ,免安装,免配置,解压后就能直接使用。SMeshStudioJava编写,并计算机中已经有了java运行环境,后解压就能直接使用。考虑到64位的逐步普及,SMeshStudio有32位和64位两个版本可以选择。多平台支持。SMeshStudio可以支持多个平台的开发,在软件上包括contiki,AVRARM,系统会根据用户的选择自动载入相应的代码和编译器。向导式项目创建。SMeshStudio提供了项目创建向导,用户只要根据向导完成项目类型、项目名称、开发板类型、程序上载端口的选择,SMeshStudio就会自动集成EclipseIDE功能。EclipseIDE功能,其中最常用的有查图形化上载。SMeshStudio集成了多种程序上载工具,用户只要在向导中完成了SMeshStudio解压下会生成两个 后的eclipse系统;另外一个是smeshcore,里面放的是各类编译器和开源软件库。用户使用eclipse\smeshstuio.exe启动,首次使用有可能产生网络警告,用户可以根据自己的需要自行选择,下图是SMeshStudio第一次启动后的欢迎页面(mBed是SMeshStudio推荐的开发平台,所以直接到了mBed资料图表图表1- Arduino是当前最流行的硬件开源系统,SMeshStudioArduinoEclipse插件开发的,所以SMeshStudio可以很方便地完成基于Arduino库的应用开发。具体过程如Eclipse项目类型:SMeshStudioEclipse开发环境基础之上,它可的项目类型选择界面并选择NewmBed(Arduino,Contiki)sketch项目类型:2-1SMeshStudio设置项目名称next继续后出现项目名称设置界面,用户在这里可以随ArduinoTest:2-2SMeshStudio用户的开发板,这一步的选择就显得非常重要。SMeshStudio开发板的软件匹配原则如下:把项目识别成mBedcontiki,SMeshStudiocontiki项目,否SMeshStudioArduino项目。为了方便用户的选择,SMeshStudio已经把以采用文件方式上载,SMeshStudio也提供了磁盘选择选项,串和磁盘盘符必须设iduinomini_r2Atmega128RFA1的ArduinoContikiSMeshStudio推荐的开发板之一:结束向导Finish结束向导,生成Arduino项目,此时系统有可能提示说这是一个C/C++项目,建议选择使用C/C++视图,用户直接选择yes并建议选择Remembermydecision:2-4SMeshStudio这样一来,用户就完成了Arduino项目的创建过程,此时,SMeshStudio2-5SMeshStudioArduino编写代码:此刻,用户可以来简单地理解一下ArduinoTestArduinoProjectExplorerArduino,该下有两个文件coreArduino统一的variant,里面放的是Arduino特定板卡的管脚定义文件pins_arduino.h。LibrariesProjectExplorerLibraries,里面存放着用户导入的和特定应用相关的扩展库,该只有在用户导入扩展库后才会存在,ArduinoTest没有导入任何扩展库,所以不存在该。个则是和项目同名的.h头文件。下面编写一个最简单的Arduino程序,其作用是每一秒输出一个oWorld!并变换LED,voidsetup(){}{}数值只要不超过100%就可以了。Printingsize:"E:/SMeshStudio/smeshcore/tools/avr/bin/avr-size"--format=avr--mcu=atmega128rfa1AVRMemory (.text+.data+.bootloader) (.data+.bss+.noinit)Finishedbuildingtarget:16:24:13BuildFinished(took单Arduino程序开发完毕:StartinguploadLaunchingE:\SMeshStudio\smeshcore\tools\avr\bin\avrdude-COM11-b57600-avrdude:AVRdeviceinitializedandreadytoacceptavrdude:Devicesignature=avrdude:NOTE:FLASHmemoryhasbeenspecified,anerasecyclewillbeperformedTodisablethisfeature,specifythe-Doption.avrdude:erasingchipavrdude:writingflash(5306bytes):avrdude:5306bytesofflashwrittenavrdude:loaddataflashdatafrominputfilecontains5306bytesavrdude:readingon-chipflashavrdude:verifyingavrdude2.2SMeshStudioArduinoavrdude2.2SMeshStudioArduino —>Addalibrarytotheselectedproject菜单后就可以得到下面的界面。Arduino 在HardwareprovidedLibraries分类下,而 提供的包括SMeshStudio自带的则al SMeshStudio支持多个软件平台,所以它在alLibraries中也Arduinoarduino开头的扩展项目的结构变化如下:图表图表2-7SMeshStudio导入扩展 #include"MxRadio.h"uint8_ti;voiderrHandle(radio_error_t{}voidonXmitDone(radio_tx_done_t{}{returnfrm;{}{}发送成功,当然也验证了Arduino扩展库的使用成功。Contiki是当前最流行的物联网操作系统之一,它具有非常强大的网络连接能力,支持IPV4/IPv6,TCP,UDP,HTTP,COAP,DNS,RPL等各类互联网标准协议,但Contiki原有的开发方式基于命令行方式,使用起来非常不便,所以,SMeshStudioArduino的开发Arduino一样方便的应用开发。具体过程如下(其实大部分过程是一样的,Arduino,mBedContiki中的一个,所以这里还是完整地重复了一:Eclipse项目类型:SMeshStudioEclipse开发环境基础之上,它可的项目类型选择界面并选择NewmBed(Arduino,Contiki)sketch项目类型:3-1SMeshStudio设置项目名称next继续后出现项目名称设置界面,用户在这里可以随ContikiTest:3-2SMeshStudio选择开发板类型next继续后出现开发板选择界面。SMeshStudio支持多用户的开发板,这一步的选择就显得非常重要。SMeshStudio开发板的软件匹配原则如下:把项目识别成mBedcontiki,SMeshStudiocontiki项目,否则SMeshStudio会把项目识别成Arduino项目。为了方便用户的选择,SMeshStudio已经把 方式上载,SMeshStudio也提供了磁盘选择选项,串 为了被识别成Contiki,所以 contiki开发板,同时也支持Contiki系统,是SMeshStudio推荐的开发板之一:结束向导FinishContiki项目,此时系统有可能提示说这是一个C/C++项目,建议选择使用C/C++yes并建议选择Remembermy3-4SMeshStudio编写代码:此刻,用户可以来简单地理解一下ContikiTestContikiProjectExplorerContiki,该下有两个文件夹,码,另外一个是tform,里面放的是和具体的开发板相关的代码。LibrariesProjectExplorerLibraries,里面存放着用户导入该,但在接下来的例子中你会看到。project-conf.h的项目配置文件,另外一个则是和项目同名的c文件。project-conf.hmac地址,具体#undefARDUINO#defineLOWPOWER0#defineRFCHANNEL26//#defineAUTOSTART_ENABLE//#defineUIP_CONF_IPV6//#defineWATCHDOG_CONF_TIMEOUT//#defineAUTO_CRC_PADDING#endif/*_t_H_*/PROCESS(leds_blink_process,"LEDsblinkBORDER_ROUERProcessPROCESS_THREAD(leds_blink_process,ev,{staticstructetimertimer;etimer_set(&timer,PROCESS_WAIT_EVENT_UNTIL(ev==PROCESS_EVENT_TIMER);//等待leds_off(LEDS_ALL);leds_on(leds_state)leds_state+=1;}MBuildingtarget:ContikiTestPrintingsize:AVRMemoryUsageDevice: 52648bytes(40.2%Full)(.text+.data+.bootloader) 12857bytes(78.5%Full)(.data+.bss+.noinit)Finishedbuildingtarget:18:07:51BuildFinished(took单Contiki程序开发完毕:StartinguploadusingmbedloaderLaunchingE:\SMeshStudio\smeshcore\tools\avr\bin\avrdude-CE:\SMeshStudio\smeshcore\tools\avr\bin\avrdude.conf-patmega128rfa1-carduino-PCOM7-b57600-avrdude:AVRdeviceinitializedandreadytoacceptinstructionsReading|##################################################|100%avrdude:Devicesignature=avrdude:NOTE:FLASHmemoryhasbeenspecified,anerasecyclewillbeTodisablethisfeature,specifythe-Doption.avrdude:erasingchipavrdude:readinginputfileavrdude:writingflash(52648bytes):Writing|##################################################|100%avrdude:52648bytesofflashwrittenavrdude:verifyingflashmemoryagainstloaddataflashdatafrominputfileinputfileE:\SMeshStudio\workspace\ContikiTest\Release\ContikiTest.hexcontains52648avrdude:readingon-chipflashReading|##################################################|100%avrdude:verifyingavrdude:52648bytesofflashverifiedavrdudedone.Thankyou.uploaddoneContikiappappContikiProcess,所图中alLibraries下mBed(Arduino_Contiki)——>Addalibrarytotheselectedproject菜单后就可以得到下面的界面:SMeshStudio支持多个软件平台,所以它在alLibraries中也 图表3-7SMeshStudio导入扩展 rpl-border-routerproject-conf-temte.txtproject-conf.h文件,该文件的内容是配合borderrouter节点使用的,其中最关键的是以下几句,解释如下:#defineRDC_CONF_MCU_SLEEP#defineAVR_CONF_USE32KCRYSTAL 必要时可以修改MAC地址,6Lon网络中的所有节点mac地址不能相同。接下来重复前面的程序上载过程,就完成了Contiki扩展库的使用,当然,如果你要想要让此节点完成网络功能,你还必须学习的知识,用户可以从 SMeshStudioContikiArduinoContikiArduino灵活,SMeshStudio的强大之处在于你可以在Contiki的基础之上使用Arduino,具体方法如下:Contiki的Arduino的扩展库ContikiArduino 也改成C++文件,即把扩展名从.c改成.cpp,然后在其中添加Arduino语法,该代码使用Arduino语法来控制灯,并使用Arduino语法读写EEPROM,具体改动如下:#include"EEPROM/EEPROM.h"{{if(readval==value)
}}SMeshStudiomBedmBed是基于Arduino理念面向ARMCORTEX-M0/3/4系列微处理器开发的快速原型开发平台,它具有极其广泛的硬件基础(它可以支持ST,NXP,NORDIC, SCALE等厂商的微软件开发框架。但的mBed只支持开发,并不符合的使用习惯,而且因为网 ,所以SMeshStudio借鉴了Arduino的开发思路,同样提供了完美的本地化开发平台,唯一的限制就是你的开发板必须支持GCC编译。其具体过程如下(其实大部分过程是一样的,但考虑到有些人只关心Arduino,mBed和Contiki中:Eclipse项目类型:SMeshStudioEclipse开发环境基础之上,它可的项目类型选择界面并选择NewmBed(Arduino,Contiki)sketch项目类型:4-1SMeshStudio设置项目名称next继续后出现项目名称设置界面,用户在这里可以随mBedTest:4-2SMeshStudio选择开发板类型next继续后出现开发板选择界面。SMeshStudio支持多用户的开发板,这一步的选择就显得非常重要。SMeshStudio开发板的软件匹配原则如下:把项目识别成mBedcontiki,SMeshStudiocontiki项目,否则SMeshStudio会把项目识别成Arduino项目。为了方便用户的选择,SMeshStudio已经把 方式上载,SMeshStudio也提供了磁盘选择选项,串 设置一项后才能继续。用户在这里可以选择xbedlpc1768,它是一块和 mbedlpc1768兼容的mBed开发板,但添加了以太网接口,TF卡接口,RF231无线射频接口以及用户按键,从而使用户可以更好地应用mBed软件平台,是SMeshStudio强烈推荐的mBed开发板:结束向导Finish结束向导,生成mBed项目,此时系统有可能提示说这是一个C/C++项目,建议选择使用C/C++视图,用户直接选择yes并建议选择Remembermy4-4SMeshStudio这样一来,用户就完成了mBed项目的创建过程,此时,SMeshStudio4-5SMeshStudiomBedmBedProjectExplorerContiki,该下有两个文件夹,mBedcmsis,里面放的是和系统启动并和hal,里面放的是和具体的开发板相关的硬件抽象LibrariesProjectExplorerLibraries,里面存放着用户导入该,但在接下来的例子中你会看到。mBedTest.cpp的内容改动如下(1秒钟变换一次灯,改动后增加了输出oWorld!功能:staticintcount=0;intmain(){{}}户只要在EclipseConsoleBuildingtarget:mBedTestPrintingsize:E:/SMeshStudio/workspace/mBedTest/Release/mBedTest.elf:080000mBed程序开发完毕(我在测试中发现,USB3.0USB2.0端:StartinguploadusingmbedloaderLaunchingE:\SMeshStudio\smeshcore\tools\utils\fmCOM(3,115200)HARDWARE(BOOTEXECRTS,50,100)DEVICE(LPC1768,0.000000,0)ERASE(DEVICE,PROTECTISP)NOCHECKSUMS,NOFILL,PROTECTISP)FlashMagicVersion7.66.33438051/XADriverVersion3.04.3296ARMUARTDriverVersion3.11.3302ARMCortexUARTDriverVersion4.63.3312ARMEthernetDriverVersion2.05.3296ARMCortexEthernetDriverVersion2.07.3296ARMCANDriverVersion2.11.3296(C)EmbeddedSystemsAcademy2000-2013AllrightsNONPRODUCTIONUSEONLYErasecompleteHexfileprogrammingcompleteVerifypassedfmfinishedupload 提供的,当用户使用mBed(Arduino_Contiki)——>Addalibrarytotheselectedproject菜单后就可以得到下面的界面。mBed 库在HardwareprovidedLibraries分类下,而第 提供的包括SMeshStudio自带的则在 alLibraries目alLibraries读去xbedlpc1768上的单总线设备ds2411,导入后,mBedTest项目 图表4-7SMeshStudio导入扩展 staticintcount=0;{charromcode[8]; //GetROM-Code{ }}9600Ds2411romisoWorld,countid oWorld,countid oWorld,countid oWorld,countid SMeshStudiomBedContikimBedIPV6Contiki的导入面向mBed的Contiki扩展库:面向mBed的Contiki扩展库存放在 下,一共有两个,一个是和硬件无关的实现mbed-contiki-base,另外一个是和 下的project-conf.h.temte文件到项目下,并改名为project-conf.h,该文件完成contiki必备的宏定义工作,其主要内容解释如下:#undefARDUINO#defineLOWPOWER0#defineRFCHANNEL26//#defineAUTOSTART_ENABLE//#defineUIP_CONF_IPV6//#defineWATCHDOG_CONF_TIMEOUT//#defineAUTO_CRC_PADDING#endif/*_t_H_*/然后,修改#ifdefcplusplus#ifdefcplusplus}PROCESS_THREAD(leds_blink_process,ev,{staticcharromcode[8]; //GetROM-Code}routerproject-conf-temte.txt的配置模板文件,用户需要用该文件中的内project-conf.hborderrouter节点使用的,其#defineRDC_CONF_MCU_SLEEP#defineAVR_CONF_USE32KCRYSTAL 必要时可以修改MAC地址,6Lon网络中的所有节点mac地址不能相同。接下来用删除会发生,然后重复前面的编译与程序上载过程,从而完成mBed之上的Contiki扩 SMeshStudioSMeshStudioGCC编译的软件都可以通过它来当然,如果你只是自己用,并不打算给它认,这应该还是可以的。下图是SMeshStudio的完整结构,其中的eclipse/eclipse_x64就是安装了就是各类软件的库及编译工具,这是用户需要关心的主要内容。图表5-1 smeshcoreHardware:其下有arduino,contiki,mbed三个,里面存放的就是各自的SDK代码库,每个下又会有cores,libraries和variants三个,分别存在着各自SDK库 着名为tform.txt和boards.txt两个文本文件,分别用于存放编译本平台的配置和libraries:privaibrary:SMeshStudio和第提供的扩展库,具体对应于哪个平台要看扩展库的前缀,如mbed开头的就是mbed的扩展库。SMeshStudio工作时会自动相应平台的tform.txt和boards.txt文件,从而确定从mbedboards.txt文件即可。下面,以添加mbedstm32f103开发板为描述一下整个过程,具体步骤如下:准 结构 已经支持stm32f103微处理器,这样用户就有可能stm32f103相关的开发板添加到SMeshStudio开发环境支持的板卡中来,用户从/mbedmicro/mbedmbed的完整库,解压后用户只需要关心其中/librariesmbedtargetsmbedstm32f103硬件相关的实现。variantsmbed-NUCLEO_F103RB,用以保存它相应的实现文件,并在之下创建cmsishal两个,这和mbed的实现是相对应的。 的 的所有内容包目录到上面的cmsis 下,并删除其中没有用的TOOLCHAIN_ARM_MICRO和TOOLCHAIN_ARM_STD两个 ,另外一定要注意的是由于Eclipse不支持.s扩展名的文件,用户需要把startup_stm32f10x.s文件改成startup_stm32f10x.S文件,即改成大小;另外 到上面的hal 关的GCCmbed_stm32f103_gcc_=MBEDNUCLEO_F103RBmakebygcc_arm mbed_stm32f103_gcc_arm.build.CC_FLAGS=-mcpu=cortex-m3-mthumb-c-Os mon-fmessage-length=0-Wall-fno-exceptions-ffunction-sections-mbed_stm32f103_gcc_arm.build.ONLY_C_FLAGS=-std=gnu99mbed_stm32f103_gcc_arm.build.ONLY_CPP_FLAGS=-std=gnu++98mbed_stm32f103_gcc_arm.build.CC_SYMBOLS=-DTARGET_STM-DTARGET_M3-DSTM32F10X_MD-DTOOLCHAIN_GCC_ARM-DTOOLCHAIN_GCC-DCORTEX_M3-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年造纸化学品:制浆助剂项目发展计划
- 2024年车用塑料件合作协议书
- 小学一年级作文我最喜欢的植物10篇
- 小学一年级下册数学基础练习题及答案
- 2024年嵌丝橡胶道口板项目合作计划书
- Thalidomide-5-piperazine-生命科学试剂-MCE
- Unit 1 词汇填空专练人教版八年级英语上册
- Tartaric-acid-disodium-dihydrate-Standard-生命科学试剂-MCE
- 2024年PCR诊断试剂合作协议书
- 2024-2025学年新教材高中英语Unit1FestivalsandCelebrations单元评估习题含解析新人教版必修第三册
- 《热泵技术》课件
- 2024年5S培训:全面优化工作场所
- 2024-2030年采购代理行业市场深度分析及竞争格局与投资潜力研究报告
- GB/T 9445-2024无损检测人员资格鉴定与认证
- 餐饮服务电子教案 学习任务4 摆台技能(2)-中餐宴会摆台
- 苏教版小学五年级数学上册《小数四则混合运算及简单计算(例14)》同步教案
- 2024-2030年医疗美容产品行业市场现状供需分析及投资评估规划分析研究报告
- 语文统编版(2024)一年级上册对韵歌 课件
- 九年级中考英语数词课件
- 幼儿园集中用餐食品安全岗位责任制度
- 食品生产企业食品安全管理人员考试题库含答案完整版
评论
0/150
提交评论