欢迎来到天天文库
浏览记录
ID:802308
大小:150.53 KB
页数:50页
时间:2017-09-05
《从51到arm的华丽转身》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、从51到ARM的华丽转身在开始构思这篇文章的时候,我在考虑,是华丽的转身还是艰难的转身更合适一些,我觉得内涵是一样的,每次的华丽丽都伴随着一段苦逼的艰难岁月,为了庆祝三观的重新归位,还是用“华丽”这个词更喜庆一点。一、闲言ARM与511二、翻天覆地大事变5三、真理只有一个,没有本质的区别8四、做一个合格的嵌入式工程师15五、最重要的小事17六、开发前的东风27七、从0到运行30八、ARM的心声---寄存器、工作模式、异常处理、汇编31九、责任细分:ARM?2410?编译器?我?41十、一些知识点44一、闲言ARM与51之前已经学过,ARM7内核的S3C44
2、B0X,但由于那时51单片机都没玩熟练,参照物不明显,所以即使是成绩很好,但却不得其要领。个人认为在单片机炉火纯青的情况下,对嵌入式开发有了比较深入的理解,再去学习ARM才事半功倍。在期盼了好久之后,由于项目需要和课程需要的双重契机下,终于与ARM有了亲密的接触。我们平时说的51单片机泛指的是以英特尔8031为内核的微处理器。现在intel、ATMEL等厂家都在生产,就像三星、ST都能拿ARM的内核做微处理器道理一样,授权生产。大陆最火的一家51单片机厂家莫过于STC了,它是深圳的一家设计公司,感兴趣的去他的主页上看看,或者打开它做的DATASheet,简
3、直是太坑爹了,山寨中的极品。ARM其实有很多种含义,可以看做是英国ARM公司的名称,也可以是他们公司设计的CPU的名称,也可以是以这种CPU为内核做出来的处理器的统称。大家都知道ARM公司不做硬件,它们卖的是IP核,卖的是设计,靠产权赚钱。所谓的卖设计,差不多类似于咱们做课程设计时用VHDL写了一个电子钟,然后被人买去做成了实物。ARM从底层搭起,做出一个通用CPU架构,工程的复杂度简直无法想象。做ARM处理器做的比较好的公司有三星、ATMEL、ST(意法半导体)、TI等等,他们用ARM核加上自己设计的外设控制器,生产出一款嵌入式处理器。韩国三星涉猎的最为
4、广泛,而且市场覆盖面很大,ARM7有S3C44B0、ARM9有S3C2440、2410、2416、2450等,ARM11有S3C6410这一款,contexA8有S5PV210(这款内核也是iphone的处理器)ST专注于做contexM3内核的处理器,也就是STM32系列的,相当火的一款ARM处理器,ST为了推广它,真实煞费苦心,提供了覆盖所有功能的驱动函数库,使开发变得相当简单。之前我纠结过一些概念问题,很多人可能没有仔细思考过。就是CPU、微处理器、计算机、单片机、微机系统。你如果去查的话,概念是明确的:CPU是由ALU、译码逻辑、控制逻辑组成的中央
5、处理单元,微机系统就是由CPU、存储器、输入输出接口组成的。这也是计算机的基本结构。单片机也属于这个范畴。那ARM就为难了,我们一般称2410这样的芯片叫做嵌入式微处理器,甚至明目张胆的叫做CPU,这让ARM内核情何以堪?再说了它明明是拿了ARM公司的CPU加上自己的外设控制器构成的。那管它叫单片机?也不完全合适,因为像2410这样的处理器,是没有存储器的,FLASH和SRAM都要在外边接,它不是一个完整的计算机系统。STM32就是完整的,但依然被人称为微处理器。其实也没必要纠结于这个问题,你把它看成一个大单片机、小PC来学习,至于叫什么,心中有数就行了。
6、51与ARM之间不光是主频、内存等的不同,而是架构就不一样,8位的51和32位的ARM比起来,就像一个亚洲人、一个是欧洲人,一个是小瘦子,一个是大力士。但毕竟都是人,没有本质的区别。(字长即一次可处理的位数,跟地址长度、寻址空间的概念无关,这个一定要明确)。目前嵌入式系统的主流是以32位嵌入式微处理器为核心的硬件设计和基于实时操作系统(RTOS)的软件设计,ARM已经成为中国嵌入式设计应用的首选。嵌入式系统设计的核心是软件设计(占70%左右的工作量),单片机系统软硬件设计所占比例基本相同。随着配置的提高,嵌入式系统越来越PC化、软件化。而且整个嵌入式系统,
7、包括CPU在内的芯片设计相当成熟了,重点在于模电接口设计。在学习ARM的时候幸得好导师一枚,无论是从课上还是项目上都给了我很大的影响,我非常能理解他的思想,讲课的思路,他做学问的态度。他讲课就是“授道”、完全朴素的唯物主义,大白话、声情并茂。虽然在面试的时候被他羞辱,在实验室没少被他骂,但是我还是相当敬佩他,也能跟他谈到一块去,良师益友,总之遇见他我很幸运,当然,能得到我这样评价的老师,就他一个。做51开发的时候,虽然对CPU于接口的互动、对寄存器编程等等都有比较深刻的认识,但也忽略了很多重要的知识,的底层汇编,比如它的初始化文件startup.s,顶多算
8、是会用,不能算是懂,或者精。导师面试的时候说看我做了很多单片机的项
此文档下载收益归作者所有