痞子衡主导的"学术"项目 《RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计》 v1.0 版发布近 4 个月了,部分客户已经在实际项目开发调试中用上了这个超级下载算法,目前反馈还可以,但这个超级下载算法远未到成熟状态,痞子衡正在策划 v2.0 版本。

  超级下载算法 RT-UFL v1.0 版本主要针对 Segger J-Link 调试器,开发测试也都是在 J-Link Commander 和 J-Flash 软件下进行的,但其实它也适用各大常用 IDE,今天我们就来聊聊它在 Keil MDK 下的使用:

一、准备测试环境

  首先需要准备好测试环境,包含必要的软件和硬件,痞子衡的环境如下:

  • 集成开发环境: Keil uVision v5.31,点此下载
  • 软件开发包: SDK_2.10.0_EVKB-IMXRT1050(Toolchain需包含Keil),点此下载
  • 软件驱动: J-Link driver v6.86f,点此下载
  • 硬件工具: J-Link Plus调试器
  • 硬件开发板: MIMXRT1050-EVKB (Rev.A1)

  上述软件环境里,J-Link 软件驱动、Keil 版本、SDK 软件包版本之间没有明确依赖关系。J-Link 软件驱动也不是一定限制在 v6.86f,只是超级下载算法 v1.0 是在这个版本下详细测试的,其他 J-Link 版本也可能适合,具体需要进一步测试。

二、在Keil MDK下使用步骤

2.1 将超级下载算法包打进J-Link驱动

  第一步其实跟 Keil 无关,因为是基于 J-Link 的超级下载算法,所以要给 J-Link 软件驱动先打个更新包,具体参照 《超级下载算法RT-UFL v1.0发布,附J-Link下安装教程》 一文。

  • Note: Keil 安装过程中会顺便在 \Keil_v5\ARM\Segger\ 路径下安装一个默认的 J-Link 驱动(版本不可控,应该是跟 Keil 版本匹配的),但为了避免不可预见的问题发生,最好自己手动安装一个明确的 J-Link 驱动版本来使用(痞子衡安装在了 C:\tools_mcu\SEGGER\JLink_V686f)。

2.2 为Keil指定包含超级下载算法的J-Link驱动

  在默认情况下,所有 Keil 工程都统一使用 Keil 安装目录下自带的 J-Link 软件驱动(假定 App 工程选项设置里仿真器选择的是 J-Link),但是我们为了超级下载算法额外安装了一个指定版本的 J-Link 软件驱动(v6.86f),因此我们需要指定 Keil 去使用包含超级下载算法的 J-Link 驱动,这里不是在 App 工程选项里设置,而是需要借助 JLinkDLLUpdater.exe 工具。

  在我们额外安装的包含超级下载算法的 C:\tools_mcu\SEGGER\JLink_V686f 目录下,有一个名为 JLinkDLLUpdater.exe 的小工具,双击这个工具,便可看到其搜索到了当前 PC 环境下安装的 IDE 列表,有我们正在使用的 Keil MDK,勾选上 Keil 便能完成 J-Link 驱动的指定。

2.3 使用Keil打开一个SDK工程

  现在我们需要一个 Keil 工程,这里我们直接打开 \SDK_2.10.0_EVKB-IMXRT1050\boards\evkbimxrt1050\demo_apps\led_blinky 工程,注意将工程切换到 flexspi_nor build,即代码 XIP 执行版本。

2.4 确保板卡处于Flash启动模式且SDK工程能够XIP

  然后将板卡供上电,确保板卡处于 NOR Flash 启动模式(Boot Mode 以及 Boot Cfg 要设置正确),然后再检查一下 Keil 工程里的 Flash 启动头是否与板卡上的实际 Flash 型号相匹配。

  • Note:要想在 IDE 设置的 Hardware Reset 复位类型下实现在 Flash 调试,上述条件必须要满足,但如果改为 Software/Core Reset 类型,则板卡启动模式以及工程里 Flash 启动头并不影响调试。

2.5 在SDK工程设置里使用J-Link下载算法

  Keil 支持非常多种类的硬件仿真器,这里我们首先需要在工程选项 Debug 下的 Use 下拉菜单里选择 J-LINK / J-TRACE Cortex,表明目标板卡上连接的是 J-Link 型硬件仿真器。选定后点击 Settings 可以识别到当前 J-Link 仿真器序列号(如果仿真器连接上 PC 的话),并且检查下 dll 版本是不是打了超级下载算法的 J-Link 驱动版本(v6.86f)。

  然后就来到了全文中最关键的设置了,工程选项 Utilities 下的 Use Target Driver for Flash Programming 选项保持勾选,但是需要将 Update Target before Debugging 这个勾选给去掉(该选项表面意思是仅当镜像文件自上一次下载后发生变化才启动新一次下载,但实测下来还有隐含功能,勾选上则一定会用 Keil 自身下载算法,不勾选则会使用 J-Link 驱动里的算法),因为我们要用指定的 J-Link 软件驱动下的超级下载算法。

  • Note: Keil 安装目录 \Keil_v5\ARM\Flash 下(或者 Pack Installer 安装的 DFP 包目录下)自带的 .FLM 格式下载算法同时适用 CMSIS-DAP 型和 J-Link 型硬件仿真器,因此哪怕连接的是 J-Link 仿真器,也可以有两种不同类型下载算法选择,这点上 Keil 与之前介绍的 MCUXpresso IDE 算法使用设计不太一样。

2.6 选择合适的超级下载算法进行在线下载调试

  还差最后一步就可以愉快地在 Flash 调试了,前一步我们在工程选项里设置完之后,再次打开工程选项时会弹出 J-Link device 选择窗口,这时候是让你选择合适的下载算法,选择完之后会在工程目录下(\SDK_2.10.0_EVKB-IMXRT1050\boards\evkbimxrt1050\demo_apps\led_blinky\mdk)生成一个 JLinkSettings.ini 文件,用文本编辑器打开这个 .ini 文件,检查 Override 为 1,然后设置 Device 的值为超级下载算法代号就可以啦。本次测试我们需要的是 MIMXRT1050_UFL_L1 算法。

  • Note: 超级下载算法具体代号详见 C:\tools_mcu\SEGGER\JLink_V686f\JLinkDevices.xml 文件,代号后缀 _L0 适用 QSPI 和 Octal Flash,代号后缀 _L1/L2 适用 Hyper Flash。

  现在我们将 J-Link 仿真器连接上板卡,点击 Keil 菜单栏 Start/Stop Debug Session 按钮(蓝圈标出的按钮)进行下载调试就可以了。注意不能使用 Download 按钮(红圈标出的按钮)去下载,因为 Download 按钮永远调用的是 Keil 自带下载算法。

欢迎订阅

文章会同时发布到我的 博客园主页CSDN主页知乎主页微信公众号 平台上。

微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:超级下载算法RT-UFL v1.0在Keil MDK下的使用的更多相关文章

  1. 痞子衡嵌入式:系统时钟配置不当会导致i.MXRT1xxx系列下OTFAD加密启动失败

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是系统时钟配置不当会导致i.MXRT1xxx系列下OTFAD加密启动失败问题. 我们知道,i.MXRT1xxx家族早期型号(RT1050/ ...

  2. 痞子衡嵌入式:FlexSPI复位方式不当会导致i.MXRT系列下OTFAD加密启动失败

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是FlexSPI复位方式不当会导致i.MXRT系列下OTFAD加密启动失败问题. 本篇是<系统时钟配置不当会导致i.MXRT1xxx ...

  3. 痞子衡嵌入式:第一本Git命令教程(0)- 索引

    大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家讲的是Git命令汇编,共12篇文章,循序渐进地介绍Git操作的完整过程. 在开始Git课程之前,需要先跟大家普及2个重要概念(四度空间.四种状 ...

  4. 痞子衡嵌入式:超级下载算法RT-UFL v1.0在恩智浦MCUXpresso IDE下的使用

    痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> v1.0 版发布近 4 个月了,部分客户已经在实际项目开发调试中用上了这个 ...

  5. 痞子衡嵌入式:超级下载算法RT-UFL v1.0在IAR EW for Arm下的使用

    痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> v1.0 版发布近 4 个月了,部分客户已经在实际项目开发调试中用上了这个 ...

  6. 痞子衡嵌入式:超级下载算法RT-UFL v1.0在Segger Ozone下的使用

    痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> v1.0 版发布近 4 个月了,部分客户已经在实际项目开发调试中用上了这个 ...

  7. 痞子衡嵌入式:超级下载算法(RT-UFL)开发笔记(1) - 执行在不同CM内核下

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是超级下载算法开发笔记(1)之执行在不同CM内核下. 文接上篇 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计&g ...

  8. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.3)- 串行NOR Flash下载算法(J-Link工具篇)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是J-Link工具下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash X ...

  9. 痞子衡嵌入式:超级下载算法RT-UFL v1.0发布,附J-Link下安装教程

    痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> 历时 8 个月终于迎来了 v1.0 版发布,因为是第一个正式版,为了保证质 ...

随机推荐

  1. TypeScript 中函数的理解?与 JavaScript 函数的区别?

    一.是什么 函数是JavaScript 应用程序的基础,帮助我们实现抽象层.模拟类.信息隐藏和模块 在TypeScript 里,虽然已经支持类.命名空间和模块,但函数仍然是主要定义行为的方式,Type ...

  2. set类型数据的操作指令

    集合无序,无下标. 1. 也可以在集合上继续添加元素. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

  3. Flask - 访问返回字典的接口报错:The view function did not return a valid response. The return type must be a string, tuple, Response instance, or WSGI callable, but it was a dict.

    背景 有一个 Flask 项目,然后有一个路由返回的是 dict 通过浏览器访问,结果报错 关键报错信息 TypeError: 'dict' object is not callable The vi ...

  4. Docker(40)- docker 实战三之安装 ES+Kibana

    背景 参考了狂神老师的 Docker 教程,非常棒! https://www.bilibili.com/video/BV1og4y1q7M4?p=16 es 前言 es 暴露的端口很多 es 十分耗内 ...

  5. Vue状态管理Vuex简单使用

    状态管理保存在store\index.js中,简单说明如下 import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export def ...

  6. 运行FreeSWITCH的命令行参数

    一般来说,FreeSWITCH 不需要任何命令行参数就可以启动,但在某些情况下,你需要以一些特殊的参数启动.在此,仅作简单介绍.如果你知道是什么意思,那么你就可以使用,如果不知道,多半你用不到. 使用 ...

  7. POJ题目 1003Hangover(叠放纸牌)

    POJ 1003 叠放纸牌 描述 您可以将多张纸牌悬在桌子上多远?如果您有一张卡,则可以创建一个最大长度为卡长的一半.(我们假设这些卡片必须垂直于桌子.)使用两张卡片,您可以使最上面的卡片悬垂在底部的 ...

  8. TP生成二维码插件

    安装 composer require endroid/qrcode 使用: use Endroid\QrCode\QrCode 然后 这个类库要改一下 在路径:你的项目路径\vendor\endro ...

  9. linux 服务器资源 监控工具

    工具一:vmstat(服务端) 一.vmstat选项参数解释 -V:显示vmstat版本信息 -n:只在开始时显示一次各字段名称 -a:显示活跃和非活跃内存 -d:显示各个磁盘相关统计信息 -D:显示 ...

  10. DevOps与CICD简介

    整体知识点 ·Devops与CI/CD简介 ·Gitlab安装与Git命令使用 ·Gitlab实现持续集成 ·Gitlab实现分支管理 ·Jenkins简介及安装 ·Jenkins插件管理及基础配置 ...