完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Kinetis L是飞思卡尔32位微控制器/单片机,基于ARM® Cortex®-M0+内核,集成了丰富的功能和特性,具有出类拔萃的低功耗性能和扩展性。
飞思卡尔kinetis L系列芯片仅支持Serial Wire Debug(SWD)调试端口,支持2个断点和2个数据监测点;SWD端口包括SWD_CLK和SWD_DIO,SWD_CLK为串行线时钟,内部上拉,SWD_DIO为调试数据输入/输出,内部上拉。 通过ARM Debug Access Port(DAP),调试器可以访问控制单元和以及状态寄存器。这些寄存器也包含了一些额外用于控制低功耗模式恢复以及正常运行控制的寄存器位。MDM-DP可以作为DAP1访问,它包含了状态寄存器、控制寄存器以及ID标识寄存器。 地址 寄存器 描述 0x0100_0000 Status MDM-AP状态寄存器 0x0100_0004 Control MDM-AP 控制寄存器 0x0100_00FC IDR 只读ID标识寄存器,数值为 0x001C_0020 值得注意的是,DAP控制与状态寄存器并没有包含在系统存储器映射中,只能由DAP通过SWD访问。 1.MDM-AP control寄存器 位 名称 在security模式下是否可用 描述 0 flash mass erase in progress 可用 设置该位导致flash全部擦除,擦除完成自动清除此位 1 debug disable 不可用 设置该位来禁用debug,清除该位来允许debug。 2 debug request 不可用 设置该位来强制core停止 3 system reset request 可用 设置该位来强制系统复位 4 core hold reset 不可用 在复位末端保持cpu 5 VLLSx debug request 不可用 设置该位后,系统从VLLSx唤醒后,可以将core保持在复位中 6 VLLSx debug acknowledge 不可用 设置该位可以释放从VLLSx中唤醒的保持的core 7 LLS,VLLSx status acknowledge 不可用 设置该位来告知DAP LLS和VLLS状态寄存器已经被读取 8,31 reserved 不可用 2.MDM-AP status寄存器 位 名称 描述 0 flash mass erase acknowledge 当mass erase开始时,该位被置位 1 flash ready 表明flash已经被初始化 2 system security 表明系统处于security状态 3 system reset 表明系统复位状态,0系统正在复位 4 reserved 5 mass erase enable 表明MCU是否可以mass erase, 1表示可以 6 backdoor access key enable 表明MCU backdoor access key是否使能,1表示使能了 7 LP enable 表明系统是否使能低功耗停止模式 8 very low power mode 表明当前运行模式为VLPx,这一位用来调节SWD_CLK速率 9 LLS mode exit 表明已经从LLS模式退出,进入LLS后,调试器会和系统失去通讯, 当系统从LLS退出时,调试器可以重新和系统通讯 10 VLLSx mode exit 表明已经从VLLSx模式退出,进入VLLSx后,调试器会和系统失去通讯, 当系统从VLLSx退出时,由于调试器模块状态丢失,所以需要重新配置后才可以通讯 11,15 reserved 16 core halted 表明core进入了调试停止模式 17 core sleepdeep 表明core进入了低功耗模式 18 core sleeping 19,31 reserved 3.调试复位 调试系统接收到debug reset以及系统POR reset 两个复位源时会复位,debug reset即是DP 控制状态寄存器中的CDBGRSTREQ位。与此同时,调试系统也能产生系统复位,主要通过3种方式实现系统复位:写DAP控制寄存器中保持系统复位位、写NVIC应用中断和复位寄存器中SYSRESETREQ位和DAP控制寄存器中保持core位。 4.在低功耗模式下调试 在STOP和VLPS模式下,模式控制器进入一个模拟的stop模式来继续debug:稳压器继续工作、关闭除了系统时钟FCLK的所有时钟、调试模块可以访问核心寄存器却不可以访问外设寄存器 LLS模式下,debug模块停止工作,但状态保持,一旦LLS退出,debug可以继续工作,不需要重新配置;而在VLLSx模式下,debug模块被关闭,所有状态丢失,在退出VLLSx模式时,需要重新配置才能使用。 5.安全模式和debug 在security模式下,调试口只拥有受限的访问能力来防止数据修改;调试器还可以访问DP状态寄存器来决定当前设备的安全状态,对于flash操作,调试器只能执行一键擦除操作(如果FSEC MEEN使能)。 6.如何破kinetis L VLLSx+FSEC(secured)+FOPT(reset disabled, nmi disabled) 情景1:使用kinetis L系列MCU进行低功耗开发不可避免的会使用VLLSx模式,这种模式会关闭debug模块,导致debugger无法连接设备; 情景2:由于kinetis L MCU所有安全选项都存储在0x400-0x40F这段flash中,所以这段flash也就成为了重点保护对象,修改要格外小心;但是还是会有时不经意擦掉这段内容,比如用烧写工具烧写一个该段为全0的image,此时禁用了reset pin和NMI pin,并开启了security,只留下了mass erase。 对于情景1,没有任何问题,连接调试器后,调试器可以通过resert pin将芯片复位,连接上设备,进行一下一系列操作 对于情景2,可以通过调试器连接上设备,然后调用unlock kinetis(jlink)即可导致flash mass erase,解决战斗 问题来了。。。。 如果情景1和情景2同时发生怎么办? 这种情况发生的概率不小,如果进行低功耗应用开发,应用大部分时间在VLLSx里,只有很短很短的时间(短于人的反应时间)在run模式下,并不慎发生了情景2,此时因多数时间出在VLLSx下,调试想通过reset复位设备却发现reset被禁用了, 怎么办? 经过分析,只能想办法把应用hold在run模式下,即让进入低功耗模式条件不满足(比如短接一些端口神马的),然后通过调试器连接上去,相当于情景2,mass erase;大功告成。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1700个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
35808 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
3992 浏览 0 评论
5544 浏览 1 评论
6382 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
3859 浏览 0 评论
334浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
298浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
313浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
385浏览 2评论
397浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-5-3 15:22 , Processed in 0.963098 second(s), Total 71, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号