u-boot-2016.11移植u-boot.bin

u-boot-2016.11移植uboot-spl.bin 一、时钟初始化 1、修改clock.h cd arch/arm/mach-s5pv210/include/mach/vim clock.h /* add by Sourcelink */ struct s5pv210_clock { unsigned int apll_lock; unsigned char res1[0x04]; un 阅读详情

https://github.com/SourceLink/S5PV210

1、修改堆栈指针

vim include/configs/smdkv210.h 
#define CONFIG_SYS_LOAD_ADDR            CONFIG_SYS_SDRAM_BASE + 0x40000000              /* modied by Sourcelink */
#define CONFIG_SYS_INIT_SP_ADDR         CONFIG_SYS_LOAD_ADDR            		/* modied by Sourcelink */
#define CONFIG_SYS_SDRAM_BASE           0x20000000     					/* modied by Sourcelink */

2、添加串口

a)添加串口初始化引脚代码

vim board/samsung/smdkv210/lowlevel_init.S
        
ldr     r0, =0xE0200000
ldr     r1, =0X22222222
str     r1, [r0]


b)添加串口初始化配置代码

vim drivers/serial/serial_s5p.c

/*
 * (C) Copyright 2009 SAMSUNG Electronics
 * Minkyu Kang <mk7.kang@samsung.com>
 * Heungjun Kim <riverful.kim@samsung.com>
 *
 * based on drivers/serial/s3c64xx.c
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */

#include <common.h>
#include <fdtdec.h>
#include <linux/compiler.h>
#include <asm/io.h>
#include <asm/arch/uart.h>
#include <asm/arch/clk.h>
#include <serial.h>

DECLARE_GLOBAL_DATA_PTR;

#define RX_FIFO_COUNT_MASK	0xff
#define RX_FIFO_FULL_MASK	(1 << 8)
#define TX_FIFO_FULL_MASK	(1 << 24)

/* Information about a serial port */
struct fdt_serial {
	u32 base_addr;  /* address of registers in physical memory */
	u8 port_id;     /* uart port number */
	u8 enabled;     /* 1 if enabled, 0 if disabled */
} config __attribute__ ((section(".data")));

static inline struct s5p_uart *s5p_get_base_uart(int dev_index)
{
#ifdef CONFIG_OF_CONTROL
	return (struct s5p_uart *)(config.base_addr);
#else
	u32 offset = dev_index * sizeof(struct s5p_uart);
	return (struct s5p_uart *)(samsung_get_base_uart() + offset);
#endif
}

/*
 * The coefficient, used to calculate the baudrate on S5P UARTs is
 * calculated as
 * C = UBRDIV * 16 + number_of_set_bits_in_UDIVSLOT
 * however, section 31.6.11 of the datasheet doesn't recomment using 1 for 1,
 * 3 for 2, ... (2^n - 1) for n, instead, they suggest using these constants:
 */
static const int udivslot[] = {
	0,
	0x0080,
	0x0808,
	0x0888,
	0x2222,
	0x4924,
	0x4a52,
	0x54aa,
	0x5555,
	0xd555,
	0xd5d5,
	0xddd5,
	0xdddd,
	0xdfdd,
	0xdfdf,
	0xffdf,
};

static void serial_setbrg_dev(const int dev_index)
{
	struct s5p_uart *const uart = s5p_get_base_uart(dev_index);
	u32 uclk = get_uart_clk(dev_index);
	u32 baudrate = gd->baudrate;
	u32 val;

#if defined(CONFIG_SILENT_CONSOLE) && \
		defined(CONFIG_OF_CONTROL) && \
		!defined(CONFIG_SPL_BUILD)
	if (fdtdec_get_config_int(gd->fdt_blob, "silent_console", 0))
		gd->flags |= GD_FLG_SILENT;
#endif

	if (!config.enabled)
		return;

	val = uclk / baudrate;

	writel(val / 16 - 1, &uart->ubrdiv);

	if (s5p_uart_divslot())
		writew(udivslot[val % 16], &uart->rest.slot);
	else
		writeb(val % 16, &uart->rest.value);
}

/*
 * Initialise the serial port with the given baudrate. The settings
 * are always 8 data bits, no parity, 1 stop bit, no start bits.
 */
static int serial_init_dev(const int dev_index)
{
	struct s5p_uart *const uart = s5p_get_base_uart(dev_index);

	/* enable FIFOs, auto clear Rx FIFO */
	writel(0x3, &uart->ufcon);
	writel(0, &uart->umco
一、【s3c2440移植u-boot-2016-11】拷贝代码并在NOR Flash上启动u-boot (一)拷贝模板 1、拷贝board/samsung/smdk2410为board/samsung/smdk2440 book@ubuntu:~$ cd u-boot-2016.11/board/samsung/ book@ubuntu:~/u-boot-2016.11/board/samsung$ ls arndale espresso7420 odroid smdk2410 smdk54... 阅读详情

相关推荐

ZYNQ7000(AX7020)移植Linux操作系统(二):u-boot的编译和启动

总述 我们已经在 PC 上已经安装了 Ubuntu 客户操作系统,以及在 Ubuntu 操作系统里安装了 SDK 2015.4 工具。要想在 Zynq 平台上运行 Ubuntu 操作系统,必项预先制作作镜像文件,而镜像文件中必项有 u-boot、内核、设备树及文件系统。本章则将为大家说明u-boot 的原理及配置和编译的方法,以及 u-boot 启动测试。 一、u-boot 原理及实现 u-boot是德国DENX小组开发的用于多种嵌入式CPU的bootloader程序。当前,u-boot不仅支持嵌入式 Li

weixin_43216826的博客 4391

嵌入式开发环境搭建:如何为你的ZYNQ开发板选择和配置正确的arm-linux-gnueabihf-gcc版本

本文详细探讨了嵌入式开发中如何为ZYNQ开发板选择和配置正确的arm-linux-gnueabihf-gcc版本,避免版本兼容性问题。通过分析编译器版本与目标系统的耦合关系,提供逆向推导法和官方资源验证方法,帮助开发者精准匹配工具链,确保程序稳定运行。

weixin_30634661的博客 517

嵌入式Linux屏与安卓屏选型实战:开机时间、稳定性、TCO三维决策法

嵌入式显示系统选型本质是确定性与可靠性的工程权衡。嵌入式Linux凭借精简启动链路(U-Boot→内核→轻量GUI)、严格隔离的软硬件边界和可预测的实时行为,在工业HMI、车载中控、数字标牌等场景中展现出显著优势;而安卓虽具备成熟应用生态与丰富UI能力,但其Java虚拟机、Binder IPC、动态服务调度等机制天然引入非确定性延迟与故障扩散风险。真正影响产品成败的并非SoC参数,而是开机时间标准差、OTA失败率、三年总拥有成本(TCO)等可量化指标。本文基于27个真实产线项目数据,聚焦嵌入式Linux屏与

weixin_34344403的博客 4712

AOSP -- 第一章 概述

在 AOSP 开源底层与面向消费者的设备之间,还存在一层厂商定制层。厂商定制界面品牌核心修改内容三星一体界面自定义系统界面、多窗口增强、桌面模式、诺克斯安全体系、S Pen 手写笔适配、自研相机架构小米MIUI / 澎湃 OS重度定制界面、自研桌面、控制中心、安全应用、应用双开功能OPPO / 一加色彩 OS / 氧 OS自定义息屏显示、桌面负一屏、禅定模式、定制图库与相机谷歌像素原生体验材质你动态取色主题、像素专属桌面、张量芯片专属优化、像素独占功能华为EMUI / 鸿蒙。

dengfuma的专栏 287

底软驱动 | U-boot移植点点滴滴

本文介绍了U-boot的结构和使用方法。其中使用方法包括了代码下载,开发,编译,烧录uboot镜像,以及通过uboot更新内核镜像。本文介绍的U-boot包括了uboot-spl和uboot两部分。SPL是介于芯片内部rom程序与uboot之间的一个BootLoader,其主要功能为初始化ddr,系统管理器,时钟,以及加载uboot。SPL程序本身需要加载到系统内部ram中运行,是一个轻量级的uboot。在U-boot开源程序中,本身是包含SPL选项的。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1131

【1】概要,构建,分区,升级

node -v查看版本不要超过16,devtool modify webui-vue进入,npm i安装卡在canvas:npm install canvas@2.11.2 --canvas_binary_host_mirror=https://registry.npmmirror.com/-/binary/canvas ,继续npm i,依赖安装完后注释bb中do-compile中rm -rf node-modules。

持续更新ing... 6260

告别CMake依赖!在Visual Studio 2022中直接配置VTK 9.4开发环境(附完整项目示例)

本文详细介绍了如何在Visual Studio 2022中直接配置VTK 9.4开发环境,无需依赖CMake。通过图文教程和完整项目示例,帮助C++开发者快速集成VTK库,简化开发流程,提升工作效率。特别适合科学可视化任务的开发者。

weixin_26804345的博客 414

从静态到动态:如何用Deformable 3DGS和4DGS实现高效动态场景建模

本文深入探讨了Deformable 3DGS和4DGS在动态场景建模中的技术突破,详细解析了这两种方法如何高效处理动态内容。Deformable 3DGS通过引入时间维度的变形场扩展传统3DGS,而4DGS则采用四维时空体素分解方法,两者均显著提升了动态场景建模的效率和质量,适用于虚拟现实、增强现实等应用场景。

weixin_29063035的博客 433

大话西游2单机版V8一键架设教程:5分钟搞定GM权限和仙玉修改(附完整物品代码表)

本文详细讲解了大话西游2单机版V8的一键架设教程,包括5分钟快速配置GM权限、仙玉修改及物品代码使用技巧。通过分步指导和服务端配置详解,帮助玩家轻松掌握游戏管理功能,重温经典回合制体验。附完整物品代码表,助你快速获取稀有道具和神兽。

weixin_42557830的博客 1231

Win10安装Nek5000

1 安装wsl 2 2 安装Nek5000 3 安装依赖项 4 安装openmpi 5 配置Nek5000 6 编译Nek5000 7 运行Nek5000算例 8 安装paraview并查看结果

weixin_43176703的博客 3451

Xilinx ERNIC RoCEv2 FPGA实现与QP队列深度解析

本文深入解析Xilinx ERNIC RoCEv2在FPGA上的实现,重点剖析QP队列对的管理机制与深度优化策略。通过Verilog代码示例和工程实战,详细介绍了如何实现高吞吐量、低延迟的RDMA硬件卸载方案,为金融交易和数据中心应用提供性能优化指导。

solidity8miner的博客 877

STM32F407ZGT6开发板跑马灯实战:从原理图到烧录全流程(附FlyMcu配置)

本文以正点原子F4探索者开发板(STM32F407ZGT6)为例,手把手指导完成跑马灯实验。内容涵盖从原理图解读、GPIO驱动逻辑分析、HAL库工程搭建,到代码编写与FlyMcu串口烧录配置的全流程,帮助嵌入式开发新手快速实现第一个LED控制程序,打通软硬件开发链路。

weixin_29183637的博客 223

垂类大模型 研发方向与具体方案调研

领域知识库加上通用大模型,针对通用大模型见过的知识比较少的问题,利用向量数据库等方式根据问题在领域知识库中找到相关内容,再利用通用大模型强大的summarization和qa的能力生成回复,完成本次垂直大模型研发。目前很多企业希望将大模型的能力应用到企业内部当中,但很多通用大模型只是一个预训练模型,其所能回答的知识主要来源于互联网上公开的通用知识库,对于部分垂直领域和企业内部的私有知识库的问答,给出的回答。:垂类大模型的效果与底座性能息息相关,研发垂类大模型第一步就是确定开源大模型解决方案。

风吹落叶的博客 3329

【GameFramework框架】一、框架介绍

这是GameFramework框架教程的第一篇,但是博主不准备直接就讲GameFramework框架。【GameFramework框架】二、GameFramework框架介绍了。框架(Framework)通常被理解为一种基础要素的集合,它们用于承载系统的必要功能。约束性:框架定义了解决特定问题的边界,并将相关的软件组件约束在这个范围内,以保持框架的内聚性和解决问题的专注性。支撑性:框架本身不直接解决问题,而是提供一个基础的支撑结构,使得在其上构建的解决方案更为灵活和高效。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: u-boot-2016.11 uboot启动简易分析(基于S5PV210)
下一篇: u-boot-2016.11移植nandfalsh(基于s5pv210)
Sourcelink
博客等级 码龄12年 31粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值