最近在学习使用ARM系列的MCU,我使用的是STM32系列的开发板,发现光是最基本的I/O
操作,就有直接操作暂存器、使用CMSIS函式库、使用HAL函式库等三种方式能做到。
目前理解是CMSIS是针对暂存器操作的抽象化实作,只要是Cortex M系列的MCU都通用,
可以很方便的在不同的IC间互相移植,并且减轻更换IC所造成的学习时间成本。
HAL感觉跟CMSIS有点接近,但只针对STM32系列有效。
目前用CubeMX产生出来的样板专案好像是采用HAL,但实务上大家比较常看到哪一种呢?
另外还有两个问题是个人满好奇的,也许未来学习的过程就会得到解答,但如果各位先
进愿意提前给我指点我会很感激:
看介绍CMSIS理念上的确是个很棒的东西,但是各家MCU周边硬件百百款,CMSIS真的有办
法包的下所有的周边吗?
另外就是CMSIS是ARM所主导的,所以理所当然只为ARM的Cortex M系列所用,但是根据以
往经验,当面临到换IC的情境下,没办法保证未来采用的一定是ARM系列的IC,也许会因
为各种考量换成其他架构的MCU。那么用CMSIS或是HAL这类的函式库对专案的可移植性或
可维护性是真的有帮助的吗?毕竟要是真的换MCU架构了还是得全部打掉重来。
谢谢大家。