我们的调试固件一般都是从nxp官网下载的。nxp.com/opensda。但有时我们想根据自己的要求修改bootloader和固件的源代码。因此我们引入开源项目daplink。Arm Mbed DAPLink 是一个开源软件项目,可以对在 Arm Cortex CPU 上运行的应用软件进行编程和调试。DAPLink通常称为接口固件,它运行在连接到应用MCU的SWD或JTAG端口的辅助MCU上。
它提供k20引导加载程序和接口固件以及k26引导加载程序和接口固件。很多frdm板子使用k20作为调试器,也有少数板子使用k26作为调试器。
开发板: FRDM-K64
操作系统: WIN10
steps:
1.安装git、python2.7.11以上版本,将这两个软件添加到电脑系统环境变量中(必需),最好将python下的scripts文件夹添加到环境变量中,安装keil。DAPlink目前仅支持keil IDE 。
2.使用python安装pip,可以网上搜索教程
3.安装virtualenv,使用powershell(按住shift并单击鼠标右键),输入'pip install virtualenv'
4.之后命令都在powershell下完成。获取源代码。
输入' git clone https://github.com/mbedmicro/DAPLink '
注意:必须使用git下载代码,否则编译代码将失败。
它将在您的当前目录中生成一个 DAPLink 文件夹
5.进入目录。输入 'cd DAPLink' ,此文件夹下的 docs/DEVELOPERS-GUIDE.md 更详细地介绍了如何使用此 DAPLink
6.Create a virtual environment,Input ’virtualenv venv’
7.输入'venv/Scripts/activate.bat'来激活虚拟环境
8.安装必要的工具, 'pip install -r requirements.txt'
9.生成keil工程,
输入“progen generate -t uvision”
它将生成 projectfiles/uvision,进入该文件夹你会发现各种引导加载程序和固件。名字带‘bl’的是bootloader,名字带‘if’的是接口固件,要拖进mcu里。打开第一个关于k20的项目。编译完成后会生成一个bin文件。带有crc的bin文件就是我们要刻录或者拖拽的。对于名称“if”而言也是相同的。编译时会调用git命令。如果不将该命令添加到环境变量中,编译将会失败。
这是引导加载程序源代码
Bin文件
这是接口固件。
生成的bin文件中,‘0x’为固件地址。一般来说,DAPLink bootloader的默认固件地址是0x8000。从上图可以看到,这个宏定义的是DAPLINK_ROM_IF_START,所以我们要拖动的文件就是名称为‘0x8000’的文件。如果在引导加载程序中修改了固件起始地址,则接口固件也应进行相应的修改
把bootloader烧进k20,然后把接口固件拖进k20就可以看到这个结果了。