- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 U-boot2018.11源码分析-CLI
cli是命令行接口的简写(command line interface)。功能与操作系统的控制台是一样的,用来访问软件提供的服务。CLI使用hush shell作为命令行解释器,能处理命令行脚本。除了u-boot定义的命令外,还可以通过run命令执行多条命令,通过source命令执行加载到内存中的脚本。 CLI命令层 命令解析层 命令执行...
2019-08-13 13:04:34
323
原创 U-boot2018.11源码分析-环境变量(二)
上节介绍了环境变量的基本概念和使用方法,这一节环境变量的实现。在U-boot中环境变量相关的源码目录。U-boot支持多种非易失设备存放环境变量,为屏蔽设备之间的差异,环境变量实现中需提供统一访问接口,对变量进行读出和写回;在使用环境变量时,变量的值类型有很多,字符串类型、整型等,U-boot环境变量的实现中也提供了一组接口供上层使用。存储结构环境变量在非易失设备的存储结构如下:...
2019-08-12 18:41:10
647
原创 U-boot2018.11源码分析-环境变量(一)
U-boot的环境变量保存在存储器上,在U-boot启动时,从存储器加载到RAM中,环境变量用来配置对系统进行配置,决定着U-boot的行为。U-boot的环境变量分为两类:系统环境变量和用户环境变量。系统环境变量是U-boot默认定义的环境变量;用户变量是用户存放数据的环境变量。U-boot系统环境变量在U-boot中,有一些重要的环境变量,列举如下:U-boot默认环境变量 变量...
2019-08-12 15:15:50
840
原创 U-boot2018.11源码分析-linker list数据结构
本篇博客分析U-boot2018.11中重要的数据存储方式 linker list。普通的双链表由C语言编译器最后编译到程序的数据段中,与程序的其他数据存放在一起。在U-boot中,定义了Linker list这种结构,linker list结构的数据存放特定的段中,不与程序的其他数据存放在一起。背景知识C语言的编译器和链接器一起将C语言源文件程序,编译链接成最终的目标程序。每个...
2019-08-09 21:04:34
2265
原创 AM3352时钟系统分析
这节分析am3352芯片的电源,重置和时钟管理自系统(PRCM)。时钟系统的流程图通常情况下,系统的时钟流向为:外部晶振 -> 内部PLL锁相环 -> 内部分频器 -> PRCM总体结构时钟系统有多个模块组成:外部晶振,内部PLL锁相环,内部分频器,时钟管理PRCM。振荡器:向内部PLL锁相环提供参考时钟信号内部DPLL锁相环:也称为倍频器,提升信号频率,...
2019-08-09 20:01:19
2460
1
原创 制作SD卡系统镜像img文件
img为一种镜像文件格式,它包含整个系统的所需要的文件。#!/bin/bash_ersze=10# 进入脚本所在目录_DIR=$( cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd )cd $_DIRsdcard="bbb.img"# 设置boot分区大小为40MB,根文件系统为1Gfatsize=40linuxs...
2019-08-09 17:18:01
9834
1
原创 开发板上编译内核模块
一般情况下,ARM驱动通过PC进行开发。但有些简单的驱动示例,可以直接在ARM板上进行编译和运行。使用自己编译的Kernel,如果使板子支持驱动开发呢?1. 将linux源码解压后,复制到ARM板的/usr/src/目录下2. 进入ARM板源码根目录,执行下列命令# make mrproper# make ARCH=arm bb.org_defconfig# make AR...
2019-08-09 13:03:42
710
原创 U-boot源码阅读-使用u-boot.map定位函数位置
在阅读U-boot源码时,同一个函数会有多个定义,这不利于快速理解U-boot。如何唯一定位函数的位置呢?原理在我们配置、编译U-boot后,gcc将生成一个map文件。在map文件中,包含函数名以及函数所在文件。我们可以通过通过这个map文件,快速定位我们想要分析函数的位置。为方便手动查找,编写一个脚本,以函数名为参数,输出定义函数的文件和行号,并用vim打开。脚本名"s", 内容:...
2019-08-09 09:22:19
1078
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人