马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 alicepeter 于 2015-8-25 21:43 编辑
Crazyflie是软件硬件都开源的微型四轴飞行器,在微型四轴里面是比较极客型的四轴,目前有1.0和2.0两代。 Crazyflie2.0的系统结构如下:
官方的程序是在Linux下用eclipse开发的,下载和调试用的是ST-Link。下面写一下在windows平台下如何用J-Link来给nRF51822和STM32F405RG烧写程序。 1.给J-Link刷高版本固件 nRF51822用的Cortex-M0的内核,低版本的J-Link固件识别不了Cortex-M0内核,首先要给J-Link刷新固件。刷固件的教程有很多,推荐刷入出厂固件,附件中有J-Link的出厂固件,有了它J-Link想刷哪个版本就刷哪个版本。在安装sam-ba这个软件时,一定要把它带的驱动装上,不然可能会找不到芯片。然后到SEGGER下载最新版的软件,安装完成之后按一下步骤更新。 (1)启动JLink Commander,会提示要升级固件,暂时先不升级。此时可以看到识别出来JlinkV8的序列号S/N是-1,为出厂设置。 (2) 在命令行中输入“exec setsn=XXXXXXXX”。其中XXXXXXXX是8个十进制数,可以随意设定,比如说是当天的日期。需要注意的是,写入序列号后将不能通过本命令更改序列号,除非重新写入固件恢复出厂设置。退出Jlink Commander软件。 (3)断开JlinkV8后重新连接,重新启动Jlink Commander,提示升级,此时可安全升级为最新版固件。 下面是刷新好的V5.00固件的截图。
2.编译工程 可能是出于版权的考虑,crazyflie2-nrf-firmware-master这个nRF51822的工程没有添加nRF51-SDK和S110-SD-v7这个库,需要到nordicsemi官网去下载,下载完之后放分别放到nrf51_sdk和s110这两个文件夹下。注意文件解压后的路径。可以从这个工程的makefile看出这两个文件解压后应该放置的位置。 NRF51_SDK ?= nrf51_sdk/nrf51822 NRF_S110 ?= s110 CFLAGS += -I$(NRF51_SDK)/Include/ble/ble_services/ CFLAGS += -I$(NRF_S110)/s110_nrf51822_7.0.0_API/include 从上面的代码可以看出nRF51-SDK解压后nrf51822这个目录应该在nrf51_sdk这个目录下。s110_nrf51822_7.0.0_API这个文件夹应该在s110这个目录下。 如果不想自己编译这个文件,可以到附件下载
cf2.rar
(235.48 KB, 下载次数: 10)
,也可以到github上下载官方编译好的文件。 3.下载 STM32F405RG 给STM32F405RG下载程序比较简单,直接把STM-SWD接口上的SDIO和SCLK和J-Link的响应的接口连接,可以参照一下这个JLINK的SW调试模式连线方式。
PIN 1 (桔红): VCC(3.3V) (目标板上给JLINK的馈电,必须)
PIN 7 (黄) : SDIO
PIN 9 (绿) : SCLK
PIN 10(蓝) : GND (任何一个JLINK的地都可以,比如PIN12)
打开J-Flash,新建工程,在工程设置中的cpu选项中Device选STM32F405RG。
配置好之后分别打开附件中cf2loader.hex,cflie.hex这两个文件,选Target下面的connect,然后按F5下载程序。
nRF51822
这个下载程序要安装nRF5x_MDK_8_0_3_Keil4.msi这个程序,这样才能在Device下找到Nordic Semi nRF51822_xxAA这个选项。
配置好工程之后,分别打开cf2_nrf.hex、cload_nrf_v1.0.hex、nrf_mbs_v1.0.hex、s110_nrf51822_7.0.0_softdevice.hex这四个文件,按F5烧写就行了。 nRF51822的代码结构如下: +--------------+ 256k | MBS | Write protected +--------------+ 252k | Bootloader | +--------------+ 232k | | | | | | | | | | | Firmware | +--------------+ 88K | | | | | | | | | | | | | Softdevice | +--------------+ 4K | MBR | Write protected +--------------+ 0 烧写完成之后,就可以愉快的玩耍了。
|