芯片启动过程 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

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值