作者Aquatics (小哈)
看板Electronics
标题Re: [问题] 请教8051与ARM的分别~~
时间Mon Mar 9 00:08:03 2009
※ 引述《CCMAKE (NNNN)》之铭言:
: 请教各位大大
: 8051系列的IC
: 跟 ARM IC
: 有甚麽不一样的地方呢??
不一样的地方太多了
建议先学会8051,之後就知道ARM 的差异在哪
: 例如 他们都是单晶片IC??
: 使用的程式语言??
: 或是应用的地方
: 不知道有甚麽不一样呢??
: 另外有一个疑问
: 就是当我们把软体的程式写好之後
: 翻译成机器语言之後
: 这些机器语言 是怎麽样转换成硬体的动作呢??
: 我的意思是这些机器的语言
: 怎麽样使CPU里面的运算单元(OP comparator 之类的电路)工作呢??
: 因为一直对软体与硬体间的沟通不是很了解
: 不知道有没有大大可以帮忙解惑一下
: 或是可以朝哪方面去找相关的资讯呢??
: 因为看过一些8051的书
: 大部分都是使用C语言
: 来控制单晶片
: 可是没有写到他是怎麽样转换成硬体的内部的动作
: 感谢各位的回答^^
基本上是这样
当 C compile 出来程式之後,就转成一堆指令
无论是MCU 或CPU都一样,在指令执行周期的初期会依program counter
所指到的位址把指令取出来
那麽软体的指令是怎麽变成动作的呢?
想像MCU 内部已经建立很多function 区块,有加减法、乘除法、比较器等
若这次取进来的指令是加法,MCU 经过比对就会知道要触发加法器执行动作
然後经过几个machine clock,加法器会执行完毕加法工作
并且把结果放到某个register。以此类推
关於上面这段所描述的动作,
如果你会VHDL 或verilog ,试着写一个小的MCU (很多书上有范例)
就能彻底了解。
8051或ARM 的书不会讲这些东西。说不定作者也不清处这些东西
(很多8051 或ARM 的书籍作者是写程式高手,但不见得了解hardware)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.62.72.223
1F:推 ykjiang:如果你看过人家抱着一叠卡片喂机器的产景,应该比较能体会 03/09 10:33
2F:→ ykjiang:虽然我也没看过,但听学校老师描述过... 03/09 10:38
3F:推 goverz:如果要更HW地去说,就是MCU会由外部的cystal加上内部的振荡 03/19 10:26
4F:→ goverz:器去产生一个reference clock,然後里面的PLL再根据这个cloc 03/19 10:26
5F:→ goverz:k去产生出各式各样频率的clock,这样得来的方波就可以用来 03/19 10:27
6F:→ goverz:去驱动各式各样的电路完成原po所说的那些动作,而这中间的关 03/19 10:27
7F:→ goverz:键block就是flip flop,很多电路都是由flip flop兜出来的 03/19 10:28
8F:→ goverz:原po所谓的触发,就是由flip flop的设计弄出来的 03/19 10:29