大家好,我目前正在学习ARM嵌入式开发,正在学ARM指令这块。。
因为本人觉得嵌入式属于底层开发,必须要对底层的运行原理深刻理解方能在工作中得心应手。。但是不管是老师讲的还是网上搜的资料说的都很笼统。。无法满足我的要求。。无奈之下恳请大伙能够给点指导。。
比如说:ARM的内部构造是什么样的?所有的器件?这些构造组成在一起是如何工作的?如何分工的?加电之后哪个器件首先开始工作?我目前的理解是CPU主要包含控制器,运算器,寄存器,总线等。。老师说加电之后首先ARM核的控制器(有几个控制器?)从PC指向ROM中的指令的地址开始读取指令,但是问题是CPU是指令驱动的,第一次获取指令的ROM指令又是谁给控制器的呢?控制器只是知道了PC里面的地址,有了地址还需要读取指令啊?读取指令的指令是谁下达的呢?
有些书上说有中断控制器,有存储控制器,还有这样的描述(标准中断控制器在一个外部设备需要服务时,发送一个中断请求信号给处理器核)什么是处理器核?搞得都蒙了?谁是控制的?谁是被控制的?
按下键盘的时候,控制器在处理着指令呢,它怎么知道有按键按下了呢?肯定是键盘上的某个器件给控制器发了信号,控制器才知道的。。那么谁是控制的?谁是被控制的?难道键盘上也有控制器么?彻底晕了。。。
还有为什么开发板装上linux内核之后还必须要装根文件系统呢?它们之间的关系是什么?跟文件系统有什么内容是必须的吗?可能你会说没有跟文件系统就没办法运行shell,就没办法运行程序?可是如果只是安装了bootloader,不也是可以运行程序的吗?你可以运行pri或者tftp等等。。。
这些都是我在学习过程中的困扰。。。问了老师和同学得到的答案都比较笼统,希望这里有牛人知道,或者可以推荐几本讲解最底层原理的书给我,如果是系统讲解的就再好不过。。。多谢各位了。。
新人报道,只有50分,请笑纳 |