01 2018 档案
摘要:执行完 board_init_f 后,跳回到 crt0.S中继续执行汇编语言 最后一句,跳转到here处去执行 一、relocate_vectors 重定向向量表 relocate.S (arch\arm\lib) 这一段主要是对前面所说的向量表进行重定向 二、relocate_code here执
阅读全文
摘要:一、建立自己的 github 进入 github 官网:github网址:https://github.com/ 注册账号,右上角点击 + 号,选择 New repository Repository name:代码仓的名字 Description:描述,自己写 Public:公开代码 Initia
阅读全文
摘要:设置完寄存器控制器后,则跳出cpu_init_crit,进入_main 函数。即进入crt0.S (arch\arm\lib) 跟着代码流程慢慢走 一、crt0.S 1.1 第一步执行代码 跳转到 board_init_f_alloc_reserve 中执行: 设置完后,返回继续执行crt0.S中的
阅读全文
摘要:一、内存控制器 在关闭了MMU和caches 之后 就进入lowlevel_init 函数,对内存控制器进行初始化。lowlevel_init.S (board\samsung\mini2440) 1.1 内存控制器介绍 前面已经看过这张表格了。从这张表格中可以看处,我们的程序代码,不管使用不使用
阅读全文
摘要:一、cpu_init_crit 当执行完时钟初始化后,程序执行: bl cpu_init_crit 跳转到CPU初始化处进行,在其中主要是执行 caches 的关闭 和 MMU的关闭,之后跳转到 lowlevel_init 中执行,进行系统总线的初始化。 1.1 缓存和MMU的作用 缓存是主存(内存
阅读全文
摘要:一、代码分析 上一节已经分析了链接文件,知道了首先代码是从 _start 开始,之后设置了中断向量表,然后从 start.s 开始运行。 _start:vectors.S (arch\arm\lib) reset:start.S (arch\arm\cpu\arm920t) _main:crt0.S
阅读全文
摘要:当前虽然编译成功了,但是对于我们自己的目标板并不太适用。还得做一系列得修改。 一、lds 文件分析 u-boot 中最重要得链接文件即是,u-boot.lds。我们可以查看我们编译出来得 u-boot.lds 文件进行分析,原始文件在 arch/arm/cpu/ 下,编译出来得去掉了不想关得选项。
阅读全文
摘要:一、准备工作 在建立之前,先需要将下载的u-boot 拷贝一份出来解压,在此工程下进行更改和创建。同时根据前面搜索到的 mini2440开发板所在的版本,下载一份u-boot 拷贝出 mini2440 的工程文件。 选择2013.10版本的 u-boot。下载,并解压。 1.1 board 目录修改
阅读全文
摘要:1.1 什么是buildroot Buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到
阅读全文