然后我们可以通过配置下载选项,将带有CRC校验值的工程下载到板子上:
在串口视图中可以看到ClassB工程运行的状态信息:
04移植过程中可能遇到的问题问题1:编译通过,无错误,但是发现hex文件只有132B。 方法:通过map文件,发现source包含的一些文件夹不见了,在工程选项中添加对应的文件即可。
问题2:#define ALLOC_GLOBALS这个宏定义是为了防止变量的多次重复定义。 方法:需要检查其应当放在对应的相关变量的头文件之前。
问题3:初始化时,在CubeIDE中出现了各种startup阶段的失败。 方法:需要将Class B lib的优化等级设置为-O1才可以。
问题4:Runtime时出现“Run-time Flash CRC Error”的错误。 方法:原因在于为了方便调试,下载了没有带CRC的hex文件,改成带CRC的hex文件后就没问题了。
问题5:时钟检测不过,测试时,发现工程为F030,但实际芯片是F042,二者存在时钟配置上的差异,主要是SystemInit和SystemCoreClockUpdate函数中的差异。 方法:按照实际芯片正确配置时钟即可。
05小结在移植ClassB的过程中,难免会出现各种各样的编译错误,我们要有耐心,根据工具的提示,逐个消除错误即可。本文档提供了对应的例程,用户可以对比参考使用。
转载自:STM32单片机 如有侵权请联系删除
|