工作中总会遇到嵌入式程序的可移植性问题,因为代码量的庞大和编写代码人的不统一性,尤其是遇到开发人员离职的问题。在代码的几年维护和需求变更等等各种修改工作后,代码便变得难以维护。那么如何保持代码的可持续维护性?如何让代码在平台变更,各类不同硬件架构的产品之中游刃有余?ARM为我们提出了一个方案:CMSIS 和HAL库。以下是ARM官网关于CMSIS的架构图,由于理解尚不够深入,而且本人能力有限,不予详细说明。
本次学习基于Keil MDK 5.24a,基于STM32F407VG芯片,使用Software Pack方式和Keil提供的RTX 5源代码进行学习。
首先创建工程,在新工程的Software Pack相关选项中勾上CMSIS项下CORE DSP RTOS(API)中的Keil RTX5 RTOS2(API)中的KEIL RTX5的Source Device中勾选Startup STM32CUBE中的Classic方式 HAL库中勾选需要的驱动
如果使用STM32CUBE软件作为辅助开发,可以更快的上手相关开发,图形和列表化的配置能够把复杂的时钟系统和外设配置的井井有条。但是本次目的以学习为主,不采用软件辅助的方式进行开发。
<