uboot
明故宫的记忆
吾生也有涯,而知也无涯。以有涯随无涯,殆已……
展开
-
omapl138移植uboot系列之在线升级(第八篇完结篇)
uboot在线升级的原理是先通过某种外部接口(如网口、串口、USB等)将目标文件加载到DDR,然后从DDR中读取二进制文件并写到存储介质指定地址,由于639A底板并无网口,唯一与外部通信的接口就是串口,所以本节将借助639A板卡的本地串口完成在线升级功能。 Kermit文件运输协议是用于PC之间交换文件的一种简单的文件运输协议,uboot和secureCRT软件就支持Kermit...原创 2018-10-21 14:22:20 · 827 阅读 · 1 评论 -
omapl138移植uboot系列之添加MTD分区(第七篇)
如果你刚刚使用仿真器的方式烧录了uboot镜像,你肯定会感叹实在是太慢了,先别叹气,看完本节你将爱上烧录程序。2.6.1 添加MTD分区 MTD(memory Teachno Device)中文翻译为“内存技术设备”,是Linux系统对“NorFlash”,“NandFlash”等存储设备抽象出来的一个设备层,它向上提供统一的访问接口,屏蔽底层硬件的操作,而uboot中分区只...原创 2018-10-21 14:10:11 · 2112 阅读 · 2 评论 -
omapl138移植uboot系列之添加点亮led命令(第六篇)
2.5 uboot命令体系 刚刚你是否注意到,uboot启动后会先进入一个3s的倒计时,在倒计时变成0之前,敲打键盘的任意键,都会进入uboot的命令行状态,在此输入命令按回车结束,uboot会收取这个命令然后解析,然后执行。每一个uboot的命令背后都对应一个函数。这就是uboot实现命令体系的一种思路和方法。进入uboot控制界面后,可以运行各种命令,比如下载文件到内存,擦...原创 2018-10-21 14:06:10 · 858 阅读 · 0 评论 -
omapl138移植uboot系列之移植板卡(第五篇)
上节操作完成后,虽然uboot中有了我们自己的板卡,但并未进行移植,所以现在是还不能烧录的,本节将带领大家根据自己的板卡进行uboot移植。2.4.1 图形界面下配置 命令行执行 make menuconfig,出现如下界面 方括号[ ]中的“*”代表编译链接时添加该模块,为空则不参加编译链接,这就是uboot的裁剪功能。因为我们的启动介质是SP...原创 2018-10-21 13:58:04 · 937 阅读 · 1 评论 -
omapl138移植uboot系列之添加属于我们自己的板卡(第四篇)
在第一章节,我们已经编译好了一份uboot,但它是适用于TI自己的omapl138_lcdk开发板的,并不适用于我们的板卡,本章将带领大家在uboot中添加639A板卡。 2.3.1 向board中添加属于自己的板卡 board目录下每一个终极文件夹都是一块板卡的片上驱动程序,TI 工程师们移植过的omapl138_lcdk板卡位于board/davinci/d...原创 2018-10-21 13:34:51 · 985 阅读 · 0 评论 -
omapl138移植uboot系列之启动内核原理(启动内核第三篇)
uboot启动内核原理看完上一节,你应该已经学会如何启动内核了,但只会启动内核是不行的,我们的目的是令内核按照我们的想法去运行,这就不得不提一下内核传参机制。3.3.1 还是bootm内核启动不是无条件的,而是有一定的先决条件,这个条件由启动内核的bootloader(我们这里就是uboot)来构建保证。Linux规定了一种“向我传参“机制,那么uboot要是还想启动Linux内核...原创 2018-10-28 18:00:32 · 657 阅读 · 1 评论 -
omapl138移植uboot系列之修改移植TI官方移植的Linux内核(启动内核第二篇)
修改Linux内核源码 实际上,刚刚我们已经成功的启动了TI移植过的Linux内核,但是从串口控制台的现象来看,“Starting Kernel”之后什么信息都没有输出,这就需要我们在TI移植过的内核源码之上进行相应修改,以适合我们的639A板卡。3.2.1 关于uboot启动内核停留在Starting Kernel问题的解决当通过Kermit方式使用串口在线将内核uImage...原创 2018-10-28 17:57:51 · 1682 阅读 · 1 评论 -
omapl138移植uboot系列之启动TI官方移植的Linux内核(启动内核第一篇)
启动TI官方移植的Linux内核和编译uboot一样,Linux内核的编译也是三板斧,首先修改Makefile中的ARCH和CROSS_COMPILE,然后找到你要编译的板卡执行make xx_defconfig配置,最后执行make menuconfig进行检查并修改,三板斧操作完就可以直接make编译啦!我们还是和移植uboot一样,先编译TI 移植过的omapl138开发板的内核镜...原创 2018-10-28 17:53:54 · 905 阅读 · 0 评论 -
关于uboot启动内核停留在Starting Kernel问题的解决
当通过Kermit方式使用串口在线将内核uImage加载到内存0xC0008000地址处后,执行bootm c0008000命令去启动内核,console控制台信息执行到Starting Kernel就卡住不动了,这句打印信息是uboot的最后一条打印信息,也就是我们确定不了内核到底有没有被启动一般内核启动失败常见的原因大多是因为传参不正确导致的,即r0-r2寄存器的值。将machi...原创 2018-09-09 08:53:51 · 15979 阅读 · 0 评论 -
omapl138移植uboot系列之uboot SPL阶段原理分析(第二篇)
2.2 uboot SPL阶段 自2012年以后,uboot分为了uboot-spl和uboot两个组成部分。SPL即Secondary Program Loader的简称,第二阶段程序加载器,这里所谓的第二阶段是相对于SOC中固化ROM中的启动,即RBL(ROM BootLoader)。 2.2.1 为什么uboot要增加SPL 一般厂商固化的RBL上电后会通过相关的硬...原创 2018-05-26 10:18:30 · 1205 阅读 · 0 评论 -
omapl138移植uboot系列之uboot SPL代码分析(第三篇)
单纯的从源码开始分析uboot是一件十分令人头疼的事,因为uboot不只是针对你是用的芯片架构,你在分析源码时所遇到的那些条件编译你很难去找到它定义的地方,更别说这个宏到底有没有被定义,我个人比较喜欢对照着反汇编去分析源代码。 在顶层目录下执行:make omapl138_lcdk_defconfigmake MEMORY { .sram : ORIGIN = ...原创 2018-05-26 13:00:25 · 708 阅读 · 0 评论