集成开发环境-DBG
问题记录:华大 HC32F460 超频过猛导致 MCU 宕机
最近又把 MCU 给干废了,现象如下:
Load "main.axf" |
事情经过是这样的,某款产品第一版硬件的时钟源选用的是 6MHz 的外部晶振,内部倍频至 128MHz 作为系统主频,而第二版则改成了 24MHz 的外部晶振,第二版硬件出来后,将第一版程序直接烧录进第二版硬件后 MCU 无法正常启动且无法被识别。
初步推测,应该是外部晶振频率提高,但是程序没有进行适当地分频,导致系统主频远远超过数据手册中规定的频率上限(200MHz)。
后面通过调试,证实程序的确是在 M4_SYSREG->CMU_CKSWR_f.CKSW = enTargetSysSrc;
处出现异常。
上述操作其实就是「超频」,只是超得有点猛,导致芯片直接宕机。这种情况借助华大的离线下载器重新烧录程序即可恢复正常。
集成开发环境-GCC.ARM(#05)程序调试
集成开发环境-GCC.ARM(#04)快捷任务
集成开发环境-GCC.ARM(#03)程序烧录
编程/下载/烧录的方式有多种,本文重点介绍以下两种烧录方式:
- JLink
- OpenOCD + JLink 仿真器
其中 OpenOCD 可以搭配多种仿真器使用,这里以 JLink 仿真器为例进行说明。
集成开发环境-GCC.ARM(#02)程序构建
倘若只有 main.h 和 main.c 两个文件,那么只需要执行少量的指令即可完成编译工作。但是实际上一个工程通常包含几十上百个文件,意味着要执行大量的编译指令才能得到目标文件,这是我们所无法接受的。因此需要借助 make、cmake、ninja、scons 等构建工具来提高开发效率。
集成开发环境-GCC.ARM(#01)环境搭建
集成开发环境-GCC.ARM(#00)目录索引
集成开发环境-GCC.ARM(#01)环境搭建
集成开发环境-GCC.ARM(#02)程序构建
集成开发环境-GCC.ARM(#03)程序烧录
集成开发环境-GCC.ARM(#04)快捷任务
集成开发环境-GCC.ARM(#05)程序调试
集成开发环境-DBG
传统的集成开发环境(MDK、IAR)通常会提供包括编辑、编译、烧录、调试在内的一整套工具,开发者无需配置,简单易用,但 license 也不是一般的贵。
替代方案:
- VSC
- VS
- Eclipse
- Eclipse Based
- EclipseBased: RT-Thread Studio (RV5 ARM JLink STLink DAP-Link QEMU)
- EclipseBased: MounRiver Studio (RV5 ARM)
- EclipseBased: NucleiIDE Studio (RV5)
LilyPond
LilyPond 是什么?(https://lilypond.org/)
LilyPond (荷花池) 是一个音乐雕版软件,致力产生最高质量的乐谱。它把传统音乐雕版印刷的美学,呈现在计算机打印的乐谱上。LilyPond 是自由软件,也是 GNU Project 的一部分。
计算机软件的内核是将接收到的数据进行计算并输出,LilyPond 也不例外。我们需要按照 LilyPond 开发者制定的规则编写乐谱源码,然后使用 LilyPond 将源代码转换为 PNG、PDF、SVG、MIDI 等格式的文件。