控制/MCU
我第一次听说树莓派时,并没有对它产生任何兴趣,因为对我来说这并不是一款新产品。在更早之前,我玩过 arm11 的开发板(S3C6410 系列,见下图),虽然和树莓派还是有区别的,比如体积更大、没有 HDMI 接口、自带触摸屏、价钱比树莓派稍贵等等,但我当时认为没有本质的不同,甚至性能和性价比上也不相上下。更重要的是,因为用户体验差和工作的原因,我的那块开发板在最初折腾几天后我就很少再用了,并且在两年前卖掉了。因此我对 arm 开发板的印象并不好,所以在之后的时间,我也没有关注树莓派的更新换代。
ARM是英国的一个公司,主要设计ARM系列的处理器。ARM系列处理器是32位处理器,是芯片,不是软件,是很流行的芯片。三星,苹果等很多公司都买ARM公司的授权。
arm是一款处理器也可以说是单片机,是功能比较强大的单片机。
但是值得注意的是ARM公司通过出售芯片技术授权
也就是说ARM公司不做芯片的生产,只有买了这些技术授权的半导体公司才做芯片
我的个人理解是ARM提供处理器的核心技术方案,各个半导体公司加上自己的外设等等东西做成自己的芯片,所有采用arm提供技术授权的芯片都叫ARM
树莓派是一种电路板子。它使用ARM处理器芯片,和linux操作系统或windows操作系统,是一个很小体积的桌面电脑。
树莓派由注册于英国的慈善组织“Raspberry Pi 基金会”开发,Eben·Upton/埃·厄普顿为项目带头人。2012年3月,英国剑桥大学埃本·阿普顿(Eben Epton)正式发售世界上最小的台式机,又称卡片式电脑,外形只有信用卡大小,却具有电脑的所有基本功能,这就是Raspberry Pi电脑板,中文译名“树莓派”。这一基金会以提升学校计算机科学及相关学科的教育,让计算机变得有趣为宗旨。基金会期望这 一款电脑无论是在发展中国家还是在发达国家,会有更多的其它应用不断被开发出来,并应用到更多领域。在2006年树莓派早期概念是基于Atmel的 ATmega644单片机,首批上市的10000“台”树莓派的“板子”,由中国***和大陆厂家制造。
树莓派就是将你电脑机箱里的大部分东西都集成到了一块电路板上的 微型电脑,接上显示器鼠标键盘等等 东西 和你的电脑没啥实质的区别,操作系统不一样这个是基于linux的系统。
使用的处理器的内核不同。树莓派使用的是ARM-M9内核的处理器,是ARM开发板的一种。ARM开发板不是树莓派。ARM开发板因为使用的MCU的内核不同可以分为很多版本,比如STM32F0系列是ARM-M0,STM32F1/F2系列是ARM-M3,STM32F3/F4系列是ARM-M4内核。
一个是固定的平台,更像是电脑的硬件平台,接口和引出的引脚很少,只能接屏幕,网络等等,独立的引脚很少,没开发板那么灵活
ARM更加底层,树莓派把复杂的底层开发工作给封装起来,所以更容易入门
树莓派的定位并不是一块用来做嵌入式开发的开发板,而是一个廉价并且高性价比的可以在一定程度取代 PC 并且硬件接口更丰富的软件开发和使用平台。有人可能会问,树莓派有 GPIO 接口,可以接很多硬件,怎么会是一个软件开发平台呢?那么我要问你 PC 有 USB 接口,可以接很多硬件,它是一个硬件开发平台吗?树莓派的 GPIO 接口,和 PC 的 USB 接口,没有本质的区别,都是用来连接硬件的,只是接口更底层一些。
那么这样看,我之前用的 arm11 开发板,是否也是软件开发平台呢?答案是否定的,这要看目标用户。我们可以把目标用户简单分为三类:硬件开发者、软件开发者和使用者。硬件开发者主要是设计、改良硬件和为新老硬件编写驱动程序等等,软件开发者主要是在现有的硬件下开发软件(通常不包括驱动程序),使用者使用现有硬件和软件而不进行开发。
我之前使用的 arm11 开发板,主要的目标用户是硬件开发者和软件开发者(可以不严谨地统称为嵌入式开发者),几乎没有使用者,因为对于没有开发经验的人,用户体验是很差的。而树莓派的主要目标用户是软件开发者(和嵌入式开发者有重叠但并不多)和使用者,用户体验很好,但几乎没有硬件开发者,因为树莓派的硬件相对比较封闭,不销售单独的 SoC 和其他芯片,硬件资料也并不是很完善,在硬件层面很难 DIY(对很底层的软件开发者也存在类似的问题)。
那么目标用户的不同,就导致树莓派虽然看起来很像其他的 arm 开发板,基本也能用和其他的 arm 开发板一样的方式使用,性质却有很大的不同。
这也解释了为什么很多嵌入式行业的软硬件开发者并不喜欢或者看好树莓派,甚至对它很不屑,而很多对嵌入式了解很少的开发者以及使用者会对树莓派趋之若鹜。
那么我为什么会对树莓派感兴趣,而对之前那块 arm 开发板无感呢?最主要的问题并不是用户体验差,而是软件方面的配套环境不完善。最重要的是 Linux 内核版本支持。官方只提供低版本的 Linux 内核(2.6 系列),如果用这个内核来配合最新的发行版使用,几乎是不可能的,会遇到许多问题,一方面是这个内核缺少很多最新发行版使用的特性,另一方面是很多硬件方面的支持不只是替换内核文件和内核模块的事情(比如有些工具也需要移植),替换起来也麻烦。如果想使用更新版本的内核,需要打各种补丁以及自行修改代码,虽然硬件的资料比较齐全,理论上可以实现,但即使是经验丰富的嵌入式开发者也很难搞定,也没有人做好了提供给别人使用。这就导致几乎只能使用官方提高的老旧 Linux 镜像(或者其他古老版本的发行版)。而这个 Linux 环境几乎毫无用户体验可言,最新版本的软件很难安装上(几乎都需要自己编译,而且容易出现编译错误),常见的 USB 外设(比如摄像头、无线网卡、蓝牙)也很难驱动起来(运气好的话,可以从其他地方找来驱动代码,修复很可能出现的编译错误)。
而树莓派的软件环境是很好的,基本可以使用最新的 Linux 内核和发行版(比如 Archlinux),并且有很多人为这个平台开发软件,用户体验有质的提升。即使是对嵌入式开发一窍不通的开发者或者使用者,也可以用树莓派做他们想做的事情。
另外我发现一个有趣的事情,折腾树莓派的人群(至少在国内),和(曾经的) Linux 桌面用户群体很相似(我曾经混迹于 Linux 桌面用户社区,很多人折腾桌面美化、系统配置、工具优化、写小脚本等等,玩 Linux 而不是用 Linux),他们主要是使用者,可能稍微会一些脚本或者其他编程语言,但并没有独立开发完整应用程序的能力和意向。这和嵌入式开发者人群是很不同的。
综上,树莓派和其他 arm 开发板的本质区别在于目标用户不同。树莓派的目标用户主要是软件开发者和使用者,而其他 arm 开发板的主要用户是硬件开发者和软件开发者。这也是树莓派能够吸引更多用户的一个重要原因。
全部0条评论
快来发表一下你的评论吧 !