摘要: 4.1 MMU设置续 上一节分析到调用 __armv4_mmu_cache_on,执行如下,这里我们要分析 set_mmu 函数 4.1.1 __setup_mmu 前文已经分析过在内核最终运行地址r4下面有16KB的空间(我环境中是0x00004000~0x00008000),这就是用来存放页表的 阅读全文
posted @ 2018-03-15 22:44 游戏进行中 阅读(655) 评论(0) 推荐(0) 编辑
摘要: 内核的实际起始函数为 start_kernel() 函数,然后再调用其他函数来执行启动。再调用此函数之前,需要先将通过编译内核获得的 zImage 进行解压,请按成页目录构建等基本任务。 调用 start_kernel 的过程分为以下三个阶段: 3.1 内核解压 3.1.1 准备阶段 解压缩准备阶段 阅读全文
posted @ 2018-03-15 20:57 游戏进行中 阅读(1794) 评论(0) 推荐(1) 编辑
摘要: 2.1 介绍 ARM核心的基本结构指ARM架构显示处理器中处理的数据大小、指令架构、寄存器等的结构和运行原理 ARM核心是利用ARM架构的基本原理实现的处理器核心部分。 ARM的主要架构如下: ARM架构和ARM核心,以及架构所包含的硬件特性间的关系如下: 2.1.1 处理器命名规则 2.2 处理器 阅读全文
posted @ 2018-03-11 00:41 游戏进行中 阅读(1143) 评论(0) 推荐(1) 编辑
摘要: 1.1 内核在操作系统中的位置 用户进程:用户应用程序是运行在 Linux 操作系统最高层的一个庞大的软件集合。当一个用户程序在操作系统之上运行时,它成为操作系统中的一个进程。 系统调用接口:在应用程序中, 可通过系统调用来调用操作系统内核中特定的过程, 以实现特定的服务。 系统调用本身也是由若干条 阅读全文
posted @ 2018-03-10 22:46 游戏进行中 阅读(833) 评论(0) 推荐(0) 编辑
摘要: 执行完 board_init_f 后,跳回到 crt0.S中继续执行汇编语言 最后一句,跳转到here处去执行 一、relocate_vectors 重定向向量表 relocate.S (arch\arm\lib) 这一段主要是对前面所说的向量表进行重定向 二、relocate_code here执 阅读全文
posted @ 2018-01-27 19:32 游戏进行中 阅读(903) 评论(0) 推荐(0) 编辑
摘要: 一、建立自己的 github 进入 github 官网:github网址:https://github.com/ 注册账号,右上角点击 + 号,选择 New repository Repository name:代码仓的名字 Description:描述,自己写 Public:公开代码 Initia 阅读全文
posted @ 2018-01-27 13:01 游戏进行中 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 设置完寄存器控制器后,则跳出cpu_init_crit,进入_main 函数。即进入crt0.S (arch\arm\lib) 跟着代码流程慢慢走 一、crt0.S 1.1 第一步执行代码 跳转到 board_init_f_alloc_reserve 中执行: 设置完后,返回继续执行crt0.S中的 阅读全文
posted @ 2018-01-26 21:59 游戏进行中 阅读(1823) 评论(0) 推荐(0) 编辑
摘要: 一、内存控制器 在关闭了MMU和caches 之后 就进入lowlevel_init 函数,对内存控制器进行初始化。lowlevel_init.S (board\samsung\mini2440) 1.1 内存控制器介绍 前面已经看过这张表格了。从这张表格中可以看处,我们的程序代码,不管使用不使用 阅读全文
posted @ 2018-01-22 21:25 游戏进行中 阅读(847) 评论(0) 推荐(0) 编辑
摘要: 一、cpu_init_crit 当执行完时钟初始化后,程序执行: bl cpu_init_crit 跳转到CPU初始化处进行,在其中主要是执行 caches 的关闭 和 MMU的关闭,之后跳转到 lowlevel_init 中执行,进行系统总线的初始化。 1.1 缓存和MMU的作用 缓存是主存(内存 阅读全文
posted @ 2018-01-21 21:48 游戏进行中 阅读(896) 评论(0) 推荐(0) 编辑
摘要: 一、代码分析 上一节已经分析了链接文件,知道了首先代码是从 _start 开始,之后设置了中断向量表,然后从 start.s 开始运行。 _start:vectors.S (arch\arm\lib) reset:start.S (arch\arm\cpu\arm920t) _main:crt0.S 阅读全文
posted @ 2018-01-21 01:41 游戏进行中 阅读(1602) 评论(0) 推荐(1) 编辑