uboot如何激活自己的开发板?_Iron2222的博客-程序员秘密

技术标签: stm32  Linux驱动开发  

  • 1.先下载源码ftp://ftp.denx.de/pub/u-boot/
  • 2.阅读源码source insight
  • 3.如何在source中添加项目?
  • 4.技术文档
  • uboot作用
    • 初始化硬件设备、建立内存空间映射图、借此来将系统的软件和硬件带到一个合适的状态,为下一步的内核调用做好准备。
    • (大部分情况下,对于嵌入式系统来说,在CPU中是没有固件程序的,和PC还有像DSP那种自带bios或者boot启动是有些不同的)
    • 因此整个系统的加载启动任务就完全由Boot Loader来完成。 uboot就是bootloader的一种,全称Universal Boot Loader。
  • 5.分析:
    • 1、不管是针对哪一种处理器,我们都要根据存储器资源去定制自己的启动流程。
    • 2、
  • 启动流程:

    • ** step1.**uboot镜像(也就是bin文件 重要!不是elf文件 bin文件 和 elf文件异同 自行百度)存储在norflash中,上电后ARM默认从地址0x00000000处取出第一条指令。当运行C程时,形参和局部变量需要入栈,栈顶设置SRAM的顶端,为C程序提供运行环境。完成对gd_t *gd_ptr赋值(存储uboot镜像的长度,重定位地址等信息)。

      • 为什么顶端?
        • 害怕uboot镜像和操作系统镜像重叠
    • ** step2.**在第一阶段会完成arm处理器的时钟和DDR的配置以及对gd_t *gd_ptr赋值(用于存储uboot镜像的长度,重定位地址等信息)。此时SDRAM就可以正常进行数据读写。将uboot镜像复制到SDRAM中(重定位地址由gd_t *gd_ptr提供),根据重定位偏移量得到新的PC指针值,在DDR中继续运行uboot。

      • 这个图有个错误
        • 上面应该是SDRAM,512MB
    • **step3.**在DDR中继续运行的uboot完成对ARM处理器各外围硬件的初始化,如SPI、I2C、网卡等。最终uboot进入main_loop,阻塞等待串口终端输入命令或者去启动内核。始终要清楚一点uboot的主要作用是通过 Flash和Sram初始化时钟和DDR(arm最小系统),最终uboot是需要在ddr中运行进行裸机调试或者去引导操作系统内核启动。

转载:深入理解uboot 2016 - 基础篇(处理器启动流程分析)_kernel_yx的博客-程序员秘密

有些许修改和变化,完整请移步上面连接

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43824188/article/details/120716046

智能推荐

C# NEWTONSOFT.JSON读取json文件_newtonjson 读取json_丷与你初见丷的博客-程序员秘密

public static void Readjson(){ string jsonfile = "D://tsconfig1.json"; using (System.IO.StreamReader file = System.IO.File.OpenText(jsonfile)) { using (JsonTextReader reader = new JsonTextRead...

mysql 字符串拆分成表,MySQL的,拆分一个字符串,并插入表_星话大白的博客-程序员秘密

I have two inputs for my stored procedure. One is the 'RoledID' and second one is the 'MenuIDs'. 'MenusIDs' is a list of comma separated menus ids that need to be inserted with RoledID. RoleId is just...

mysql距离函数st_distance_lanqibaoer的博客-程序员秘密

st_distance 函数st_distance 函数是从mysql5.6.1才加入的。 SET @g1 = POINT(1,1), @g2 = POINT(2,2);select  st_distance (@g1, @g2);#输出结果:1.4142135623730951  单位是度SELECT  st_dis

【ToolBar】Android ToolBar之完全解析_亦枫Blog的博客-程序员秘密

原文地址:Toolbar:上位的小三炮兵 镇楼Toolbar是Android 5.0中新引入的一个控件,其出现的目的就是为了取代ActionBar,在讲解Toolbar之前我们还是来恶补一下关于ActionBar的一些野史,看看为什么Android会在5.0中使用一个全新的控件来取代它。说起ActionBar相信大家都不陌生,Android在3.0的时候

STM32学习心得二十:USMART调试组件实验_天亮继续睡的博客-程序员秘密

记录一下,方便以后翻阅~主要内容1) USMART调试组件基本过程;2) USMART配置过程;3) USMART调试测试过程。1. USMART概念USMART是正点原子团队为其STM32开发平台开发的一种类似linux的shell的调试工具。具体工作过程是通过串口发送命令给单片机,然后单片机收到命令之后调用单片机里面对应的相关函数,并执行,同时支持返回结果。2. ...

随便推点

职场如何做好时间管理_weixin_30609287的博客-程序员秘密

如何安排时间,对于我们在工作当中的效率有很大的影响。每个人拥有的每一天的时间其实都是一样的,但是你如何利用这些时间,对你的生活和工作影响非常大。想到就立刻去做你的思想只有化为行动,才有可能实现,才能让人看到。想到一些事的时候,立刻去做,不要犹豫,不要拖延,很多时候,拖着拖着,你就把这事落下了。养成想到的事情立刻去做,会明显提高你的生活和工作效率,改善你的拖延症。如果没有尽快付诸行动,你就会...

模拟退火MATLAB_Azuresmh的博客-程序员秘密

一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。 爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。如图1所示:假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜索,因为在A点无论向那个方...

机器学习-深度学习-调参技巧【贝叶斯优化】_JianqiuChen的博客-程序员秘密

贝叶斯优化贝叶斯优化可以解决在调参时,参数组合的盲目搜索(gridsearch)可以快速,高效的找到相对最优的参数。Sequential model-based optimization (SMBO) 是贝叶斯优化的最简形式,其算法思路如下:主要的流程如下(引用自limoumou)流程和伪代码中关键内容讲解:PF-fitmodel:找到模型分布,如果已知,则可以根据经验选择最优的模型;如果未知,则可以采用基于高斯过程的核函数作为黑盒函数自己学习。高斯过程的内容可以参考高斯分布讲解这里大致

ZLMediakit独家特性介绍_zlmediakit 优化_老衲不出家的博客-程序员秘密

1、先播放后推流痛点:推流成功前不能提前播放场景介绍:有些及时推流的场景,存在推流和播放同时发生的场景,这种场景一般是一对一的,譬如说基于rtmp推流的行车记录仪,用户在调阅车载摄像头视频的,下发推流命令给设备时,同时开始播放视频,如果播放请求先于推流到达流媒体服务器,那么流媒体服务器通常会立即返回流未找到的错误,为了解决这个问题,一般的解决方案是,通过设备确认推流成功再开启播放,但是这样往往会增加视频打开延时,拉低用户体验。zlmediakit针对此场景作出特别优化,可以在流不存在时,先不回

概念篇(一)_CCCCCC1990的博客-程序员秘密

1、什么叫SDK、API、IDE、Xcode2、转载于:https://www.cnblogs.com/cchHers/p/9013473.html

各级和弦的功能_251和声进行的原理_new_abc的博客-程序员秘密

流行音乐中一般只讲大调的和弦而很少把小调单独作为一种调式重新定义和弦,因为流行音乐中关系大小调和弦共用的现象十分普遍,如果用经典和声学解释会颠来倒去搞不清。    下面我们用C大调来举例。基本和弦共7个:C,Dm,Em,F,G,Am,Bdim.分别是1,2,3,4,5,6,7级和弦。1,4,5称正三和弦,2,3,6称副三和弦。7级和弦在流行音乐中极为少用。1级和弦也称主和弦,4级和弦也下属和弦

推荐文章

热门文章

相关标签