linux内核/uboot
文章平均质量分 89
linux内核/uboot
跟 屁 虫
这个作者很懒,什么都没留下…
展开
-
Linux设备树
文章目录前言1 前言2 概念设备树框架引用KEY3 DTS文件的格式前言参考:https://blog.csdn.net/gzxb1995/article/details/108751514关于设备树详细的语法规则请参考《Devicetree SpecificationV0.2.pdf》和《Power_ePAPR_APPROVED_v1.12.pdf》这两份文档。1 前言如何去描述设备这一定是设备驱动需要考虑的重要问题。早先,linux中ARM架构使用源文件中的宏、结构等去描述设备,不过现在转载 2022-03-10 16:05:22 · 1563 阅读 · 0 评论 -
Linux根文件系统构建实验&busybox的移植
前言:busybox&inittab等资源2.busybox的移植2.1、busybox源码下载(1)busybox是一个开源项目,下载busybox可以去linuxidc等镜像网站,也可以去www.busybox.net官方网站下载。2.2、修改Makefile(1) ARCH = arm(2) CROSS_COMPILE = /usr/local/arm/arm-2009q3/bin//arm-none-linux-gnueabi-2.3、make menuconfig进行配置(原创 2021-03-08 15:55:01 · 586 阅读 · 0 评论 -
Linux内核的移植实验-三星官方内核(了解)
Linux内核的移植-从三星官方内核开始移植1.内核移植初体验1.1、三星官方移植版内核:https://download.csdn.net/download/weixin_44705391/156375041.2、构建移植环境(1)Windows下建立SI工程(2)ubuntu下解压1.3、配置编译下载尝试(1)检查Makefile中ARCH和CROSS_COMPILE(2)make xx_defconfig(我们是make smdkv210_android_deconfig)(3)ma原创 2021-03-08 11:57:39 · 630 阅读 · 0 评论 -
Linux根文件系统
1.根文件系统概述1.1、为什么需要根文件系统(1)init进程的应用程序在根文件系统上(2)根文件系统提供了根目录/(3)内核启动后的应用层配置(etc目录)在根文件系统上。几乎可以认为:发行版=内核+rootfs(4)shell命令程序在根文件系统上。譬如ls、cd等命令总结:一套linux体系,只有内核本身是不能工作的,必须要rootfs(上的etc目录下的配置文件、/bin /sbin等目录下的shell命令,还有/lib目录下的库文件等···)相配合才能工作。1.2、根文件系统的实原创 2021-03-07 14:57:43 · 671 阅读 · 0 评论 -
Linux内核的配置和编译
前言:以下内容基于2.6.35.7版本内核,文件资源:https://download.csdn.net/download/weixin_44705391/156299061.linux内核源码目录结构1.1、解压开源码文件 可看到:(绿色文件夹/文件对我们很重要)(1)arch。架构。arch目录下是好多个不同架构的CPU的子目录,譬如arm这种cpu的所有文件都在arch/arm目录下,X86的CPU的所有文件都在arch/x86目录下。(2)block。譬如说SD卡、iNand、Nand、硬盘原创 2021-03-07 14:56:05 · 3516 阅读 · 0 评论 -
Linux内核的启动过程分析
1.做好内核分析的准备工作1.1、删除无用文件(1)官方版本的kernel中是支持各种硬件架构、各种开发板的,因此有很多文件夹和文件和我们无关,在建立SI工程前应该删掉。(2)现在分析的是九鼎科技移植好的针对X210开发板的kernel,因此其中一些无用文件已经被删掉了。1.2、建立SI工程并解析(2)建立方法和uboot中当时讲的是一样的。1.3、Makefile分析(1)kernel的Makefile写法和规则等和uboot的Makefile是一样的,甚至Makefile中的很多内容都是一原创 2021-03-07 14:57:20 · 2330 阅读 · 1 评论 -
uboot中start.S的_TEXT_BASE
uboot中start.S有以下语句:_TEXT_BASE: .word TEXT_BASE但是他从哪来呢?猜测1:主Makefile中有对其定义,并且export为环境变量,我一开始认为环境变量可以作用到整个工程,但其实不然,Makefile的make也是一个应用程序,其make的整个过程中环境变量是有效的,但是make之后,失效,并且只可以在上层Makefileexport供下层Makefile使用,同级别都不能使用。也就是说他export的变量只在当前这次运行的进程中有效。和shell一原创 2022-02-20 22:22:25 · 704 阅读 · 0 评论 -
uboot边角料3——MMU
1、什么是虚拟地址、物理地址(1)物理地址就是物理设备设计生产时赋予的地址。像裸机中使用的寄存器的地址就是CPU设计时指定的,这个就是物理地址。物理地址是硬件编码的,是设计生产时确定好的,一旦确定了就不能改了。(2)一个事实就是:寄存器的物理地址是无法通过编程修改的,是多少就是多少,只能通过查询数据手册获得并操作。(3)虚拟地址意思就是在我们软件操作和硬件被操作之间增加一个层次,叫做虚拟地址映射层。有了虚拟地址映射后,软件操作只需要给虚拟地址,硬件操作还是用原来的物理地址,映射层建立一个虚拟地址到物理原创 2021-03-05 17:10:56 · 573 阅读 · 0 评论 -
uboot FIT
文章目录前言1.前言1.http://www.wowotech.net/u-boot/fit_image_overview.htmlhttps://harmonyhu.com/2018/07/01/uboot-ITS/http://www.wowotech.net/sort/u-boothttps://www.itmangoto.cn/2018/05/18/arm-uboot-fit-img/https://blog.csdn.net/ooonebook/article/details/转载 2022-02-04 16:20:08 · 274 阅读 · 0 评论 -
uboot启动Linux内核
前言:uboot启动过程uboot帮助内核的两件事情:1.uboot帮助内核实现重定位(从SD卡到DDR)2.uboot给内核提供启动参数,并执行bootcmd命令启动内核多种启动方式:1.从SD卡的kernel分区去读取内核镜像到DDR:命令:movi read kernel 30008000。2.tftp、nfs等网络下载方式从远端服务器获取镜像uboot还支持远程启动:内核镜像放在主机的服务器中。(注:镜像要放在DDR的链接地址处,链接地址去内核源代码的链接脚本或者Makefile中去原创 2021-03-06 17:27:52 · 2345 阅读 · 0 评论 -
uboot的mmc驱动
1.uboot的虚拟地址对硬件操作的影响(1)操作系统(指的是linux)下MMU肯定是开启的,也就是说linux驱动中肯定都使用的是虚拟地址。而纯裸机程序中根本不会开MMU,全部使用的是物理地址。这是裸机下和驱动中操控硬件的一个重要区别。(2)uboot早期也是纯物理地址工作的,但是现在的uboot开启了MMU做了虚拟地址映射,这个东西驱动也必须考虑。查uboot中的虚拟地址映射表,发现除了0x30000000-0x3FFFFFFF映射到了0xC0000000-0xCFFFFFFF之外,其余的虚拟地址原创 2021-03-06 17:57:03 · 1578 阅读 · 0 评论 -
uboot的环境变量
1.概述1.1、环境变量的优先级(1)命令传参>环境变量>uboot源码中的设置。1.2、环境变量在uboot中工作方式(1)默认环境变量,在uboot/common/env_common.c中default_environment,本质是一个字符数组,大小为CFG_ENV_SIZE(16kb),每个环境变量最末端以’\0’结束。(2)SD卡中环境变量分区,在uboot的raw分区中。当saveenv时其实整个环境变量都被保存了一遍,而不是只保存更改了的。(3)DDR中环境变量,在d原创 2021-03-06 17:25:00 · 2939 阅读 · 0 评论 -
uboot命令体系
文章目录前言1.uboot命令体系概述2.uboot命令解析和执行过程分析3.uboot如何处理命令集4.uboot如何处理命令5.uboot中增加自定义命令前言uboot学习:边看代码边总结应该会比较好。不纠结于细节,要想弄清楚uboot的目的,看代码的枝干就行。根据朱有鹏课程整理。uboot文章连载:1.uboot命令体系概述1.1、uboot命令体系的实现代码在uboot/common/cmd_xxx.c中。有若干个.c文件和命令体系有关。(还有command.c main.c也是和命原创 2021-03-06 16:28:01 · 385 阅读 · 0 评论 -
uboot启动过程
前言讲述uboot文件启动过程,加粗表示文件or跳转指令(箭头表示跳转)uboot文章连载:0.uboot命令集&环境变量1.uboot启动过程2.uboot命令体系3.uboot的环境变量4.uboot的驱动5.uboot启动Linux内核Linux文章连载Makefile—>u-boot.lds :ENTRY(_start)—>start.S、lowlevel_init.c :(1)构建异常向量表(2)设置CPU为SVC模式(3)关看门狗(4)开原创 2021-03-05 21:21:43 · 2032 阅读 · 0 评论 -
uboot配置,编译,移植
文章目录前言1.开发板厂商提供的uboot的配置及编译前言uboot是通用的启动代码,我们编译移植最好找到和自己的开发板最相近的版本,比如厂商已经匹配的uboot,uboot分类:官方版,SoC厂商,开发板厂商。我们可以根据自己入手的开发板做一次移植,再根据官方给出的uboot做一次移植,从而很好的学习此方面的知识。1.开发板厂商提供的uboot的配置及编译以下内容基于x210开发板:配置:make x210_sd_config出现:Configuring for x210_sd boa原创 2022-02-03 22:28:01 · 2578 阅读 · 0 评论 -
uboot命令集&环境变量
1.printenv/print 打印环境变量2.set/setenv 设置环境变量,设置环境变量到DRAM,要是需要设置到flash中需要使用save命令。save的过程:var保存到flash中:3.save4.reset:重启5.fastboot:插上USB线uboot上执行fastboot之后,接下来的所有命令都是在Windows上执行的:最常用的三个命令:查看设备:fastboot devices烧录命令:fastboot flash bootloader android2.3原创 2022-01-24 22:59:09 · 1780 阅读 · 0 评论