问个arm处理器下uboot的问题 [问题点数:50分,结帖人suncs2001]

Bbs1
本版专家分:0
结帖率 95.58%
Bbs5
本版专家分:3219
Blank
红花 2018年4月 硬件/嵌入开发大版内专家分月排行榜第一
Bbs6
本版专家分:5070
Blank
红花 2018年3月 Linux/Unix社区大版内专家分月排行榜第一
2017年9月 Linux/Unix社区大版内专家分月排行榜第一
2017年8月 Linux/Unix社区大版内专家分月排行榜第一
2017年7月 Linux/Unix社区大版内专家分月排行榜第一
Bbs1
本版专家分:0
Bbs6
本版专家分:5070
Blank
红花 2018年3月 Linux/Unix社区大版内专家分月排行榜第一
2017年9月 Linux/Unix社区大版内专家分月排行榜第一
2017年8月 Linux/Unix社区大版内专家分月排行榜第一
2017年7月 Linux/Unix社区大版内专家分月排行榜第一
ARM上电启动及Uboot代码分析
网上关于ARM的bootloader(以Uboot为例)的启动顺序的资料有好多,但是对于Uboot的地址映射、体系结构级操作介绍很少,都是直接开始Start.s代码的阅读。本文拟详细分析Uboot从上电,到第一条指令的执行,同时分析代码对于cache、TLB等部件的操作过程。 以下内容以u-boot-2012.04.01源码为例,从网上很容易下载该版本。
ARM+Linux嵌入式开发04:【uboot-2017移植】底层硬件初始化
概述 上一节讲了<em>uboot</em>启动的第一阶段,其中会调用一个lowlevel_init函数对进行底层硬件初始化,然后完成重定位,这一节开始对底层硬件初始化作介绍,主要包括:LED灯,电源锁存,时钟,串口。 LED灯 打开board/samsung/x210/lowlevel_init.S文件,查看lowlevel_init()函数,首先是检查是否需要重定位: ldr r0, =0x0000ffff ...
文章0306
文章0306
ARM+Linux嵌入式开发03:【uboot-2017移植】uboot启动第一阶段
概述 上一章讲到210.bin是u-boot.bin的前16KB程序,也就是BL1,根据s5pv210的启动流程,这段程序的作用是初始化DRAM,然后将BL2载入DRAM当中,最后跳转到DRAM运行。要分析这段程序,就要了解<em>uboot</em>的启动过程以及源码构成。 从上电到进入_main函数之前 <em>uboot</em>启动总的来说可以分为两个大的阶段,第一个是从上电到进入_main()之前,这部分代码是在对芯片运行...
Linux系统下ARM的多种烧写uboot、内核、根文件系统的方法
准备更新后的uImag通过进入<em>uboot</em>用tftp下载烧录。 <em>uboot</em>烧写命令如下(烧写Uboot必须用网口0) 首先pri 查看环境变量 保证serverip,ipaddr,gatewayip 处于同一网段 如:(PC电脑的IP)serverip:192.168.137.1 (通讯板IP)ipaddr: 192.168.137.182 (通讯板网关)gatewayip:192....
arm64+devicetree 组合中的boot_command_line的获取
setup_arch(&command_line)->setup_machine_fdt(__fdt_pointer);需要注意的是*command_line 是指向到 boot_command_line;而boot_command_line是一个静态数组,在<em>arm</em>64的环境下是2048,也就是说bootloader传递给kernel的commandline超过2048就要修改kernel源代码加
uboot下ARMv8 lds
#include #include OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SECTIONS { #ifdef CONFIG_ARMV8_SECURE_BASE  /DISCARD/ :
uboot下ARMv8 EL切换
#include #include #include #include ENTRY(<em>arm</em>v8_switch_to_el2)  switch_el x6, 1f, 0f, 0f 0:  cmp x5, #ES_TO_AARCH64  b.eq 2f  /*   * When loading 32-bit kernel, it will jump   * to secure
关于ARMv8另外几个
之前没有ARMv8手册,所有<em>问</em>题只能从Linux内核源码中找答案,例如一下几个<em>问</em>题: <em>问</em>题1:支持ARMv8的Linux内核异常向量地址在哪? <em>问</em>题2:找出TLB中存放的ARMv8的页表格式? <em>问</em>题3:ARMv8中重要的控制寄存器的各位的意思是什么?
uboot下ARMV8 lowlevel_init
lowlevel_init: #include #include #include ENTRY(lowlevel_init)  /*   * Setup a temporary stack. Global data is not available yet.   */ #if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_STAC
交叉编译arm64内核
1、从<em>arm</em>64路径下拷贝个默认配置出来cp ./arch/<em>arm</em>64/configs/defconfig  .config2、配置选项make ARCH=<em>arm</em>64 CROSS_COMPILE=~/tools/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- menuconfig3、编译内核make ...
树莓派3B/3B+ 64位 uboot的编译
日期:2018年12月12日 项目:树莓派 64位 <em>uboot</em>的编译 简介:目前网站上的都是编译树莓派3B/3B+ 64版本的文章很少,结合自身实际操作,记录下整个编译的过程。 1、使用Virtual Box安装Ubuntu 16.04的操作系统,操作系统ISO可以清华的官方镜像网站下载,速度很快,链接如下:       https://mirrors.tuna.tsinghua.edu....
uefi+arm64+acpi 组合时boot_command_line的获取
在efi_entry 中会通过下面的code从uefi中拿到cmdline     cmdline_ptr = efi_convert_cmdline(sys_table, image, &cmdline_size);     if (!cmdline_ptr) {         pr_efi_err(sys_table, "getting command line via LOADED_
一.linux开发之uboot移植(一)——初识uboot
参考博文: http://blog.51cto.com/9291927/1791237 一、<em>uboot</em>简介 U-Boot,全称 Universal Boot Loader,是遵循GPL条款的从FADSROM、8xxROM、PPCBOOT逐步发展演化而来的 开放源码项目。 - 在操作系统方面 ,U-Boot不仅支持 - 嵌入式Linux系统的引导,它还支持NetBSD, VxWorks,
深入理解uboot 2016 - 基础篇(处理器启动流程分析)
最近一段时间一直在做<em>uboot</em>相关的移植的工作,需要将<em>uboot</em>-2016-7移植到ARMv7的<em>处理器</em>上。正好元旦放假三天闲来无事,有段完整的时间来整理下最近的工作成果。之前在学习<em>uboot</em>时,在网上看了很多文章,很多都是基于老版本的的<em>uboot</em>,并且很多都是直接从代码开始分析,并没有将<em>uboot</em>与ARM<em>处理器</em>体系结构结合起来。毕竟很多时候做一件事情,你知道怎么去做这件事和你知道这件事为什么要这么
ARMv8中的异常向量介绍
        历经一年多时间的系统整理合补充,《手机安全和可信应用开发指南:TrustZone与OP-TEE技术详解 》一书得以出版,书中详细介绍了TEE以及系统安全中的所有内容,全书按照从硬件到软件,从用户空间到内核空间的顺序对TEE技术详细阐述,读者可从用户空间到TEE内核一步一步了解系统安全的所有内容,同时书中也提供了相关的示例代码,读者可根据自身实际需求开发TA。      为方便和及...
arch/arm/cpu/armv8/transition.S
/* * (C) Copyright 2013 * David Feng * * SPDX-License-Identifier: GPL-2.0+ */#include #include #include #include #
s3c2440 Uboot 移值
一.预备知识: 1.       首先,U-Boot1.3.4还没有支持s3c2440,移植仍是用2410的文件稍作修改而成的。 2.       2440和2410的区别: 2440和2410的区别主要是2440的主频更高,增加了摄像头接口和AC‘97音频接口;寄存器方面,除了新增模 块的寄存器外,移植所要注意的是NAND FlASH控制器的寄存器有较大的变化、芯片的时钟频
STM32F10X MCU U-boot porting
The idea and steps of porting U-boot to STM32F10x MCU.
【ARM64】DTB地址从uboot传递到kernel的流程
前言        最近在移植一款蓝牙芯片的过程中用到了设备树,一开始在研究kernel是怎么解析DTB的,后来就很好奇kernel是怎么找到DTB的,所以就有了这篇文章,纯粹记录一下自己的学习过程吧。 正文        下面我就从两个阶段来讲述,第一个阶段就是<em>uboot</em>是怎么将DTB的地址传递给kernel;第二个阶段就是kernel怎么根据DTB的地址,并解析DTB的。 <em>uboot</em>阶...
STM32开发 -- YModem详解
对 YModem 的接触,只是在无网络的情况下,使用SecureCRT软件输入loady命令进行串口传输,烧写内核和文件系统。 参看:Hi3516A开发-- 板卡串口烧写 但你要<em>问</em>我 YModem 是个什么东西,我还真说不上来。 接下来,就开始对YModem的一步步剖析详解!! 一、YModem简介 ...
【ARM-Linux开发】U-Boot启动过程--详细版的完全分析
-------------------------------------------------------------------------------------------------------------------------------------------  我们知道,bootloader是系统上电后最初加载运行的代码。它提供了<em>处理器</em>上电复位后最开始需要执行的初始化代码。
ARM多核CPU如何启动?
-
[ATF]ARMv8 cpu warm boot (hotplug on)
本文软件分析使用<em>arm</em>-trust-firmwire v1.3版本。基于公开的fvp platform分析流程。 在v1.3中,w<em>arm</em> boot的entry point是定义好的,根据ARMv8 TRM,配置cpu reset address,主要流程如下,符合ARM TRM,关键点: enable el3 mmu/dcace power on domain enable cci sn
【ARM】Uboot代码分析
一.摘要 这篇文章主要对BootLoader(UBoot)的源码进行了分析,并对UBoot的移植略作提及。  BootLoader的总目标是正确调用内核的执行,由于大部分的BoorLoader都依赖于CPU的体系结构。因此大部分的BootLoader都分为两个步骤启动。依赖于CPU体系结构(如设备初始化等)的代码都放在stage1。而stage2一般使用C语言实现,能够实现更加复杂的功能,代
ARM学习之实现开机自动登录以及修改开机启动项
由于寒假要留校做大创项目,用到的开发板是ZLG的imx280a,开始学习ARM,做个记录方便查看。今天做的是实现开机自动登录以及修改开机启动项。 一,开机自动登录。 1.首先我们在/bin目录下创建一个名为autologin的可执行文件(注意这里的/bin目录和autologin都是根据个人设定的,只要你能记住路径和文件名称即可。可执行文件没有后缀名,如果文件里边的内容是用C语言编写的,要根据
linux arm 进程切换之 __switch_to (注释)
内核版本 3.10.90 arch\<em>arm</em>\kernel\entry-<em>arm</em>v.S /*  * Register switch for ARMv3 and ARMv4 processors  * r0 = previous task_struct, r1 = previous thread_info, r2 = next thread_info  * previous and next are...
ARM64的启动过程之(一):内核第一个脚印
一、前言 kernel的整个启动过程涉及的内容很多,不可能每一个细节都描述清楚,因此我打算针对部分和ARM64相关的启动步骤进行学习、整理,并方便后续查阅。本文实际上描述在系统启动最开始的时候,bootloader和kernel的交互以及kernel如何保存bootloader传递的参数并进行校验,此外,还有一些最基础的硬件初始化的内容。 本文中的source来自4.1.10内核,这是一个lo
【一】Uboot-2017.11源码分析启动过程之汇编部分
1 设置中断向量表 CPU在上电后,首先从0x0000 0000地址开始执行程序,<em>uboot</em>编译后,在程序的起始地址处存放了中断向量表,该部分代码为汇编语言写的,代码存储于arch\<em>arm</em>\cpu\<em>arm</em>v7目录下的start.S中,如下所示: /*************************************************************************
Stm32f429移植linux4.13.12
  编写不易,转载请注明出处。   介绍两种移植方法 第一种:AFboot + Linux4.13.12 + Stm32_mini_rootfs.cpio.bz2 第二种:u-boot-2016.03 + Linux4.13.12 + Stm32_mini_rootfs.cpio.bz2   硬件平台:stm32f429-discovery 软件平台:ubuntu-12.04  ...
秉火stm32f429移植u-boot
秉火stm32f429移植u-boot 硬件平台: 使用秉火stm32f429的核心板,搭配挑战者野火stm32的底板。 MCU: stm329igt6,1MB的内部flash,256KB的RAM。 核心板: 8MB的外部SDRAM,IS42S16400J。16MB的外部SPI flash,winbond 25Q128FV。 终端: 使用USART1做为终端,波特率115200。 移植参考模板:...
uboot使用
掌握<em>uboot</em>的使用其实就是掌握<em>uboot</em>的命令和环境变量 1. 常用命令 (1)printenv/print:打印环境变量 (2)setenv/set:设置环境变量 (3)saveenv/save:保存环境变量 (4)ping:网络测试 注:<em>uboot</em>的IP地址(环境变量ipaddr)和主机的IP地址必须处于同一网段。 (5)tftp:网络下载 注:该指令常用于从主机下载内核镜像...
全志A33-ARM linux开机进入uboot命令行
开发板:A33,运行linux-3.4.39 主机:Ubuntu 14.04 ----------------------------------------------     复位或启动开发板后,等串口输出秒读提示,如果是标准<em>uboot</em>,按任意键可中断启动过程,进入<em>uboot</em>命令行界面。 A33 <em>uboot</em>默认bootdelay为0,所以正常开机情况下不能进入<em>uboot</em>命令行。如果...
linux嵌入式开发中USB Boot启动模式为什么能烧写ARM的uboot
将板子跳线设置为usb boot模式后,板子上电应该不会加载<em>uboot</em>等其他程序,那为什么能用usb烧写<em>uboot</em>啊??此时应该板子什么都没有, 也没有usb驱动,怎么会烧写<em>uboot</em>呢??
调试i.MXRT1050的网卡遇到的
1、当编写无<em>uboot</em>的驱动时,一定要注意GPIO的管脚上拉,下拉,管脚复用的上下拉使能<em>问</em>题。尽量参考<em>uboot</em>或者裸机的实现去编写代码。实在调试不出来,可以考虑打印所有的驱动相关的寄存器。2、<em>问</em>题: 网卡驱动代码写完之后,通过MMFR寄存器,读取PHY的寄存器的值失败(全F情况)解决方法::读取失败一般是硬件的管脚,时钟或者PHY的类型没有配置好(MII、RMII、RGMII)我遇到的<em>问</em>题是:
多CPU和多核CPU有什么区别
转自https://zhidao.baidu.com/question/360468025074573812.html 双核心并不是一个新概念,而只是CMP(Chip Multi Processors ,单芯片多<em>处理器</em>) 中最基本、最简单、最容易实现的一种类型。 换言之双核心<em>处理器</em>就是基于单个半导体的一个<em>处理器</em>上拥有两个一样功能的<em>处理器</em>核心。这样就将两个物理<em>处理器</em>核心整合入一个核中,在任务繁重时...
手把手教你写一个简单的uboot
CPU上电后会从IO空间的某地址取第一条指令。但此时:PLL没有启动,CPU工作频率为外部输入晶振频率,非常低;CPU工作模式、中断设置等不确定;存储空间的各个BANK(包括内存)都没有驱动,内存不能使用。在这种情况下必须在第一条指令处做一些初始化工作,这段初始化程序与操作系统独立分开,称之为bootloader。 实际上,很少有必要自己写一个Bootloader,因为U-Boot已经强大到能够...
ARMv8-a架构简介
ARMv8-a架构简介 作者:蜗蜗 发布于:2015-7-7 22:31 分类:ARMv8A Arch 1. 前言 ARMv8(当前只有A系列,即ARMv8-A)架构,是ARM公司为满足新需求而重新设计的一个架构,是近20年来,ARM架构变动最大的一次。它引入的Execution State、Exception Level、Security State等新特性,已经和我们对旧的A
详细讲解 移植Uboot到ARM9开发系统上
首先了解ARMer9开发系统硬件设计上和三星原装SMDK2410之间的区别。让<em>uboot</em>在ARMer9开发系统上跑起来,目前只需要关注如下的硬件区别,解决了下面这个<em>问</em>题,<em>uboot</em>就可以在ARMer9开发系统上正常地从串口输出,进入提示符。很多命令都可以使用,当然有些命令需要做修改。 SMDK2410 : nor Flash 是AMD的1M的;ARMer9: 是Intel E28F
RT1050(地上最强Cortex-M7) uclinux初体验
emcraft在今年十月份就已经做好了rt1050的uclinux bsp。速度真快。 emcraft对uclinux的支持力度很大,我觉得linux在进一步占领嵌入式领域,侵占MCU平台。 因为在官方linux的发布版本里面已经有了STM32的源代码。 十月初我们拿到了MIMXRT1050-EVK: i.MX RT1050 Evaluation Kit,下载了emcraft的官方img试了
【野火®】i.MX RT1052评测——移植RT-Thread
跨界<em>处理器</em> i.MX RT1052是i.MX RT系列芯片,是由 NXP 半导体公司推出的跨界<em>处理器</em>芯片,该系列下又包括i.MX RT1020、i.MX RT1050及 i.MX RT1060等子系列芯片。所谓“跨界”,是指它自身的定位既非传统的应用<em>处理器</em>也非传统的微控制器。 传统的应用<em>处理器</em>如手机主控芯片,它们通常采用 ARM 的 Cortex-A系列内核,配合 其芯片架构...
ARM板起来每次卡死在这里,uboot没有进入
-
ARM Uboot详解
1.1       U-Boot工作过程   U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下:        (1)第一阶段的功能 Ø  硬件设备初始化 Ø  加载U-Boot第二阶段代码到RAM空间 Ø  设置好栈 Ø  跳转到第二阶段代码入口        (2)第二阶段的功能 Ø  初始化本阶段使用的硬件设备 Ø  
U-boot移植之自己写一个简单的bootloader(一)
u-boot移植之前的准备,自己先实现一个极其简单的bootloader
小白请教:uboot中ARM虚拟地址映射定义的地址转换表保存在哪里的?
-
ARMv8寄存器手册
这份手册是从DS5里拷贝出来的,他是以网页的形式用浏览器打开,方面查看寄存器。 ARMv8_regs_xhtml.tar.gz
ARMv8 Linux内核异常处理过程分析
看了Linaro提供的开源ARMv8 Linux内核源码,发现ARMv8异常处理与ARMv7及之前的架构有所不同,详细分析之。
armv8 Linux内核异常处理相关文件
1.1 Linux内核异常处理相关文件 Linux内核中,异常处理主要由两个文件完成,entry.S和traps.c,当然还有一些其它异常处理函数分布于fault.c, memory.c等等。entry.S包含异常的入口、进入异常处理C函数前的压栈、退出C函数前的出栈、一些fork函数相关的处理代码(暂不分析)、任务切换汇编处理过程(cpu_switch_to函数,暂不分析)。traps.c主要
U-BOOT源码分析及移植
本文从以下几个方面粗浅地分析u-boot并移植到FS2410板上:1、u-boot工程的总体结构2、u-boot的流程、主要的数据结构、内存分配。3、u-boot的重要细节,主要分析流程中各函数的功能。4、基于FS2410板子的u-boot移植。实现了NOR Flash和NAND Flash启动,网络功能。 这些认识源于自己移植u-boot过程中查找的资料和对源码的简单阅读。下面主要以smdk
一步步教你移植uboot(超精华版).rar
一步步教你移植<em>uboot</em>(超精华版).rar
uboot如何修改?
<em>uboot</em>如何修改?修改什么部分?我以前的s3c6410,直接就有改好的bootloader和烧写工具。现在自己工作了。不知道如何下手了。希望大神们帮助下。型号是:stm32f407IGT6 的,属于
STM32IAP的程序跳转
我的程序能从IAP程序中跳到APP程序中,现在我想能不能APP1和APP2程序之间通过这样的方式进行跳转,但是我按从IAP跳转到APP的方式来进行APP1和APP2之间的跳转发现程序会卡死,请<em>问</em>APP
uboot使用之心得体会
最近在学韦东山老师的嵌入式视频第一期中的<em>uboot</em>部分知识。由于我是电子专业的本科生,所有对计算机专业的bootloader等东西都是半懂不懂,买了一个mini2440的开发板后,一直没有试试关于<em>uboot</em>的相关实验,原因有几点。一个是习惯了单片机的思维模式,即我之前学习和使用的都是stm32或者是飞思卡尔的一些单片机,所以只使用过jlink仿真器进行程序的烧写和调试,而学习嵌入式系统之后,才发现
stm32 boot启动经验
不同的下载方式对应STM32启动方式也不同,如下图是STM32三种启动方式:     ● 第一种启动方式是最常用的用户FLASH启动,正常工作就在这种模式下,STM32的FLASH可以擦出10万次,所以不用担心芯片哪天会被擦爆!     ● 第二种启动方式是系统存储器启动方式,即我们常说的串口下载方式(ISP),不建议使用这种,速度比较慢。STM32 中自带的BootLoader就是在
uboot-2015-07的start.S的文件启动过程(2)
1.在文件的最开始有这样的注释/* ************************************************************************* * * 启动代码 (被 ARM 的 reset 调用,不包括中断) * * 只有不从 memory 启动的时候才做重要的初始化 * 重定位代码到 ram * 设置栈 * 跳转到启动第二阶段 * **
u-boot-2016.09移植(2)-uboot启动简易分析
不管什么版本的<em>uboot</em>都是在arch/<em>arm</em>/cpu/u-boot-spl.lds和arch/<em>arm</em>/cpu/u-boot.lds中制定了入口函数ENTRY(_start),u-boot-2016.09也不例外,搜索发现_start在arch/<em>arm</em>/lib/vectors.S中实现:
STM32F103 ucLinux 开发BOOT源码
STM3210E-EVAL官方开发板,主芯片STM32F103ZET6,支持ucLinux开发,官网也给出了开发套件。但是官网没有给出BOOT的源代码, 只有HEX文件(根据推测该HEX文件时KEIL
2440超详细uboot移植笔记(一)------分析源码
你好!这里是风筝的博客, 欢迎和我一起交流。   PS:我是韦老大的学生^_^ 先附上<em>uboot</em>的下载地址:ftp://ftp.denx.de/pub/u-boot/ 这里我移植的是<em>uboot</em>2016.11版本,交叉编译链为4.3.2版本,JZ2440开发板一块 话不多说,开始分析。      移植之前,我们要知道两点: u-boot的stage1代码通常放在cpu/xxxx/s...
uboot启动uImage和rootfs(bootcmd和bootargs参数)
-boot的环境参数中有两个和内核启动相关的,它们是bootcmd和bootargs 1.u-boot中和环境参数有关的命令        printenv:打印当前环境参数        setenv param_name "value":设置环境参数        saveenv:保存环境参数到FLASH 2.bootcmd: 这个参数包含了一些命令,这些命
Qemu下u-Boot + Kernel + rootfs完整启动移植
对于Ubuntu12.04系统,首先要安装如下的库文件,不然在后续的移植过程中会出错 1、zlib库 sudo apt-get install zlib1g-dev 2、glib库的安装 1)在Ubuntu下,通过如下命令来获取glib库,命令为:git clone https://git.gnome.org/browse/glib 2)下载完后,进入glib库所在的目录。cd ~/gl
关于arm烧写Uboot的
哪位大神帮帮我,小弟感激不尽。 情况是这样的,我用一张板子烧写了<em>uboot</em>到spi flash里面,然后把spi flash移到另外一张板子,启动的时候串口只打印出romboot,按照我查的资料不是该
从uImage到Image,arm64平台上Linux镜像的变化, Booti命令的使用
uImage是<em>arm</em>32上<em>uboot</em>可以引导的镜像,是在zImage基础上加上<em>uboot</em>可以识别的头得到的. 在<em>uboot</em>命令行,可以使用bootm   启动Linux 在ARM64上不再支持uImage了,而是Image, 在<em>uboot</em>命令行可以使用booti 启动Linux
ARM学习笔记-uboot的作用及主要工作-1
简要介绍<em>uboot</em>主要作用及工作
ARM Uboot经历——Uboot初始化代码解析
Uboot初始化代码主要是在Uboot重定位之前的一系列处理,起源于start.s文件,涉及crt0.s和board.c等文件,会完成最系统环境最初始的设置和结构体赋值。 reset的相关处理 从_start跳转到reset [cpp] view plaincopy .globl _start   _start: b  
2014.4新版uboot启动流程分析
2014.4最新版本<em>uboot</em>启动过程详解 在网上搜索讲<em>uboot</em>启动过程的文章,大多都是比较老的版本,于是决定将新版<em>uboot</em>启动过程记录下来,以备后用。 2014.4版本<em>uboot</em>启动至命令行几个重要函数为:_start,_main,board_init_f,relocate_code,board_init_r。
【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 :  -- u-boot 源码 : http://download.csdn.net/detail/han1202012/8342761 -- S3C2440 文档 : http:
ARM UBoot
一、UBoot 如何调用内核          UBoot通过命令把Linux内核镜像文件从Flash中读取到内存的某一位置,然后设置PC寄存器执向该位置UBoot调用Linux内核。         调用内核的条件是:            1. R0 =0            2.R1=适当的机器码,位于linux/arch/<em>arm</em>/tools/mach-type文件中      
基于QEMU搭建完整的虚拟ARM开发环境(uboot+linux+rootfs)
主机环境:ubuntu 16.04虚拟机,目标机器:QEMU模拟vexpress-a9。------------------------------------------------一、准备工作安装qemu, 交叉编译工具等略过。konga@ubuntu:~/work/vexpress/<em>uboot</em>$ qemu-system-<em>arm</em> -M ? Supported machines are:……ve...
uboot学习心得(uboot流程分析)max32590芯片
1、代码框架源码解压以后,我们可以看到以下的文件和文件夹: cpu与<em>处理器</em>相关的文件。每个子目录中都包括cpu.c和interrupt.c、start.S、u-boot.lds。cpu.c:初始化CPU、设置指令Cache和数据Cache等interrupt.c:设置系统的各种中断和异常start.S:是U-boot启动时执行的第一个文件,它主要做最早期的系统初始化,代码重定向和设置系统堆栈,为进...
ARM Uboot经历——Uboot代码重定位
Uboot重定位是<em>uboot</em>启动后的一个重要功能,重定位的目的是为了让<em>uboot</em>运行在速度性能更好的RAM上,一般是从外部RAM搬移到内部RAM。重定位这块说简单也简单,说复杂也复杂,主要涉及到编译和链接等相关原理才能很好的理解整个过程。另外,理解了ARM的重定位,对于Kernel启动过程的重定位也就理解了。 编译器惹的祸 <em>uboot</em>重定位不是简单的copy,归根结底在于gcc的编译和链接过程
ARM Uboot经历——Uboot地址
讲一个地址<em>问</em>题,主要围绕三个地址来介绍:编译地址,加载地址,运行地址。 其实不光是Uboot,Linux也有这三个地址;这三个地址是存在联系的,用户需要明确的知道这三个地址各代表什么意思,如何去设置和运用。 事先说明的是,这里的三个地址都是首地址,也就是起始地址。 概念 编译地址:在编译Image的时候输入给编译器的地址,编译器在链接的时候会按照指定的地址分配代码和数据; 加载地址:Im
armv8 el0和el1 异常处理的过程
ARM64/ARMv8内核对用户态指令的异常处理流程如下: kernel对el1和el0 处理的vector table在如下路径中 arch/<em>arm</em>64/kernel/entry.s /* * Exception vectors. */ .pushsection ".entry.text", "ax" .align 11 ENTRY(vectors) ventry el1_sync
浅谈UBOOT
如图,是4412开发板手册上的图。 板子一上电,首先执行的IROM中的程序,然后执行BL1。那么BL1 是在什么地方存储呢? 答:只能在NAND, SD/MMC,eMMC,USB这四个地方。也就是说IROM启动后,会去寻找BL1,也就是bootloader1,BL1执行完成后去找BL2。然后是UBOOT,再就是linux内核IROM—>BL1—>BL2—><em>uboot</em>—>linux还有一个
ARMv8(ARM64, AArch64)进阶之旅
ARMv8(ARM64, AArch64)进阶之旅
Armv8 指令集
A64 – Base Instructions 通用寄存器 A64 – SIMD and Floating-point Instructions SIMD寄存器指令 逻辑运算和比较运算 VAND、VBIC、VEOR、VORN 和 VORR (寄存器)(按位与、位清除、异或、或非以及或(寄存器)) VAND (按位与)、VBIC (位清除)、VEOR (按位异或)、VORN (按...
程序员实用工具网站
目录 1、搜索引擎 2、PPT 3、图片操作 4、文件共享 5、应届生招聘 6、程序员面试题库 7、办公、开发软件 8、高清图片、视频素材网站 9、项目开源 10、在线工具宝典大全 程序员开发需要具备良好的信息检索能力,为了备忘(收藏夹真是满了),将开发过程中常用的网站进行整理。 1、搜索引擎 1.1、秘迹搜索 一款无敌有良心、无敌安全的搜索引擎,不会收集私人信息,保...
我花了一夜用数据结构给女朋友写个H5走迷宫游戏
起因 又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而 怨气满满! 而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会<em>问</em>道:天天写这玩意,有啥作用。而我答道:能干事情多了,比如写个迷宫小游戏啥的! 当我码完字准备睡觉时:写不好别睡觉! 分析 如果用数据结构与算法造出东西来呢? ...
别再翻了,面试二叉树看这 11 个就够了~
写在前边 数据结构与算法: 不知道你有没有这种困惑,虽然刷了很多算法题,当我去面试的时候,面试官让你手写一个算法,可能你对此算法很熟悉,知道实现思路,但是总是不知道该在什么地方写,而且很多边界条件想不全面,一紧张,代码写的乱七八糟。如果遇到没有做过的算法题,思路也不知道从何寻找。面试吃了亏之后,我就慢慢的做出总结,开始分类的把数据结构所有的题型和解题思路每周刷题做出的系统性总结写在了 Github...
让程序员崩溃的瞬间(非程序员勿入)
今天给大家带来点快乐,程序员才能看懂。 来源:https://zhuanlan.zhihu.com/p/47066521 1. 公司实习生找 Bug 2.在调试时,将断点设置在错误的位置 3.当我有一个很棒的调试想法时 4.偶然间看到自己多年前写的代码 5.当我第一次启动我的单元测试时 ...
接私活必备的 10 个开源项目!
点击蓝色“GitHubDaily”关注我加个“星标”,每天下午 18:35,带你逛 GitHub!作者 | SevDot来源 | http://1t.click/VE8W...
GitHub开源的10个超棒后台管理面板
目录 1、AdminLTE 2、vue-Element-Admin 3、tabler 4、Gentelella 5、ng2-admin 6、ant-design-pro 7、blur-admin 8、iview-admin 9、material-dashboard 10、layui 项目开发中后台管理平台必不可少,但是从零搭建一套多样化后台管理并不容易,目前有许多开源、免费、...
Git 天天用 但是 Git 原理你了解吗?
Git 原理 做技术一定要知其然知其所以然,意思就是:知道它是这样的,更知道它为什么是这样的。我主要通过4块内容来简单介绍 Git 是原理是什么样的。这4块内容如下: Git 存储目录结构介绍 Git 是如何存储的 Git 的对象 Git引用 当然 Git 原理不仅仅包含这些,想要更深入了解请查看官方教程 https://git-scm.com/book/zh/v2/。 本文内容是我在 Git...
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
100 个网络基础知识普及,看完成半个网络高手
欢迎添加华为云小助手微信(微信号:HWCloud002或HWCloud003),输入关键字“加群”,加入华为云线上技术讨论群;输入关键字“最新活动”,获取华为云最新特惠促销。华为云诸多技术大咖、特惠活动等你来撩! 1)什么是链接? 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2)OSI 参考模型的层次是什么? 有 7 个 OSI 层:物理...
为什么面向对象糟透了?
又是周末,编程语言“三巨头”Java, Lisp 和C语言在Hello World咖啡馆聚会。服务员送来咖啡的同时还带来了一张今天的报纸, 三人寒暄了几句, C语言翻开了...
分享靠写代码赚钱的一些门路
作者 mezod,译者 josephchang10如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。今天给大家分享一个精彩...
对计算机专业来说学历真的重要吗?
我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个<em>问</em>题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ...
世界上最好的学习法:费曼学习法
你是否曾幻想读一遍书就记住所有的内容?是否想学习完一项技能就马上达到巅峰水平?除非你是天才,不然这是不可能的。对于大多数的普通人来说,可以通过笨办法(死记硬背)来达到学习的目的,但效率低下。当然,也可以通过优秀的学习法来进行学习,比如今天讲的“费曼学习法”,可以将你的学习效率极大的提高。 费曼学习法是由加拿大物理学家费曼所发明的一种高效的学习方法,费曼本身是一个天才,13岁自学微积分,24岁加入曼...
学Linux到底学什么
来源:公众号【编程珠玑】 作者:守望先生 网站:https://www.yanbinghu.com/2019/09/25/14472.html 前言 ​我们常常听到很多人说要学学Linux或者被人告知说应该学学Linux,那么学Linux到底要学什么? 为什么要学Linux 在回答学什么之前,我们先看看为什么要学。首先我们需要认识到的是,很多服务器使用的是Linux系统,而作为服务器应...
深入理解C语言指针
一、指针的概念 要知道指针的概念,要先了解变量在内存中如何存储的。在存储时,内存被分为一块一块的。每一块都有一个特有的编号。而这个编号可以暂时理解为指针,就像酒店的门牌号一样。 1.1、变量和地址 先写一段简单的代码: void main(){ int x = 10, int y = 20; } 这段代码非常简单,就是两个变量的声明,分别赋值了 10、20。我们把内存当做一个酒店,而每个房间就...
C语言实现推箱子游戏
很早就想过做点小游戏了,但是一直没有机会动手。今天闲来无事,动起手来。过程还是蛮顺利的,代码也不是非常难。今天给大家分享一下~ 一、介绍 开发语言:C语言 开发工具:Dev-C++ 5.11 日期:2019年9月28日 作者:ZackSock 也不说太多多余的话了,先看一下效果图: 游戏中的人物、箱子、墙壁、球都是字符构成的。通过wasd键移动,规则的话就是推箱子的规则,也就不多说了。 二、代...
面试官:兄弟,说说基本类型和包装类型的区别吧
Java 的每个基本类型都对应了一个包装类型,比如说 int 的包装类型为 Integer,double 的包装类型为 Double。基本类型和包装类型的区别主要有以下 4 点。
8000字干货:那些很厉害的人是怎么构建知识体系的
本文约8000字,正常阅读需要15~20分钟。读完本文可以获得如下收益: 分辨知识和知识体系的差别 理解如何用八大<em>问</em>发现知识的连接点; 掌握致用类知识体系的构建方法; 能够应用甜蜜区模型找到特定领域来构建知识体系。 1. 知识体系?有必要吗? 小张准备通过跑步锻炼身体,可因为之前听说过小腿变粗、膝盖受伤、猝死等等与跑步有关的意外状况,有点担心自己会掉进各种坑里,就在微信上<em>问</em>朋友圈一直晒跑步...
Android完整知识体系路线(菜鸟-资深-大牛必进之路)
前言 移动研发火热不停,越来越多人开始学习Android 开发。但很多人感觉入门容易成长很难,对未来比较迷茫,不知道自己技能该怎么提升,到达下一阶段需要补充哪些内容。市面上也多是谈论知识图谱,缺少体系和成长节奏感,特此编写一份 Android 研发进阶之路,希望能对大家有所帮助。 由于篇幅过长,有些<em>问</em>题的答案并未放在文章当中,不过我都整理成了一个文档归纳好了,请阅读到文末领取~ Ja...
Bitvise SSH Client下载
Bitvise SSH Client具可配合谷歌或者火狐浏览器插件探索外边的世界。 相关下载链接:[url=//download.csdn.net/download/simon_ce/9041193?utm_source=bbsseo]//download.csdn.net/download/simon_ce/9041193?utm_source=bbsseo[/url]
oracle基础培训下载
oracle基础培训,涉及oracle物流和逻辑结构 相关下载链接:[url=//download.csdn.net/download/linqunshann/5190843?utm_source=bbsseo]//download.csdn.net/download/linqunshann/5190843?utm_source=bbsseo[/url]
五笔输入法下载
这里应当说明,以后我们也会学到,在王码中,仅仅对于那些由2个或3个字根组成的字,我们才关心它的“字型”。如果一个字由4个或4个以上的字根组成,例如:编码中,我们就不再计较是什么“型”了。 相关下载链接:[url=//download.csdn.net/download/wangzheng826/9137767?utm_source=bbsseo]//download.csdn.net/download/wangzheng826/9137767?utm_source=bbsseo[/url]
相关热词 用户权限才c# c#应用程序实例 c#请求接口数据 c#高效读写plc c#代码规范快捷方式 c#编辑模板 c# 内存存储 c# poi 生成图表 c#页面 弹出页面选择框 c# 不实现 继承接口
我们是很有底线的