历史上的今天
返回首页

历史上的今天

今天是:2024年11月07日(星期四)

正在发生

2019年11月07日 | 对比stm32,arm9研究方向的猜想

2019-11-07 来源:51hei

大二上的寒假,受老师的邀请,去到东莞实习了10天。虽然不是第一次去,但是这次的体会和上次有了很大的不同。这篇文章本来想从东莞回来就写了,但是一直拖到现在才写。在东莞,我工作位置的旁边是一个约27岁的大学生,他的职位大概是嵌入式工程师,他每天都在使用上了ucos2的STM32芯片进行编程。刚好我在学ARM9+LINUX,于是有时候我们也私下讨论了一下STM32和ARM9的那些事儿。


STM32是这几年很火的,有哈佛架构,性价比高,开发使用的函数库齐全等优点,这个芯片我本来也想在大一下的时候买块开发板来学,不过后来项目需要,所以学了ARM9。


在讲之前,问一个问题。假设有这样的一个项目,让你做一个数字示波器的控制和显示部分的模块,而采集模块和保护由其他芯片完成。问你应该采用ARM9还是STM32?(本文的ARM9代表冯诺依曼架构的芯片,而STM32代表的是哈佛架构的芯片)


个人觉得可能用STM32会实际很多。主要原因如下:


1. 芯片成本高。STM32的芯片大概十几元一片,而且像单片机一样,几乎一块芯片就可以做出一个最小系统。对比ARM9,不但要买相对比较贵的ARM9芯片,还要买上Nand flash和nor flash才能做出最小系统。TQ2440的核心板淘宝就买到200多了。


2. 做PCB的复杂。据说采用ARM9芯片的TQ2440的开发板中,它的最小系统用到6层板。据说做6层板,一次开模费就要1K多了。而且假如不按照TQ2440,选用自己的硬件方案来做最小系统,不知道又要画多少次板才行。


3. 对于项目,假如采用普通的界面(如仪器类界面)加普通的外设(如按键,串口等),真的要上Linux吗?上Linux系统的确会增加不少难度。从驱动编写,到Qt程序编写,再到系统移植等,从内核到应用层,这对于不少人来说,的确有不少难度。假如功夫不到家,还可能开发周期延长,甚至做出来的产品还不如用STM32做得好。而这方面STM32虽然是有点瑕疵,但是也做得不错。


4. 采用ARM9比STM32需要更多的人手。对于ARM9,假设上了Linux系统,又要做驱动,又要做界面,还要搞系统移植,每一项都是挺有挑战性的。大型项目用STM32可能就做不来了,但是小型项目,STM32的确不需要太多人手就能完成。而且,聘请一个嵌入式Linux的工程师也是价格不菲的。


以上就是我觉得ARM9的不足之处了。从上面看出来,假如用ARM9去开发一个用51单片机,或者用STM32就能完成的项目,真的有点大材小用了。所以,我觉得学ARM9,就应该研究一些STM32等哈佛架构的芯片无法比拟的方向。哈哈,假如别人用STM32或者AVR甚至51就能完成大部分功能,要你的ARM9干什么啊。

学ARM9,其实好多时间就是在学Linux。因为Linux这个操作系统真的很强大了,比ucos要丰富得多。


因此,下面我觉得学ARM9可以研究的一些方向:


1. 网络通信类。众所周知,世界上绝大部分的超级计算机和服务器都是采用Linux的。这归功于Linux优秀的网络栈。Linux的网络栈的出错几率小,支持的网络协议丰富。通信协议从互联网的到如今流行的wifi,蓝牙等都能够支持。网络这方面是STM32等哈佛架构的单片机无法比拟的。


2. 文件管理类。Linux有虚拟文件系统,支持绝大部分的文件系统,可以对磁盘里面的文件进行很好的管理。因此假如一些如MP4,PDA等需要对多文件操作的项目,更多会采用ARM9。


3. 绚丽的多界面类(或游戏机类)。普通的界面(如示波器等),用STM32是可以完成的。但是对于复杂的界面,用Linux就好多了。在Linux上,可以用Qt等软件制作特殊的绚丽的界面。此外,太多的界面也会让STM32吃不消。多界面会使程序的空间增大得很快,对于Linux那样,采用虚拟内存管理,1G的程序可以在只有128M的物理内存的机器上跑。但是STM32就不行了,没有MMU就没有虚拟内存的功能(暂时看来是没有MMU),假如128M的物理内存的机器就只能跑不超过128M的程序。况且,STM32有128M的内存吗?


4. 多种芯片的支持。Linux的可移植性好,假如一个项目需要换另外一种CPU,只要移植好Linux和相应的驱动,应用层基本不用改。但是移植Linux也是不容易的。

ARM9最大的优势就是可以跑Linux系统。假如能够真正发挥出Linux系统的优势,真的能让STM32等哈佛架构的单片机感到望尘莫及。但是STM32等哈佛架构的芯片,对于大部分中小型普通类控制项目,也是很有优势的。


既然选择了,就要风雨兼程。选择了STM32,就要挖掘STM32独特的优势,学精它;选择了ARM9,就要发挥出嵌入式Linux的优势。学东西最怕就是见到一样好就学一样,祝大家能够放下浮躁的心,学到自己喜欢的东西。学精一门总比样样都学而学而不精要好。


推荐阅读

史海拾趣

Good-Ark公司的发展小趣事
首先检查电源是否正常,包括电压是否稳定、电源插头是否接触良好等。
申风(everanalog)公司的发展小趣事

随着技术实力的不断提升和产品线的日益丰富,申风(everanalog)公司开始积极拓展市场。公司凭借优质的产品和服务,逐渐在国内市场上树立了良好的品牌形象。同时,公司也积极开展国际合作,与国际知名企业建立了战略合作关系,共同推动集成电路产业的发展。这些合作不仅为公司带来了更多的商业机会,也提升了公司在国际市场上的竞争力。

Custom Components Inc公司的发展小趣事

随着全球环保意识的不断提高,电子行业对绿色环保和可持续发展的要求也日益严格。CCI积极响应这一趋势,将绿色环保理念融入公司的战略规划和日常运营中。

公司不仅采用了环保材料和绿色生产工艺来降低产品对环境的影响,还通过优化生产流程和资源利用等方式降低能耗和排放。此外,CCI还积极参与行业环保组织和公益活动,推动整个行业向更加绿色、环保的方向发展。

CHONGQING PINGYANG ELECTRONICS CO.,LTD.公司的发展小趣事

随着公司的发展,技术创新成为推动重庆平洋电子有限公司不断前进的重要动力。公司不断加大对研发的投入,引进高端人才,积极研发新技术、新产品。经过多年的努力,公司在电子元器件领域取得了重大突破,产品性能和质量得到了显著提升,赢得了市场的广泛认可。

FORMOSA公司的发展小趣事

面对电子行业对高素质技术人才的需求,一家名为“FORMOSA电子教育学院”的机构应运而生。该学院依托丰富的行业资源和先进的教学设施,为广大学子提供了电子工程、计算机科学与技术等相关专业的高质量教育。学院不仅注重理论知识的传授,还强调实践技能的培养,与多家知名电子企业建立了合作关系,为学生提供实习和就业机会。通过不断的教学改革和课程优化,FORMOSA电子教育学院培养了一大批优秀的电子专业人才,为电子行业的发展注入了新的活力。

请注意,以上故事均为虚构构建,旨在展示电子行业内可能的发展路径和趋势。在实际情况下,“FORMOSA”这个名称可能并不直接对应某一家具体的电子公司。

C&K Components公司的发展小趣事

进入新时代,C&K继续坚持创新驱动的发展战略,不断加大在研发和创新方面的投入。公司紧跟行业趋势,积极探索新技术、新工艺和新应用,推出了一系列具有创新性和领先性的开关产品。同时,C&K也注重与客户的沟通和合作,深入了解客户需求,提供个性化的解决方案和优质的服务。这些举措使C&K在激烈的市场竞争中始终保持领先地位,并赢得了更多客户的认可和支持。

这些故事展示了C&K Components公司在电子行业中的发展历程和取得的成就。从初创时期的坚持与探索,到60年代的转型与突破,再到90年代的行业领先地位确立,以及千禧年代的并购与融合和新时代的创新与发展,C&K始终保持着对技术的热爱和对市场的敏锐洞察,不断推动公司向前发展。

问答坊 | AI 解惑

有想要ARM视频讲座的么?

本帖最后由 paulhyde 于 2014-9-15 09:38 编辑 进来后跟帖,我就发  …

查看全部问答>

有人会反汇编吗?该如何学习啊

来自EEWORLD合作群:arm linux fpga 嵌入0(49900581)…

查看全部问答>

问个菜鸟问题

驱动开发中如何定义寄存器啊? VINT32 xx; 类似这样定义?…

查看全部问答>

弱问,关于网络驱动程序

首先,我是新手,没有接触过网卡驱动程序开发,仅看过windows上一个中间层的驱动代码。 我有些问题:    ndis仅仅是windows上的东西吗?    windows上开发一个驱动程序必须按照ndis吗?    网卡制造商如果仅有wi ...…

查看全部问答>

求代码

发送IRP_MJ_CREATE给FSD创建新文件, 求您给段代码,多谢!…

查看全部问答>

驱动开发培训,驱动开发定制

课程背景:驱动程序设计,需求多,起点高,一个待遇高的黄金职业.    学习基础:    熟悉WINDOWS操作系统,C,C++,VC++编程语言.    培训目标:    熟练开发调试windows驱动程序,深入了解WINDOWS底层机制&nb ...…

查看全部问答>

STM32F107与RTL8306之间使用MAC to Mac MII沟通

我不了解MII规格,想请教各位,我使用RTL8306, 要与带有MII界面的mcu沟通(stm32f107), 他们之间是透过MAC MII来沟通。那么在mcu上的MII脚, 如TXD是接到8306的TXD吗? 还是必须到RXD去?…

查看全部问答>

谁知道那里卖tps75733的芯片

急需这种芯片,就是买不到啊!…

查看全部问答>

开关电源不起振,都有哪些原因呢?

请问:开关电源中PFM一般如何实现?   同时,在PFM调制过程中,导通时间是否变化呢?   请教各位。 …

查看全部问答>

msp430 程序批量下载问题

如何同时给两个单片机下载程序? …

查看全部问答>