uboot移植

article/2025/10/6 17:42:58

一、我们知道uboot就是一个Bootloader。但是,arm不像我们的pc机一样,用一个老毛桃随便找一个网站下一个windows镜像就可以直接装了。
我们的uboot对应的就是老毛桃里面刷的引导程序。

虽然uboo支持很多架构很多不同的厂家的板子,但是UBOOT它不具备通用性。
跟我们的电脑不一样,电脑无论是华为的,小米的,华硕的老毛桃刷的底层引导程序都i是一样的。

所以uboot移植是要跟做手术一样对一些东西进行一些裁剪和配置。让uboot适配我们板子。
下面我们说一下移植的步骤。
1)首先肯定要去下载一个ubbot的源码。
没有源码你怎么去裁剪和配置。
直接百度uboot的官网然后找source code(源码)
下载和我们的在我们的开发板所用的测试板发布之后的版本且时间要最好相近一点。这样的版本适配性才是最好的。比如说我现在用的是SAMSUNG的a9exyons的芯片,三星的这个芯片的发行板叫origen。
这个发行版的时间大概在12年所以我们下载13年的就可以了。

在这里插入图片描述
下载完之后把它复制到uboot里面,并且解压出来。
这样我们就得到了uboot的源码。
在这里插入图片描述
这些是源码的分类。
1)API:就是接口的一下实现。
2)arch:就是架构类型,
在这里插入图片描述
3)board:J就是板子的类型大部分大公司的发行板都有
在这里插入图片描述
这些都是公司名称,有熟悉的SAMSUNG和ST等等,这些公司下的目录就是他们发行的板子类型
在这里插入图片描述
我们要找的origen也在里面。
uboot之所以支持很多处理 器就是因为它把常用的架构和公司的板子都写进去了,有大公司发行板子,它又重新写进去,所以版本不要最新,只要最近。
4)COMMON:就是我们通用的uboot命令就是我们在板子的终端上按下help下所打印的命令,比如我们的设置环境变量的命令。
5)fs:文件管理系统
6)drinver:就是驱动的设备。
7)net:网络文件,比如我们之前用的TFTP和nfs都在这里。
8)MAKEFILE:这个是写好的makefile辅助我们去编译代码。
。。。。。。。。。。。
——————————————————————
以上讲了Uboot里面大概有什么东西。下面讲移植的过程。
在这里插入图片描述
1、指定我们当前的硬件平台,比如我们是samsung的
origen芯片。我们就用
make origen_config
这样makefile就知道我们的硬件平台了,然后就不会编译其它的硬件。

2、指定编译器。
我们是arm架构肯定得用arm的编译器,所以你得告诉makefile的用ARM的编译器
vi Makefile
//CORSS_COMPILE (找到交叉编译)
在这里插入图片描述
改成这个样子,指定用arm-none-linux-guneabi-
这个交叉编译工具链去编译。
在这里插入图片描述
3、编译Uboot
make
4、消除中间文件,只要目标文件。那些对与我们没有用,的编译过程中产生的中间文件我们要删掉
用makeclean
5、恢复原来到make之前的状态用
make distclean
——————————————————————
这样make出来的.bin的文件是只使用于三星的origen的这个评估板用的。并且只能在这个评估板上面用,换另一个板子就不可以了。那我们的芯片类型知识和origen的芯片一样,那些板子的硬件不一样,所以这个uboot肯定还不行。比如电源接口,网络接口,串口,这些东西和origen的板子的地址和配置方式完全不一样。
所以我们还要对这些东西做一个配置。

1)我们先重uboot下面 的三星的origen复制一个,并改上我们自己的名字fs4412,然后makefile的名字也要改。

2)添加三星加密引导方式。
查看我们下的uboot很明显它没有bios的程序,这是因为,三星把这些东西不设为开源,加密了,这加密文件需要我们自己去获取。
将资料中“移植相关文件”下的sdfuse_q、CodeSign4SecureBoot目录拷贝到uboot源 码的顶层目录下

3)添加调试代码(点灯法)
添加我们一上电的初始现象代码。

4)添加编译脚本
我们之前添加了三星的加密引导,但是这个加密引导得和其它文件一起编译才行啊,要不然放在目录里面上面都不干。
使用make命令编译时只链接uboot源码中的相关代码,而我们添加的初始引导加密的 代码不会被连接到u-boot.bin中,所以这里我们自己编写编译脚本build.sh,这个脚本 中除了对uboot源码进行配置和编译外还将初始引导加密代码链接到了u-boot.bin上, 最终生成一个完成的uboot镜像u-boot-fs4412.bin
这样改以后可以运行,但是你会发现我们的超级终端上面都不显示,这是因为,串口的有问题,你运行起了,但是信息不知道打过哪里去了。

5)实现串口输出

6)网卡移植

7)EMMC移植

8)电源管理移植


http://chatgpt.dhexx.cn/article/1gT5SkRG.shtml

相关文章

【Linux】系统移植篇四--uboot移植

系统移植篇四--uboot移植 一、uboot源码结构1、uboot源码获取2、uboot特点3、uboot源码结构 二、uboot的配置与编译1、uboot配置2、uboot编译 前言:本篇主要介绍uboot的一些结构与相关配置,uboot是一款免费开源的芯片启动软件,代码完全开源&a…

uboot移植过程

uboot移植过程 IMX6ULL 文章目录 uboot移植过程 IMX6ULL 前言一、从原厂中移植uboot进行测试二、在U-Boot中添加自己的硬件1. 添加默认配置文件2. 添加对应的头文件3. 添加对应的板级文件夹3.1 修改Makefile文件3.2 修改 mx6ull_alientek 目录下的 imximage.cfg 文件3.3 修改 m…

MediaCodec对接到OMX的简单分析

一、引言: nuplayer播放器是使用MediaCodec来进行编解码的,而OMX组件则是MediaCodec的解码核心,但是因为涉及的面太过底层,往往是芯片公司才会涉及到这一块,所以就做一个简单分析,对通路有个大致了解就行。…

MediaCodec(native)状态机分析

一、引入: MediaCodec这条通路的调用逻辑是MediaCode->ACodec->OMX,因为OMX有自己的状态机,所以MediaCodec和ACodec也分别基于OMX组件的调用维护了其状态机,这篇博客就先分析MediaCodec的状态机是如何运转的。 二、MediaCo…

视频-MediaCodec

1.解析视频可以使用android 提供的api MediaPlayer,实现简单的播放暂停,提取视频中的一帧或者编辑视频,需要另一个api MediaCodec(硬解,控制DSP芯片)或者 ffmpeg(软解,耗时),选择的优先级一定要…

MediaCodec解析MP4视频

MediaCodec讲解 MediaCodec是Android提供的用于对音视频进行编解码的类,它通过访问底层的codec来实现编解码的功能。是Android media基础框架的一部分,通常和 MediaExtractor, MediaSync, MediaMuxer, MediaCrypto, MediaDrm, Image, Surface和AudioTra…

Android视频编解码之MediaCodec简单入门

本篇只是简单入门,后面会继续写文章详细讲解: 由于MediaCodec涉及内容众多,原本想一篇文章把所有内容概括,但是后来发现不太可能,限于自己能力,想要考虑全面太难,我也是刚开始学习需要借助网上…

Android:MediaCodec基本原理

最近需要使用MediaCodec做一些工作,因此对MediaCodec做了些研究和代码编写,在此先对MediaCodec的一些基础原理、工作流程、常用API等做个初步总结,方便后续开发过程中查阅。 1.MediaCodec简介 1.1 MediaCodec来历 Android从最初的API 1.0版…

MediaCodec原理及使用

使用MediaCodec目的 MediaCodec是Android底层多媒体框架的一部分,通常与MediaExtractor、MediaMuxer、AudioTrack结合使用,可以编码H264、H265、AAC、3gp等常见的音视频格式 MediaCodec工作原理是处理输入数据以产生输出数据 MediaCodec工作流程 Medi…

Android MediaCodec

Android中可以使用MediaCodec来访问底层的媒体编解码器,可以对媒体进行编/解码。 MediaCodec可以处理的数据有以下三种类型:压缩数据、原始音频数据、原始视频数据。这三种类型的数据均可以利用ByteBuffers进行处理,但是对于原始视频数据应提…

android P MediaCodec编解码流程分析

1.MediaCodec初始化流程分析 通过上面流程分析可知,MediaCodecList初始化是通过调用它的getLocalInstance函数,然后在里面new的MediaCodecList对象。在MediaCodec的CreateByType函数中new了MediaCodec对象。 allocateNode调用流程是在ACodec.cpp中的onA…

MediaCodec_Analyze-3-start

MediaCodec Analyse – start Refrence: https://source.android.google.cn/devices/media 一 APK调用的核心API Android APK使用 MediaCodec API 播放音视频的简易流程: MediaCodec codec MediaCodec.createDecoderByType("video/avc"); MediaFormat …

mediacodec api

mediacodec api 官网: https://developer.android.com/reference/android/media/MediaCodec 中文: https://www.apiref.com/android-zh/android/media/MediaCodec.html 学习mediacodec api的使用说明,在android源码查看: andro…

MediaCodec硬解流程

一 MediaCodec概述 MediaCodec 是Android 4.1(api 16)版本引入的低层编解码接口,同时支持音视频的编码和解码。通常与MediaExtractor、MediaMuxer、AudioTrack结合使用,能够编解码诸如H.264、H.265、AAC、3gp等常见的音视频格式。MediaCodec在编解码的过…

MediaCodec_Analyze-1-create

MediaCodec Analyse – create Refrence: https://source.android.google.cn/devices/media 一 APK调用的核心API Android APK使用 MediaCodec API 播放音视频的简易流程: MediaCodec codec MediaCodec.createDecoderByType("video/avc"); MediaFormat…

mediacodec

MedaiCodec简介 MediaCodec是Android中提供的音视频编/解码工具。它主要是完成上层接口的封装,供给开发者使用,编解码功能实际是在native底层服务中完成的 MediaCodec工作流程 包括两个缓冲区队列 一个输入缓冲区队列,包含一组输入缓冲区(格…

Android MediaCodec 完全解析

MediaCodec是什么? MediaCodec类为开发者提供了能访问到Android底层媒体Codec(Encoder/Decoder)的能力,它是Android底层多媒体基础架构的一部分(通常和MediaExtractor、MediaSync、MediaMuxer、MediaCrypto、MediaDrm…

Android MediaCodec解析

Android MediaCodec解析 1 引言 MediaCodec是Android平台提供的一个底层的音视频编解码框架,它是安卓底层多媒体基础框架的重要组成部分。它经常和 MediaExtractor, MediaSync, MediaMuxer, MediaCrypto, MediaDrm, Image, Surface, AudioTrack一起使用。解码的作…

Android原生编解码接口MediaCodec详解

作者:躬行之 了解了音视频的相关知识,可以先阅读同系列文章: 音视频开发基础知识音频帧、视频帧及其同步Camera2、MediaCodec录制mp4 MediaCodec 是 Android 中的编解码器组件,用来访问底层提供的编解码器,通常与 Me…

MediaCodec视频解码流程详解及参考demo

一、MediaCodec简介 MediaCodec是Android自带的底层多媒体支持架构的一部分(通常与 MediaExtractor,MediaSync,MediaMuxer,MediaCrypto,MediaDrm,Image,Surface 和 AudioTrack 一起使用&#xf…