5. 编写代码:此刻,用户可以来简单地理解一下mBedTest项目,任何基于SMeshStudio的mBed项目的代码都由三部分组成,具体列表如下: l mBed核心库,即Project Explorer视图中的Contiki目录,该目录下有两个文件夹,一个是core,里面放的是mBed独立于硬件部分的实现;另外一个是variant,里面放的是mBed和硬件相关的实现,其中一个是cmsis,里面放的是和系统启动并和编译其相关的代码,另外一个是hal,里面放的是和具体的开发板相关的硬件抽象实现代码。 l Libraries扩展库,即Project Explorer视图中的Libraries目录,里面存放着用户导入的和特定应用相关的扩展库(由于本项目没有导入扩展库,所以本项目中并不存在该目录,但在接下来的例子中你会看到)。 l 用户项目代码,向导默认会生成两个文件,一个是和项目同名的cpp文件,用于完成项目项目,另外一个则是和项目同名的.h文件,它的内容就是包含了mbed.h文件。 接下来用户把mBedTest.cpp的内容改动如下(原先向导生成的代码只是1秒钟变换一次灯,改动后增加了输出Hello World!功能): #include"mBedTest.h" staticint count=0; DigitalOut led(LED1); int main() { while(1) { led=!led; printf("Hello World, count id =%d.\n!",count++); wait(1); } } 6. 编译项目:代码编写完毕后,用户可以使用Project——>Build Project编译代码,如果没有错误的话,用户就可以在控制台看到如下内容,它表示用户程序的内存使用情况,用户只要在Eclipse的Console中没有看到错误即可。 Building target: mBedTest Printing size: "E:/SMeshStudio/smeshcore/tools/gcc_arm/bin/arm-none-eabi-size" -A "E:/SMeshStudio/workspace/mBedTest/Release/mBedTest.elf" E:/SMeshStudio/workspace/mBedTest/Release/mBedTest.elf : section size addr .text 25848 0 .ARM.exidx 8 25848 .data 224 268435656 .bss 828 268435880 .heap 2048 268436712 .stack_dummy 3072 268436712 .ARM.attributes 41 0 .comment 112 0 .debug_frame 3824 0 .stabstr 118 0 Total 36123 7. 上载程序:用户编译成功后就可以使用mbed(Arduino_Contiki)——>upload sketch上载程序,如果没有问题的话,用户可以看到下面的输出结果,至此,基于SMeshStudio的简单mBed程序开发完毕(我在测试中发现,USB3.0会有问题,所以建议用户使用USB2.0端口): Starting upload using mbed loader Launching E:\SMeshStudio\smeshcore\tools\utils\fm COM(3, 115200) HARDWARE(BOOTEXECRTS, 50, 100) DEVICE(LPC1768, 0.000000, 0) ERASE(DEVICE, PROTECTISP) HEXFILE(E:\SMeshStudio\workspace\mBedTest\Release\mBedTest.hex, NOCHECKSUMS, NOFILL, PROTECTISP) VERIFY(E:\SMeshStudio\workspace\mBedTest\Release\mBedTest.hex, NOCHECKSUMS) Output: Flash Magic Version 7.66.3343 8051/XA Driver Version 3.04.3296 ARM UART Driver Version 3.11.3302 ARM Cortex UART Driver Version 4.63.3312 ARM Ethernet Driver Version 2.05.3296 ARM Cortex Ethernet Driver Version 2.07.3296 ARM CAN Driver Version 2.11.3296 (C) Embedded Systems Academy 2000-2013 All rights reserved NON PRODUCTION USE ONLY Connected Device selected Erase complete (DEVICE) Hex file programming complete (E:\SMeshStudio\workspace\mBedTest\Release\mBedTest.hex) Verify passed (E:\SMeshStudio\workspace\mBedTest\Release\mBedTest.hex) fm finished upload done 此时你就可以通过类似于AccessPort之类的串口调试工具来查看mBed的输出了,mBed默认的波特率是9600。如果出现上载不成功的情况,用户首先需要检查一下船口号的设置是否正确,如果还不行,用户可以短接GND和ISP插针,应该就可以了,上载成功后断开ISP和GND,再按RST案件,程序就应该正常工作了。
|