芯片启动过程 ARM C51 Soc - RTOS LINUX - 之一

1. 芯片如何设计?芯片就像楼房,一个模块一个模块(IP)架构,一层一层设计,通过EDA仿真验证,设计好的图纸(可以理解为楼房的空间图纸),发给晶圆厂生产。

2. 为什么会存在上电时序?这个和芯片内部模块工作先后有依赖关系。换句话:现代人基本上先结婚,后生小孩。同样的,

    晚上回家,一般道理是先开一楼的灯,在开二楼,三楼... ... N 楼。芯片也需要有这样的依赖条件。

3. 芯片运行的核心在哪里呢?众所周知,计算机5大部件:输入,输出,存储器,运算器,控制器。这只是简单的架构,不是芯片运行的基础条件。

   在我看来,芯片的基础之一,按地址执行,绝对不会反抗。除非你给他制造了Bug,机器必须死给你看。 由于没有思维,机器只能按给定的地址进去一个大的死循环,里面包含N多小的死循环,即Windows / Linux 才能收发Mail,View Movie, Play Games... ...一旦退出这个循环,那就是reboot / poweroff / ...

      基础之二在于时钟,也就是CLK。芯片的通信基本上靠时钟去完成。

      基础之三,存储,不论长久(Disk)、临时储存(DDR)。

4. 芯片上电怎么知道自己要干什么?问得好,芯片上电确实不知道自己该做什么。当芯片知道自己需要做什么的时候,就是人类往芯片植入了最初始化的一段固话的硬件代码。不同的人叫法不同。我这里就叫它Boot0_ROM.

5. Boot0_ROM需要完成什么任务呢?由于芯片刚刚起床,不能完成太多的任务,顶多睁开眼睛,伸个懒腰。如此而已。接下来的事情会有N多个版本:

      5.1 Boot0_ROM读取Flash指定长度boot1到SDRAM去跑,boot1再去初始化Uart,Net,TF等然后boot uboot, uboot boot kernel, kernel boot app. 最后整个世界完全醒来。

      5.2 Boot0_ROM读取Flash指定长度boot1到SDRAM去跑,boot1再去初始化Uart,Net,TF等然后Run RTOS。

      5.3 总而言之,这里就是一级一级配置、初始化、Load更高级Module到DDR去跑,最后跑完整个系统

6. 单片机是怎么跑的?中断是怎么回事?什么是事件驱动?   --- 未完待续

7. Linux是怎么跑的? --- 未完待续

Icekirin.yuan - 冰火麒麟工作室

Q群:147565042

发布了14 篇原创文章 · 获赞 8 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/YXFLINUX/article/details/51857467
今日推荐