CMSIS是ARM公司推出的屏蔽底层的软件架构,已经成为ARM编程上实际上的标准,最为典型的就是Nuvoton公司从官网上删除了register-direct-access的文件和实例,全部成为CMSIS实例。这样子好吗? CMSIS更方便在Linux系统上实现,这是这种方法的唯一优点,直接的证据就是retarget,重定向到串口。但是,这些屏蔽底层的函数仍然是使用寄存器赋值实现的,为什么不采用更加直接的寄存器操作方法呢,更便于对ARM硬件架构和体系的理解。只要会基础些的C,就会使用寄存器操作方法实现ARM编程,这是我的理解,也是我**的控制系统软件设计方法。具体到ARM上,ARM7免费开发软件可以采用WinARM和emIDE。对于MO,可以采用免费的emIDE,EmBITZ和Codelite,但我没有推荐CoIDE。对于小于32k的hex文件,可以使用Keil for ARM。无论使用哪种开发软件,只要你愿意,都可以。但我仍然推荐使用直接寄存器操作方法,只为一个目的,更深入了解ARM架构。 |
只顾自己就不顾团队了?理解寄存器,了解ARM架构是自己的事,项目是团队的,团队之间代码的可读性才是关键,新人快速上手项目才能给团队带来效益。代码重要的是去封装和抽象。而不是写出那些让人晦涩难懂的代码,切忌闭门造车。这就是为什么我们不用ARM指令集开发而是选用C语言开发的一个原因。