u-boot学习(一):u-boot概述

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

看到不错的文章,不要添加收藏夹,想着以后有时间再看,因为很有可能你以后再也不会看它们了。

想写总结的文章,不要想着等到以后有时间了再总结,因为很有可能你以后更没有时间总结它们了。

——送给自己

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

我们知道对于PC机,使用电脑时我们首先按下开机按键,然后等待电脑的启动,开机完成后,我们会进行各种需要的操作,如qq聊天、写CSDN博客等。其实这个过程是:启动BIOS程序,由BIOS程序引导Windows操作系统,再由操作系统识别C盘D盘等硬盘,最后运行应用程序QQ、CSDN等。对嵌入式系统来说,对应BIOS的是Bootloader程序,由Bootloader程序启动Linux内核,再由内核挂载“根文件系统”,最后运行应用程序。这里所说的u-boot是Bootloader中的一种,除了u-boot外,还有LILO、GRUB、Vivi等等。

上面的分析可以看出嵌入式系统的几个层次,以及各层次的关系。

用户应用程序
文件系统
Linux内核
Bootloader引导加载程序

可以这样理解Bootloader程序的作用:它是一段程序,在系统上电后,首先由它来进行一些硬件初始化,如关闭看门狗、改变系统时钟、初始化存储控制器、将更多代码复制到内存中去,从而准备好软件环境,最后调用操作系统内核,将内核复制到内存中。

内核程序比较大,不可能放在内存中,而是放在Flash中,而Bootloader的主要作用就是引导内核,也就是从Flash中读出内核,然后把它加载到内存中。因此,它至少要有能够读Flash的功能、初始化SDRAM的功能,并能够启动内核。这些基本的功能就构成了所谓的启动加载模式功能。那么内核又是怎么存放到Flash上面去的呢,有可能是芯片出厂时直接烧写到了芯片上的,但更多的可能是开发过程中通过u-boot烧写到芯片上去的。那么u-boot除了有读Flash外,还必须有写Flash的功能,通过什么写呢,所以还可能需要网卡、USB等等为开发方便而支持的功能,这就是所谓的下载模式功能。除此之外,u-boot的功能还包括给内核传递参数等细节性的内容,以后的学习中会详细的总结。

了解了u-boot的作用后,就是使用u-boot了,下面给出u-boot的初步体验:

所用开发板是JZ2440。

解压 tar xjf u-boot-1.1.6.tar.bz2
打补丁 cd u-boot-1.1.6; patch -p1 < ../u-boot-1.1.6_jz2440.patch
配置 make 100ask24x0_config
编译 make

上面的步骤完成后,如果执行结果无误,会生成一个u-boot.bin的二进制文件,它就是可以直接烧入ROM、NOR Flash的文件,把该文件下载到开发板上就可以体验使用u-boot 了。其实,除了u-boot.bin二进制文件外,还有u-boot的ELF格式的可执行文件,u-boot的Motorola S_Record格式的可执行文件。除此之外,还会生成一些工具文件,如tool子目录下面的mkimage文件,将它复制到/usr/local/bin目录下,在编译内核时会使用mkimage来生成u-boot格式的内核映像文件uImage(这一点在后面会提到)。

将u-boot.bin文件下载到开发板上后,启动它,然后就能够使用u-boot内的命令了,如print查看环境变量、hlep查看帮助信息、set设置环境变量等等。

参考:本总结参考自 韦东山的<嵌入式Linux应用开发完全手册> 在此向其表示感谢。

u-boot学习(一):u-boot概述,布布扣,bubuko.com

时间: 2024-10-13 16:27:47

u-boot学习(一):u-boot概述的相关文章

Spring Boot学习笔记——Spring Boot与Redis的集成

一.添加Redis缓存 1.添加Redis起步依赖 在pom.xml中添加Spring Boot支持Redis的依赖配置,具体如下: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>1.4.7.RELEASE</version> </

Spring boot学习(六)Spring boot实现AOP记录操作日志

前言 在实际的项目中,特别是管理系统中,对于那些重要的操作我们通常都会记录操作日志.比如对数据库的CRUD操作,我们都会对每一次重要的操作进行记录,通常的做法是向数据库指定的日志表中插入一条记录.这里就产生了一个问题,难道要我们每次在 CRUD的时候都手动的插入日志记录吗?这肯定是不合适的,这样的操作无疑是加大了开发量,而且不易维护,所以实际项目中总是利用AOP(Aspect Oriented Programming)即面向切面编程这一技术来记录系统中的操作日志. 日志分类 这里我把日志按照面向

Spring Boot 学习笔记1---初体验之3分钟启动你的Web应用

前言 早在去年就简单的使用了一下Spring Boot,当时就被其便捷的功能所震惊.但是那是也没有深入的研究,随着其在业界被应用的越来越广泛,因此决定好好地深入学习一下,将自己的学习心得在此记录,本文主要围绕以下几点进行说明: Spring Boot 简介 使用Spring Boot快速搭建一个Web应用如有不对的地方,请指正. 1. Spring Boot简介 Spring Boot是一个基于Spring的衍生框架,其主要的目的是帮助我们快速构建独立.生产级别的Spring的应用,其崇尚的理念

Spring Boot学习——Spring Boot简介

最近工作中需要使用到Spring Boot,但是以前工作中没有用到过Spring Boot,所以需要学习下Spring Boot.本系列笔记是笔者学习Spring Boot的笔记,有错误和不足之处,请不吝指教. 话不多说,直接进入主题. Spring Boot是为了简化Spring应用的创建.运行.调试.部署等而出现,使用它可以做到专注于Spring应用的开发,而无需过多关注xml的配置.简单的说,Spring Boot提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题--习惯大于约定. Sp

Spring Boot学习记录(一)--环境搭建

Spring Boot学习记录(一)–环境搭建 标签(空格分隔): spring-boot 最近趁着下班闲时间学习spring-boot,记录下学习历程,最后打算实战一个API管理平台,下面开始环境配置. 1.工程结构 使用maven建立一个普通结构,因为spring-boot内嵌tomcat,所以打包只需要打包成jar就可以直接运行,所以并不像以前那样建立WEB程序了,目录如下,类可以先建立好放在那: 2.引入maven依赖 根据官方教程提示,直接引入parent就可以使用spring-boo

Spring Boot学习记录(三)--整合Mybatis

Spring Boot学习记录(三)–整合Mybatis 标签(空格分隔): spring-boot 控制器,视图解析器前面两篇都已弄好,这一篇学习持久层框架整合. 1.数据源配置 数据源使用druid,maven引入相关依赖,包括spring-jdbc依赖,mysql依赖 1.转换问题 配置的过程要学会为什么这样配置,而不是只学会了配置.这里我们可以和以前的配置方式对比: 以前版本 <!--配置数据库连接池Druid--> <bean id="dataSource"

Spring Boot学习记录(二)--thymeleaf模板

Spring Boot学习记录(二)–thymeleaf模板 标签(空格分隔): spring-boot 自从来公司后都没用过jsp当界面渲染了,因为前后端分离不是很好,反而模板引擎用的比较多,thymeleaf最大的优势后缀为html,就是只需要浏览器就可以展现页面了,还有就是thymeleaf可以很好的和spring集成.下面开始学习. 1.引入依赖 maven中直接引入 <dependency> <groupId>org.springframework.boot</gr

Spring boot 学习笔记 (二)- 整合MyBatis

Spring boot 学习笔记 (二)- 整合MyBatis Spring Boot中整合MyBatis,并通过注解方式实现映射. 整合MyBatis 以Spring boot 学习笔记 (一)- Hello world 为基础项目,在pom.xml中添加如下依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter&l

基于Spring Cloud的微服务构建学习-2 Spring Boot

基于Spring Cloud的微服务构建学习-2 Spring Boot 为什么使用Spring Boot而不是Spring Spring Boot具有自动化配置,快速开发,轻松部署优点,非常适合用作微服务架构中各项具体微服务的开发框架.它不仅可以帮助我们快速的构建微服务,还可以轻松简单的整合Spring Cloud实现系统服务化,而如果使用了传统的Spring构建方式的话,在整合过程中我们还需要做更多的依赖管理工作才能让它们完好的运行起来. Spring Boot的宗旨并非是重写Spring或

Spring boot 学习笔记 - Hello world

Spring boot 学习笔记 - Hello world spring boot介绍: spring-boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. Hello world 通过官网https://start.spring.io/