The Difference between 8051, PIC, AVR and ARM

Here is a question posted on Quora. What is the difference between 8051, PIC, AVR and ARM? I have ever used a few components of all of them, but have never made a compare between them seriously. In this theme, many people compared these processor families in different angles. Peter Hand did a good job. He compared them briefly and clearly, as follows:

 

  • 8051, PIC and AVR have Harvard architecture (separate memory spaces for RAM and program memory).  ARM has von Neumann architecture (program and RAM in the same space).
  • ARM has a 16 and/or 32 bit architecture. The others are byte (8-bit) architecture.
  • 8051 and PIC have limited stack space - limited to 128 bytes for the 8051, and as little as 8 words or less for PIC. Writing a C compiler for these architectures must have been challenging, and compiler choice is limited.
  • 8051, AVR and ARM can directly address all available RAM. PIC can only directly address 256 bytes and must use bank switching to extend it, though using a C compiler conceals this. You still pay a speed penalty though.
  • 8051 and PIC need multiple clock cycles per instruction. AVR and ARM execute most instructions in a single clock cycle.
  • 8051 and AVR are sufficiently similar that an AVR can usually replace an 8051 in existing products with practically no hardware change. Some AVRs are made with 8051 pinouts to drop right in. The Reset polarity is the main difference.
  • 8051 and AVR instruction sets are different but sufficiently similar that it's possible to translate 8051 assembler to AVR assembler line by line (I have done this). Because an 8051 takes 12 (sometimes six) clocks per instruction and an AVR takes only one, you have to modify timing critical routines.
  • AVR and ARM have the best compiler and application support, including free GCC compilers.

 

I think Peter’s compare is accurate enough, but there is one thing that should be noted, which is that 8051 and AVR all have extended versions to break limitations of standard architectures. For example, 8051 has components with one-cycle architecture, and AVR family has AVR32 to support 32-bit architecture.

转载于:https://www.cnblogs.com/WeirdWiredThings/p/5917073.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值