uboot移植之mx6ull_alientek_nand.h文件详解三
一. 简介
mx6ull_alientek_nand.h文件是 开发板的 uboot的一个配置文件。每个开发板都有一个 .h的配置文件。
mx6ull_alientek_nand.h 文件其实是 之前针对正点原子ALPHA开发板移植的 Uboot配置文件。
本文继上一篇文章的学习,地址如下:
uboot移植之mx6ull_alientek_nand.h文件详解二-CSDN博客
本文继续分析针对正点原子ALPHA开发板的 配置文件: mx6ull_alientek_nand.h。
二. mx6ull_alientek_nand.h文件详解
继续分析 mx6ull_alientek_nand.h 文件的内容。
1. EMMC分区
#define CONFIG_SYS_MMC_ENV_DEV 1 /* USDHC2 */
#define CONFIG_SYS_MMC_ENV_PART 0 /* user area */
#define CONFIG_MMCROOT "/dev/mmcblk1p2" /* USDHC2 */
2. 针对 NAND-Flash版的开发板。
/* NAND stuff */
#ifdef CONFIG_SYS_USE_NAND
#define CONFIG_CMD_NAND
#define CONFIG_CMD_NAND_TRIMFFS#define CONFIG_NAND_MXS
#define CONFIG_SYS_MAX_NAND_DEVICE 1
#define CONFIG_SYS_NAND_BASE 0x40000000
#define CONFIG_SYS_NAND_5_ADDR_CYCLE
#define CONFIG_SYS_NAND_ONFI_DETECTION/* DMA stuff, needed for GPMI/MXS NAND support */
#define CONFIG_APBH_DMA
#define CONFIG_APBH_DMA_BURST
#define CONFIG_APBH_DMA_BURST8
#endif
与 NAND 有关的宏定义,如果使用 NAND 的话。
3. 环境变量偏移地址,针对不同版的开发板偏移地址不同。
#define CONFIG_ENV_SIZE SZ_8K
#if defined(CONFIG_ENV_IS_IN_MMC)
#define CONFIG_ENV_OFFSET (12 * SZ_64K)
#elif defined(CONFIG_ENV_IS_IN_SPI_FLASH)
#define CONFIG_ENV_OFFSET (768 * 1024)
#define CONFIG_ENV_SECT_SIZE (64 * 1024)
#define CONFIG_ENV_SPI_BUS CONFIG_SF_DEFAULT_BUS
#define CONFIG_ENV_SPI_CS CONFIG_SF_DEFAULT_CS
#define CONFIG_ENV_SPI_MODE CONFIG_SF_DEFAULT_MODE
#define CONFIG_ENV_SPI_MAX_HZ CONFIG_SF_DEFAULT_SPEED
#elif defined(CONFIG_ENV_IS_IN_NAND)
#undef CONFIG_ENV_SIZE
#define CONFIG_ENV_OFFSET (60 << 20)
#define CONFIG_ENV_SECT_SIZE (128 << 10)
#define CONFIG_ENV_SIZE CONFIG_ENV_SECT_SIZE
#endif
4. 与 USB 相关的宏定义。
但是我们在做 uboot移植时,并没有使用到 usb。
/* USB Configs */
#define CONFIG_CMD_USB
............
#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
#endif
5. 网络相关配置
#ifdef CONFIG_CMD_NET
#define CONFIG_CMD_PING
#define CONFIG_CMD_DHCP
#define CONFIG_CMD_MII
#define CONFIG_FEC_MXC
#define CONFIG_MII
#define CONFIG_FEC_ENET_DEV 1#if (CONFIG_FEC_ENET_DEV == 0)
#define IMX_FEC_BASE ENET_BASE_ADDR
#define CONFIG_FEC_MXC_PHYADDR 0x2
#define CONFIG_FEC_XCV_TYPE RMII
#elif (CONFIG_FEC_ENET_DEV == 1)
#define IMX_FEC_BASE ENET2_BASE_ADDR
#define CONFIG_FEC_MXC_PHYADDR 0x1
#define CONFIG_FEC_XCV_TYPE RMII
#endif
#define CONFIG_ETHPRIME "FEC"#define CONFIG_PHYLIB
#define CONFIG_PHY_MICREL
#endif
6. 其他配置项
例如,开启LCD,屏幕上显示 LOG图片等。
#define CONFIG_IMX_THERMAL#ifndef CONFIG_SPL_BUILD
#define CONFIG_VIDEO
#ifdef CONFIG_VIDEO
#define CONFIG_CFB_CONSOLE
#define CONFIG_VIDEO_MXS
#define CONFIG_VIDEO_LOGO
#define CONFIG_VIDEO_SW_CURSOR
#define CONFIG_VGA_AS_SINGLE_DEVICE
#define CONFIG_SYS_CONSOLE_IS_IN_ENV
#define CONFIG_SPLASH_SCREEN
#define CONFIG_SPLASH_SCREEN_ALIGN
#define CONFIG_CMD_BMP
#define CONFIG_BMP_16BPP
#define CONFIG_VIDEO_BMP_RLE8
#define CONFIG_VIDEO_BMP_LOGO
#define CONFIG_IMX_VIDEO_SKIP
#endif
#endif#define CONFIG_IOMUX_LPSR#if defined(CONFIG_ANDROID_SUPPORT)
#include "mx6ullevk_android.h"
#endif#endif
三. 总结
针对 uboot 的裁剪,其实通过 mx6ull_alientek_nand.h 头文件的更改可以完成。
mx6ull_alientek_nand.h头文件中,使用了很多功能。如果使能了某个功能,则这个功能对应的源码就会编译进 uboot里面。
相关文章:
uboot移植之mx6ull_alientek_nand.h文件详解三
一. 简介 mx6ull_alientek_nand.h文件是 开发板的 uboot的一个配置文件。每个开发板都有一个 .h的配置文件。 mx6ull_alientek_nand.h 文件其实是 之前针对正点原子ALPHA开发板移植的 Uboot配置文件。 本文继上一篇文章的学习,地址如下:uboot移植之m…...
[Docker]一.Docker 简介与安装
一、Docker简介与为什么要用 Docker 1.1、Docker 介绍 Docker 是一个跨平台的开源的 应用容器引擎 ,诞生于 2013 年初,基于 Go语言 并遵从 Apache2.0 协议开源, Docker 可以把它理解成虚拟机,但是 Docker 和传统虚拟化方式 有所不同 …...
计算机网络-计算机网络体系结构-传输层
目录 一、UDP 二、TCP 特点 首部格式 连接管理 可靠传输 流量控制(点对点) 拥塞控制(全局) 三、拥塞控制算法 慢开始&拥塞避免 快重传&快恢复 功能一:提供进程与进程之间的逻辑通信 功能二:复用和分用 功能三:对收到的报…...
buuctf[HCTF 2018]WarmUp 1
题目环境: 发现除了表情包,再无其他F12试试发现source.php文件访问这个文件,格式如下:url/source.php回显如下:PHP代码审计: <?php highlight_file(__FILE__); class emmm {public static function ch…...
开源博客项目Blog .NET Core源码学习(4:生成验证码)
开源博客项目Blog中的后台管理登录界面中支持输入验证码(如下图所示),本文学习并记录项目中验证码的生成及调用方式。 博客项目中调用VerifyCode类生成验证码,该类位于App.Framwork项目中,命名空间为App.Framwork…...
gin框架39--重构 BasicAuth 中间件
gin框架39--重构 BasicAuth 中间件 介绍gin BasicAuth 解析自定义newAuth实现基础认证注意事项说明 介绍 每当我们打开一个网址的时候,会自动弹出一个认证界面,要求我们输入用户名和密码,这种BasicAuth是最基础、最常见的认证方式࿰…...
编译pycaffe过程中遇到的问题及解决
pycaffe是python调用caffe的方式,编译它就是要得到一个so库_pycaffe.so。 如题,在caffe的源码目录下,执行make pycaffe,跳出来一个错误: $ make pycaffe CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp /usr/bin/ld…...
自然语言处理---Transformer机制详解之Transformer优势
1 Transformer的并行计算 对于Transformer比传统序列模型RNN/LSTM具备优势的第一大原因就是强大的并行计算能力. 对于RNN来说,任意时刻t的输入是时刻t的输入x(t)和上一时刻的隐藏层输出h(t-1),经过运算后得到当前时刻隐藏层的输出h(t),这个…...
改进YOLO系列 | YOLOv5/v7 引入 Dynamic Snake Convolution | 动态蛇形卷积
准确分割拓扑管状结构,如血管和道路,在各个领域中至关重要,可以确保下游任务的准确性和效率。然而,许多因素使任务复杂化,包括细小的局部结构和可变的全局形态。在这项工作中,我们注意到管状结构的特殊性,并利用这一知识来引导我们的DSCNet,以在三个阶段同时增强感知:…...
postgresql14-表的管理(四)
表table 创建表 CREATE TABLE table_name --表名 (column_name data_type column_constraint, --字段名、字段类型、约束字段(可选)column_name data_type, --表级别约束字段...,table_constraint );CREATE TABLE emp1 --创建表 AS SELECT * FROM empl…...
Java--Object类
Java中Object类是所有类的父类,是Java中最高层的类。用户创建一个类时,除非指定继承了某个类,否则都是继承于Object类。 由于所有类都继承于Object类,所以所有类都可以重写Object类中的方法。但是Object类中被final修饰的getClass…...
交换机端口灯常亮 端口up状态 服务器设置ip交换机获取不到服务器网卡mac地址 不能通信
环境: 深信服防火墙 8.0.75 AF-2000-FH2130B-SC S6520X-24ST-SI交换机 version 7.1.070, Release 6530P02 问题描述: 交换机一个vlan下有3台服务器,连接端口2、3、4,2和3连接的服务器正常,交换机3端口灯常亮 端口up状态 服务器自动获取不了地址,改为手动设置ip后,交…...
Linux笔记之diff和vimdiff
Linux笔记之diff和vimdiff code review! 文章目录 Linux笔记之diff和vimdiff一.diff1.1.使用diff比较文件夹1.2.使用diff比较文件1.4.colordiff——带颜色输出差异 二.vimdiff2.1.vimdiff颜色差异2.2.vimfiff调整栏宽2.3.修改颜色变谈,使代码可以看清楚2.4.vimdif…...
目标检测YOLO实战应用案例100讲-基于改进的YOLOV5算法的垃圾分类模型
目录 前言 国内外研究现状 目标检测算法发展现状 YOLO算法的发展现状...
我做不到受每个人喜欢
我做不到受每个人喜欢 我想描述一下昨天发生争吵后我个人的观点,希望能够重新呈现出一种积极的态度。 首先,让我简要梳理一下事件的经过,当天我像往常一样去另一个宿舍找人聊天,可能因为说话声音有点大,坐在我后面的那…...
Linux笔记之diff工具软件P4merge的使用
Linux笔记之diff工具软件P4merge的使用 code review! 文章目录 Linux笔记之diff工具软件P4merge的使用1.安装和配置2.使用:p4merge a.cc b.cc3.配置git 参考博文: Ubuntu Git可视化比较工具 P4Merge 的安装/配置及使用 1.安装和配置 $ wget https://cdist2.per…...
使用 OpenSSL 扩展来实现公钥和私钥加密
首先,你需要生成一对公钥和私钥。可以使用 OpenSSL 工具来生成: 1、生成私钥 openssl genpkey -algorithm RSA -out private_key.pem 2、从私钥生成公钥: openssl rsa -pubout -in private_key.pem -out public_key.pem现在你有了一个私钥…...
二、安全与风险管理—安全与风险管理基础
目录 目录 1.什么是信息与信息的生命周期 2.信息安全的基本目标 3.风险管理与控制类型...
rust学习——栈、堆、所有权
文章目录 栈、堆、所有权栈(Stack)与堆(Heap)栈堆性能区别所有权与堆栈 所有权原则变量作用域所有权与函数返回值与作用域 栈、堆、所有权 栈(Stack)与堆(Heap) 栈和堆是编程语言最核心的数据结构,但是在很多语言中,你并不需要深入了解栈与堆。 但对于…...
如何从小白成长为AI工程师笔记
📚入门机器学习基础 对于本科生来说,需要打好数学基础,包括高数、概率论和线性代数。 对于已经上研究生或工作想转行的人来说,可以直接开始学习机器学习算法,重要的是理解算法的原理和推导过程。如果有时间和需要&am…...
西门子1200伺服步进FB块程序西门子程序模板 程序内含两个FB,一个是scl写的,一个是梯形...
西门子1200伺服步进FB块程序西门子程序模板 程序内含两个FB,一个是scl写的,一个是梯形图,可以多轴多次调用,中文注释详细。 真实可用,经过在专用设备真实调试运行,可以直接应用到实际项目中,提供…...
Leather Dress Collection 开源模型社区贡献指南:从使用到反馈
Leather Dress Collection 开源模型社区贡献指南:从使用到反馈 你是不是已经用Leather Dress Collection生成了一些很酷的皮革服装设计图,觉得这个模型挺有意思的?有没有想过,除了用它,你还能为这个项目做点什么&…...
CLAP模型镜像免配置价值:相比源码部署节省平均47分钟环境调试时间(开发者调研N=83)
CLAP模型镜像免配置价值:相比源码部署节省平均47分钟环境调试时间(开发者调研N83) 1. 开篇:音频分类的新体验 想象一下这样的场景:你手头有一段音频,可能是鸟鸣、可能是机器噪音、也可能是某段音乐&#…...
HPH的构造:核心部件与工作原理
在最近的这几天当中,海口正在举办的第六届中国国际消费品博览会呈现出了很高的热度,在科技消费展区之内,AI赋能的各种各样的新品集中进行了亮相,其覆盖了智能交互、穿戴设备以及智慧健康等多个不同的赛道,前沿科技同消…...
深入解析图像感知质量指标:从PSNR到Perceptual Index的实践指南
1. 图像质量评估的两种视角:从像素匹配到主观感知 当你用手机拍完照片准备发朋友圈时,可能会纠结要不要加滤镜——原图细节更丰富但略显平淡,滤镜版色彩鲜艳可细节模糊。这种选择困境背后,正是图像质量评估的两大流派:…...
craftzdog-homepage性能优化:10个提升网站速度的技巧
craftzdog-homepage性能优化:10个提升网站速度的技巧 【免费下载链接】craftzdog-homepage My homepage 项目地址: https://gitcode.com/gh_mirrors/cr/craftzdog-homepage 在当今数字化时代,网站性能优化已成为提升用户体验和搜索引擎排名的关键…...
微软在 Windows 手持设备 Xbox 模式测试虚拟鼠标光标,无需第三方软件轻松激活!
微软自研虚拟鼠标光标,提升手持设备操作体验 微软开始在基于 Windows 的手持设备的 Xbox 模式中测试自研的虚拟鼠标光标——“游戏手柄光标”(Gamepad Cursor)。该功能可将 Xbox Ally X 这类手持设备的左摇杆转变为虚拟鼠标,为用户…...
从图像压缩到信道反馈:CsiNet如何重塑大规模MIMO的深度学习范式
1. 当无线通信遇上计算机视觉:CSI为何能被看作图像? 第一次听说把信道状态信息(CSI)当作图像处理时,我的反应和大多数通信工程师一样:"这脑洞开得有点大吧?"但当我真正动手复现CsiNet…...
HC-SR04超声波模块避坑指南:STM32双边沿中断捕获Echo信号的完整流程与常见问题
HC-SR04超声波模块避坑指南:STM32双边沿中断捕获Echo信号的完整流程与常见问题 超声波测距在嵌入式开发中应用广泛,而HC-SR04因其性价比高、接口简单成为最常用的模块之一。但在实际项目中,不少开发者会遇到中断误触发、计时不准、代码逻辑混…...
宝塔面板安装后MySQL无法启动_修复数据表损坏与日志恢复
MySQL启动失败应先查错误日志:主路径为/www/server/data/*.err,次选/www/server/mysql/logs/error.log;若不存在则找/www/server/data/下最新.err文件;再结合my.cnf中log-error配置确认实际路径。MySQL 启动失败时先看 mysqld 错误…...
