[软件]

我为什么不推荐使用CMSIS开发ARM

[复制链接]
13696|14
手机看帖
扫描二维码
随时随地手机跟帖
Lbsonggz|  楼主 | 2016-12-5 14:41 | 显示全部楼层 |阅读模式
      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架构。
评论
玉门大雁飞 2018-8-24 14:38 回复TA
只顾自己就不顾团队了?理解寄存器,了解ARM架构是自己的事,项目是团队的,团队之间代码的可读性才是关键,新人快速上手项目才能给团队带来效益。代码重要的是去封装和抽象。而不是写出那些让人晦涩难懂的代码,切忌闭门造车。这就是为什么我们不用ARM指令集开发而是选用C语言开发的一个原因。 

相关帖子

xyz549040622| | 2016-12-5 21:36 | 显示全部楼层
有时候,快速的开发一款产品才是关键。

使用特权

评论回复
Lbsonggz|  楼主 | 2016-12-6 08:48 | 显示全部楼层
直接使用寄存器操作,更快,有个C开发环境就行,个人习惯

使用特权

评论回复
王紫豪| | 2016-12-6 15:40 | 显示全部楼层
对我们来说,多一个选择吧,挺好的。

使用特权

评论回复
Ketose| | 2016-12-6 17:55 | 显示全部楼层
只能说你是一个不懂软件工程的人。

使用特权

评论回复
wind~风| | 2016-12-7 11:33 | 显示全部楼层
Ketose 发表于 2016-12-6 17:55
只能说你是一个不懂软件工程的人。

非常同意

使用特权

评论回复
皈依| | 2016-12-8 13:28 | 显示全部楼层
寄存器做的是底层接口,当寄存器数量多的话还是封装接口好一些

使用特权

评论回复
ccmc| | 2016-12-9 09:34 | 显示全部楼层
没有什么必然的对应关系...
使用CMSIS只是为了让你更好的软件兼容,让你在arm开发中实现无缝移植,提高开发效率。即使更换平台也几只需要修改少量代码。
这样的通用性当然也会带来一些不好的因素,比如占用程序空间、代码效率不高等等。

使用特权

评论回复
平常人| | 2016-12-17 22:25 | 显示全部楼层
Ketose 发表于 2016-12-6 17:55
只能说你是一个不懂软件工程的人。

你看到的是软件工程,这是表面现象,其实背后的逻辑是,ARM想争夺市场话语权。

使用特权

评论回复
xjxhsjl| | 2017-3-24 10:04 | 显示全部楼层
我现在用的控制都是ARM控制的,想自己开发,可是4层以上的板子开发有点困难。另外,Linux学的也不是很好。矛盾中。

使用特权

评论回复
yyglucky| | 2017-6-12 16:34 | 显示全部楼层
学习ingf

使用特权

评论回复
chinashenzhen| | 2017-6-12 18:57 | 显示全部楼层
习惯了什么都差不多

使用特权

评论回复
ayb_ice| | 2018-8-24 15:18 | 显示全部楼层
大部分用库,关键部分用寄存器,实时性较强部分也用寄存器

比如模拟时序部分GPIO操作用寄存器,

使用特权

评论回复
wdliming| | 2018-9-14 18:23 | 显示全部楼层
winarm已经下载不了了。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

236

帖子

6

粉丝