bootloader的移植】的更多相关文章

jz2440开发板 在介绍bootloader里边的内容的时候,需要知道的是: bootloader的引入的目的就是启动linux内核,一个简单的bootloader编写需要以下的步骤: ①初始化硬件:关看门狗.设置时钟.设置SDRAM.初始化NAND FLASH ②把内核从NAND FLASH独到SDRAM ③保存要传给内核的参数到指定的位置 ④跳转执行内核 有的时候,会遇到bootloader很大的情况,那么就会有一步在①和②之间加一个重新定位在SDRAM中地址. 新建start.S文件,…
BootLoader工作原理 BootLoader工作原理 BootLoader指系统启动后,在操作系统内核运行之前运行的一段小程序.通过BootLoader,我们可以初始化硬件设备.建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境.通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界.因此,在嵌入式世界里建立一个通用的 BootLoader 几乎是不可能的.尽管如此,我们仍然可以对BootLoader归纳出一些通用的…
开发环境:Ubuntu 12.04 开发板:JZ2440  256M NandFlash  64M SDRAM 交叉编译器:arm-linux-gcc-4.3.2 u-boot:u-boot-2012.04.01                   最近在学习BootLoader,移植u-boot-2012.04.01到JZ2440开发板,现在把移植过程记录下来,一来梳理思路,二来方便以后更进一步学习.   一.  u-boot分析过程     a. 初始化硬件:关看门狗.设置时钟.设置SDRA…
本文只作为本人学习过程中的记录及时不时的突发奇想偶记.鄙人菜鸟一只,文中如有错误或疏漏,若读者肯不吝赐教,在下感激零涕.文章一直不断更新中 一.何为Bootloader 在嵌入式系统中,Bootloader是操作系统内核启动之前运行的一段程序.可以用来初始化软硬件设备,从而将系统的软件硬件带到一个合适的环境.BootLoader是设备上电后, 执行的第一行代码. 以上为BootLoader的简短作用.从上得知,BootLoader(类似于PC机上的BIOS)是独立于OS(在无OS的设备上,一个跑…
问题背景 最近往一个armv7板子的bootloader中移植了解压算法,移植本身还比较顺利,但移植完了发现,功能是正常的,但效率大打折扣.解压同样的数据,耗时大约是uboot的10倍. 初步定位 从这个10倍的量级上,比较怀疑是Cache相关,但其他怀疑的因素也要先确认了下.先确认下直接相关的DDR和CPU. DDR的驱动是完全一样的,所以DDR先排除. CPU的话,芯片上电后时钟是固化在芯片中的BootROM设定的,默认比较低,但看代码CPU时钟是调整过了,已经提高到1G了.为了确认改动是生…
来公司上班现在已经整整一个月了,蔽人不才,能力有限,学习进度缓慢,不过也是有一点点的收获与心得,在这里写出来与大家分享,养成良好的记录习惯也免得后忘记. 不啰嗦了,开入正题.来公司一个月左右的时间,主要接触了高通android4.0和android2.3的LCD驱动,当然在bootloader下LCD的驱动我也调试的. (1) kernel 先来说一下kernel里LCD的移植,之前从来没有接触过LINUX里LCD的驱动,所以刚一开始我竟然连MIPI接口.LCDC接口这些最基本的都不知道,鄙视一…
 基于Vivado HLS在zedboard中的Sobel滤波算法实现 平台:zedboard  + Webcam 工具:g++4.6  + VIVADO HLS  + XILINX EDK + XILINX SDK 系统:ubuntu12.04 总体设计思路 sobel 算法理论基础       索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值.在图像的任何一点使用此算子,将会产生对应的灰度矢量或是其法矢量. 该…
本文转载自:http://www.itgo.me/a/x6305658852004979994/lcd%20qcom 来自 :http://blog.csdn.net/dacaozuo/article/details/7796476来公司上班现在已经整整一个月了,蔽人不才,能力有限,学习进度缓慢,不过也是有一点点的收获与心得,在这里写出来与大家分享,养成良好的记录习惯也免得后忘记. 不啰嗦了,开入正题.来公司一个月左右的时间,主要接触了高通android4.0和android2.3的LCD驱动,…
本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/54754812 一.心得: 这两年学过很多东西,有点杂,总感觉不够踏实,于是准备写些东西出来记录一下,希望以后复习方便,同时也给大家学习带来一点帮助.从头把JZ2440系统学习一下,希望后面学习心理会更踏实.以下只是自己学习思路,仅供大家参考. (1)嵌入式后为什么是Linux: 之前一直把嵌入式和linux弄混,到底嵌入式与Linux有什么关系呢.大部分嵌入式设备都是运行Lin…
原文网址:http://blog.chinaunix.net/uid-25445243-id-3869348.html 一.BootLoader简介1.1.嵌入式Linux软件结构与分布 在一般情况下嵌入式Linux系统中的软件主要分为以下几部分: 1) 引导加载程序:其中包括内部ROM中的固化启动代码和Boot Loader两部分.内部固化ROM是厂家在芯片生产时候固化的,作用基本上是引导Boot Loader.有的芯片比较复杂,比如Omap3,他在flash中没有代码的时候有许多启动方式:U…
此次移植打算分成两个模块来说,bootloader部分和kernel部分.在实际的移植调试过程中也是这么分成了两个部分分别调试. 高通平台中的bootloader叫做LK(Little Kernel,对于LCM来说LK部分相当重要,它不仅要负责开机部分的LCD显示任务,还要负责传参给kernel的LCM驱动,指导kernel选择合适的LCM参数. 1.LK中LCM启动流程 注:read_panel_id()和read_panel_id_ddr3()为私有添加,非高通库上代码. 在这个流程图中,需…
首先看一下Linux启动过程: Linux启动过程 刚开始最重要的是Bootloader的启动,Bootloader因你改改存放到哪?怎么执行?作用是啥? bootloader的烧写: 所谓烧写也就是往没有操作系统.更没有文件系统的存储器内copy文件的过程. 先转载一段关于s3c2440 nandflash启动过程的文章:http://mcuos.com/thread-7137-1-1.html 学习一下硬件方面的启动过程,这个非常有必要. <s3c2440 nandflash启动过程分析>…
本文转载自:http://www.mobile-open.com/2016/970947.html 高通平台中的bootloader叫做LK(Little Kernel,对于LCM来说LK部分相当重要,它不仅要负责开机部分的LCD显示任务,还要负责传参给kernel的LCM驱动,指导kernel选择合适的LCM参数. 1.LK中LCM启动流程 注:read_panel_id()和read_panel_id_ddr3()为私有添加,非高通库上代码.   在这个流程图中,需要着重了解的有oem_pa…
前言 此代码兼容STM32F103全系列 为避免添加上升级程序造成内存不足,请使用128KB Flash及其以上的型号 这篇文章是为了能够让大家快速移植我的升级模板程序到自己的项目 BootLoader 程序制作 拷贝文件到自己的项目 拷贝到自己的项目(我准备了一个工程作为叙述) 在自己工程的定时器里面添加以下信息 if(IAPStructValue.PutDataFlage && IAPStructValue.UpdateFlage)IAPStructValue.DownloadTime…
ok6410移植u-boot 既然是移植u-boot当然首先需要u-boot源码,这里的u-boot代码是由国嵌提供的. 一.配置编译u-boot A. 解压 u-boot 压缩文件 B. 进入解压生成文件中 C. 执行 make distclean 和 make clean D. make forlinx_nand_ram256_config E. make CROSS_COMPILE=arm-linux- ARCH=arm 其中D. make forlinx_nand_ram256_conf…
原文网址:http://blog.csdn.net/jianchi88/article/details/7061089  一.Boot Loader 概念 就是在操作系统内核运行之前运行的一段小程序.通过这段小程序,我们可以初始化硬件设备.建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境,他就是所谓的引导加载程序(Boot Loader). 嵌入式软件在Flash存储器中的分布图 二.为什么需要BootLoader? BootLoader…
从2016年第一次接触rtthread,感觉很容易上手,记得一个项目是小飞行器上的IPC,趁着空闲,手里有一块jz2440的板子,准备在这块板子上跑起来rtthread,查了很多资料,最后决定自己写一个简单的BootLoader启动板子,启动rtthread系统.下面是简单的BootLoader源代码. init.c 主要是内存控制器初始化.串口初始化及与串口相关函数实现.nandflash初始化及读写功能. /* NAND FLASH控制器 */ #define NFCONF (*((vola…
一.Boot Loader 概念 就是在操作系统内核运行之前运行的一段小程序.通过这段小程序,我们可以初始化硬件设备.建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境,他就是所谓的引导加载程序(Boot Loader). 嵌入式软件在Flash存储器中的分布图 二.为什么需要BootLoader? BootLoader的终极任务是引导操作系统,所谓引导操作系统,就是启动内核,在启动内核之前所需要的环境(如初始化sdram,设置cpu模式等…
0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jessie Raspbian Jessie 1树莓派的启动过程 树莓派1,2,3的启动过程大致相同,主要分为3个阶段:ROM上的GPU bootloader启动GPU,GPU启动CPU,CPU直接启动内核或通过u-boot启动内核. 由于树莓派涉及到GPU的东西不开源,移植u-boot到树莓派并不是真正…
关于dm9000的驱动移植分为两篇,第一篇在mini2440上实现,基于linux2.6.29,也成功在在6410上移植了一遍,和2440非常类似,第二篇在fs4412(Cortex A9)上实现,基于linux3.14.78,用设备树匹配,移植过程中调试和整体理解很重要,一路上幸有良师益友指点,下面详细介绍: 1.物理时序分析相关 DM9000芯片是DAVICOM公司生产的一款以太网处理芯片,提供一个通用的处理器接口.一个10/100M自适应的PHY芯片和4K双字的SRAM.内部框架如下,涉及…
在内核目录下先配置支持USB设备,无论你是什么设备,这一步都是必须的,USB驱动和其他的驱动不同,它分为USB设备驱动,另外还有USB-Host主机控制器的驱动,配置如下: Device Drivers  ---> SCSI device support  ---> <*> SCSI device support <*> SCSI disk support 以上是为了支持U盘挂载,U盘在Linux中被识别为SCSI设备. Device Drivers  --->…
下面是韦老师的uboot移植攻略: A. 开发板的相关拷贝与修改 1. 在board文件夹下面, 将原来的smdk2410复制为100ask24x0目录, 并将smdk2410.c改名为100ask24x0.c 2. 将include/configs/smdk2410.h复制为100ask24x0.h 或者直接copy下面: /* * (C) Copyright 2002 * Sysgo Real-Time Solutions, GmbH <www.elinos.com> * Marius G…
刷入Breed BootLoader: 因为这个K1路由器可以开启telnet服务,所以此处刷Breed可以不使用编程器刷Flash芯片的方法进行. 1.打开K1路由器的Telnet服务. 电脑通过有线的方式连接路由器(为了不必要的麻烦,这里建议用有线连接),在浏览器中输入: http://192.168.2.1/goform/Diagnosis?pingAddr=192.168.2.100|echo""|telnetd 2.在电脑上打开Telnet软件,连接路由器. Password…
前面我们的u-boot只是在内存中运行,要想在nandflash中运行,以达到开机自启的目的,还需作如下修改 一.添加DM9000网卡支持 1.修改board/fl2440/fl2440.c中的board_eth_init函数,支持DM9000网卡 #ifdef CONFIG_CMD_NET int board_eth_init(bd_t *bis) { int rc = 0; #ifdef CONFIG_CS8900 rc = cs8900_initialize(0, CONFIG_CS890…
了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 经过千辛万苦,今天终于完工PIC32MZ EC Starter Kit的ethernet bootloader项目.我将整个项目, 命名为PhnBootloader.它分为两个部分.第一个部分是PC 端的host程序PhnLoader_v3.0.另一部分是单片机端boot程序PhnBoot_v3.0,是从Microchi…
了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). TCP/IP Stack Microchip TCP/IP Stack是免费的,广泛应用于PIC单片机中.由于有远程更新程序的需求,我决定开发基于TCP协议的ethernet bootloader, 主要使用了Microchip TCP/IP Stack的TCP模块.最终我开发出来的ethernet bootloader…
了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). TCP/IP Stack 使用pic18f97j60开发过多个项目,项目中都使用了Microchip免费提供的TCP/IP Stack实现远程控制.但是每次更新程序,都需要将pic18f97j60目标板取回来重新烧录,很不方便.既然可以实现远程控制,为什么不实现远程更新呢?这就是我的ethernet bootloader…
了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 新dsPIC/PIC24 Bootloader PhsBoot_v4.0是我最新用C语言实现的PIC bootloader, 采用串口通信,适用于dsPIC30, dsPIC33和PIC24, 并为其用C#写了PC端通信程序PhsLoader_v4.0.PhsLoader_v4.0通过串口按照自定义的通信协定发送数据Ph…
了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 新PIC18 Bootloader PhsBoot_v3.0是我最新用C语言实现的PIC bootloader, 采用串口通信,适用于PIC18, 并为其用C#写了PC端通信程序PhsLoader_v3.0.PhsLoader_v3.0通过串口按照自定义的通信协定发送数据PhsBoot_v3.0, PhsBoot_v3.…
了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 新PIC16 Bootloader 在完成HyperBootloader之后(具体详见我之前的随笔),我决定重写PIC bootloader.为什么呢? HyperBootloader是由PC端的串口通信软件--超级终端来传送Hex数据的,一行一行地传送,每传送一行Delay 20ms,以等待Hyperbootloade…