当前位置: 首页 > news >正文

营销网站建设公司推荐电商设计师常用的网站

营销网站建设公司推荐,电商设计师常用的网站,重庆装修公司前十强,无极电影网首页浅析Keil MDK下串行Flash的下载算法设计-电子发烧友网 今天给大家介绍的是 Keil MDK 工具下 i.MXRT 的串行 NOR Flash 下载算法设计。 在 i.MXRT 硬件那些事系列之《在串行 NOR Flash XIP 调试原理》一文中#xff0c;痞子衡简单提了一下串行 NOR Flash 下载算法的概念…浅析Keil MDK下串行Flash的下载算法设计-电子发烧友网 今天给大家介绍的是 Keil MDK 工具下 i.MXRT 的串行 NOR Flash 下载算法设计。 在 i.MXRT 硬件那些事系列之《在串行 NOR Flash XIP 调试原理》一文中痞子衡简单提了一下串行 NOR Flash 下载算法的概念并没有介绍具体设计细节关于 NOR Flash 下载算法每个 IDE/ 工具都有自己的一套设计虽然基本设计理念是一样的但是细节方面还是有区别。上一篇痞子衡介绍了《J-Link 下算法设计》今天痞子衡就来细聊 Keil MDK 下的 NOR Flash 下载算法 一、Keil MDK5 对 i.MXRT 的支持 Keil μVision 可以说是 MCU 开发者最熟悉的 IDE 了大部分人刚开始入行嵌入式学 MCS-51 系列单片机应该都是用得 Keil C51 环境Keil μVision2早期的 Keil 还只是一个小型的独立软件公司。2005 年 ARM 收购了 Keil并于 2006 年集成了 RealView 编译器开始支持 ARM Cortex-M 处理器这便是后来的 Keil MDKKeil μVision3。 2013 年 Keil μVision5 发布与 Keil MDK4 及之前版本不同Keil MDK5 分成 MDK Core 和 Software Packs 两部分。MDK Core 主要包含 uVision5 IDE 集成开发环境和 ARM Compiler5。Software Packs 则可以在不更换 MDK Core 的情况下单独管理下载、更新、移除设备支持包和中间件更新包。 因此首次安装的 Keil MDK5 并没有直接支持 i.MXRT需要通过 Software Packs 组件来单独安装 i.MXRT 的相关软件支持包。 二、使用 Pack Installer 添加新 i.MXRT 型号支持 Keil MDK5 里默认集成了 Pack Installer在 IDE 里可以直接打开其界面手动添加所需的 MCU 主控相关软件包。软件包主要有两个Device Family Pack (DFP)和 Board Support Pack (BSP) 前者是对 MCU 芯片本身的支持后者是对 MCU 开发板的支持。 如果你不主动安装 MCU 软件包也行当你打开 SDK 里的任何一个例程以 i.MXRT1060 为例如果该例程对应的 MCU 软件包没有安装IDE 会自动触发 Pack 的安装。DFP 是必须要安装的BSP 要看你具体使用哪块板卡痞子衡用得官方 i.MXRT1060-EVK因此还需要再手动安装 NXP::EVK-MIMXRT1060_BSP 安装完 MCU 软件包后便可以正常编译 SDK 工程然后在 Flash 下载和调试了。痞子衡使用的是恩智浦官方 EVK板子上自带了 DAPLink 调试器当然除了板载调试器我们也可以外接 J-Link 调试器在 MDK 工程选项里无论选择哪种调试器其默认 Flash 下载算法是一样的都来自于 DFP 包/Keil_Packs/NXP/MIMXRT1062_DFP/12.2.0/arm/MIMXRT106x_QSPI_4KB_SEC.FLM 如果默认选择的 Flash 下载算法文件不适用你的板子那么你需要自己提供合适的算法文件(.FLM)并将其放入 MDK 安装目录下(/Keil_v5/ARM/Flash)重新打开工程选项新增的算法会自动刷新到待选算法列表还有另一种添加方式即做一个完整的 DFP 包包里包含下载算法虽然 ARM 写了详尽的文档但这种方式更适合芯片原厂去做 搞定了合适的下载算法文件最后还需要检查下两个地址范围一个是 Flash 对应的实际映射地址空间另一个是下载算法文件运行 RAM 地址空间。这点跟上一篇介绍的 J-Link 算法 JLinkDevices.xml 文件里需要填的两个地址空间设计是一致的。 三、NOR Flash 下载算法设计 Keil MDK 下 Flash 下载算法是开源的有较详细的文档文档在 arm-software 的 github 主页根据这些文档我们基本可以了解其下载算法设计细节。 算法主页https://arm-software.github.io/CMSIS_5/Pack/html/flashAlgorithm.html 3.1 下载算法模板工程 Keil MDK 提供了一个 Flash 下载算法的基础模板工程工程在 /Keil_v5/ARM/Flash/_Template/NewDevice.uvprojx该工程仅支持 MDK不支持 MDK-Lite编译除了工程设置外该模板工程仅包含四个文件: /Keil_v5/ARM/Flash/FlashOS.h /Keil_v5/ARM/Flash/_Template/FlashDev.c /Keil_v5/ARM/Flash/_Template/FlashPrg.c /Keil_v5/ARM/Flash/_Template/Target.lin拿到基础模板工程我们需要根据目标 MCU 内核类型在工程选项里将默认的 ARMCM0 内核改掉然后在 FlashDev.c 和 FlashPrg.c 里将算法 API 函数全部实现默认是空的最后编译工程生成 .FLM 即是我们要的算法文件最终 .FLM 其实是通过 After Build 里的脚本命令将 .axf 直接改名的FLM 文件本质上就是 axf 格式文件。 3.2 下载算法结构设计 算法本身结构其实很简单在 FlashDev.c 文件中有一个名为 FlashDevice 的结构体常量其原型定义在 FlashOS.h 中。该结构体主要给 IDE 提供必要的 Flash 信息其值必须根据实际板卡情况填写正确。 structFlashDeviceconstFlashDevice{ FLASH_DRV_VERS,//DriverVersion,donotmodify! NewDevice256kBFlash,//DeviceName ONCHIP,//DeviceType 0x00000000,//DeviceStartAddress 0x00040000,//DeviceSizeinBytes(256kB) 1024,//ProgrammingPageSize 0,//Reserved,mustbe0 0xFF,//InitialContentofErasedMemory 100,//ProgramPageTimeout100mSec 3000,//EraseSectorTimeout3000mSec//SpecifySizeandAddressofSectors 0x002000,0x000000,//SectorSize8kB(8Sectors) 0x010000,0x010000,//SectorSize64kB(2Sectors) 0x002000,0x030000,//SectorSize8kB(8Sectors) SECTOR_END };除了 FlashDevice 之外最核心当然是 FlashPrg.c 里的 7 个 API 函数这些 API 函数提供了实际的 Flash 擦写验功能IDE 会自动按需调用这些 API 去实现在线下载。这些 API 原型是固定的但具体函数实现是因板卡而异的。 关于算法工程还有一个不得不提的设计那就是工程选项 C/C包括 Asm下都勾选了 Read-Only Position Independent 和 Read-Write Position Independent表明下载算法本身不是使用固定地址链接而是位置无关链接也叫相对地址链接算法代码机器码是可以被放到任意地址去执行的这也是为什么你可以在例程选项里去指定 RAM for Algorithm。 3.3 下载算法 API 调用流程 当在 IDE 里启动在线下载时IDE 会先将算法文件 .FLM 里的可执行机器码加载进指定的 RAM 空间然后组合调用来实现最重要的 Flash 擦除和写入只要用户 App 被正确写入 FlashIDE 就能正常读取 Flash 里代码指令进行单步调试了。 下一篇文章痞子衡将带大家继续探究 IAR EWARM 下的下载算法设计让我们把主流 Cortex-M 集成开发环境的算法设计思路全部撸一遍看看哪家更巧妙。 至此Keil MDK 工具下 i.MXRT 的串行 NOR Flash 下载算法设计痞子衡便介绍完毕了掌声在哪里~~~ 审核编辑 黄昊宇
http://wiki.neutronadmin.com/news/451278/

相关文章:

  • 如何做网站子页建站快车优势
  • 做中国最专业的健康门户网站wap门户网站
  • 一个域名下多个网站网站最新发布址
  • 公司的网站建设价格哪些公司可以做网站
  • wap网站开发工具东莞企业网站建设预算大概多少
  • 免费网站建设网站推广wordpress手机版地址
  • 龙采科技做网站多少钱网站建设基本教程
  • 网站设计宽屏网站开发工具的功能包括哪些
  • 网站的友情链接做多少个比较合适佛山规划建设局网站
  • 江门建设建筑网站网站建设服务合同范本
  • 济南网站优化公司电话北京网站制作设计推广公司
  • 重庆做网站重庆做网站天心区网站建设公司
  • 网站平台建设策划网站设计的公司选哪家
  • 宗亲网站建设建议地图拍摄街景用什么设备拍的
  • wordpress怎样优化3一个新网站要怎么优化
  • 免费行情网站链接南京网站制作设计
  • rdm响应式网站开发校园门户网站 建设方案
  • it美工做网站今天重大新闻头条新闻
  • 东莞网站推广哪些线上营销渠道
  • 网站建设数据库建设国外设计网站怎么进入
  • 衡阳网站设计公司用python做网站的多吗
  • 给个做的网站wordpress与phpstudy安装
  • 菏泽建设职业中等专业学校官方网站青岛网站建设¥青岛博采网络
  • 建立企业网站价格网站用什么空间好
  • 找网站公司企业备案软件开发需要哪些过程
  • 做徽章的网站wordpress php文件上传
  • 目前会展相关网站的建设情况口碑营销怎么做
  • 2017网站发展趋势wordpress白天黑夜切换
  • 企业网站建设的误区主要有珠宝设计网站
  • 网站设计哪家口碑好档案信息网站建设的意义