随笔分类 - 《uboot - kernel - fs》

摘要:1、MAC控制器、网卡、PHY、MDIO、mii、gmii、rgmii概念扫盲 网卡在功能上包含OSI模型的两个层,数据链路层和物理层。物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。数据链路层则提供寻址机构、数据帧的构建、数据差错 阅读全文
posted @ 2019-10-17 10:52 一个不知道干嘛的小萌新 阅读 (71) | 评论 (0) 编辑
摘要:1.配置编译busybox busybox的官方网站是:http://www.busybox.net/ 打开busybox中的INSTALL文档,里面详细说明了如何配置编译busybox。 The BusyBox build process is similar to the Linux kerne 阅读全文
posted @ 2019-09-22 10:14 一个不知道干嘛的小萌新 阅读 (57) | 评论 (0) 编辑
摘要:https://blog.csdn.net/davion_zhang/article/details/52233043 阅读全文
posted @ 2019-09-21 11:06 一个不知道干嘛的小萌新 阅读 (11) | 评论 (0) 编辑
摘要:1.busybox 平时我们在开发板中输入ls、cp、mv等命令,都是在/bin文件中。而通过ls -l就可以发现 这些命令都是放在busybox中的。并且在内核启动后,通过ps命令,可以看到有一个init进程正在运行。 因此就先来分析一下,这个第一个运行的进程init。 2.init进程分析 因为 阅读全文
posted @ 2019-09-20 16:02 一个不知道干嘛的小萌新 阅读 (34) | 评论 (0) 编辑
摘要:1.init_post启动应用程序 在内核经过一系列得初始化以及挂载了根文件系统后,最后就是运行第一个应用程序。 打开dev/console控制台设备(串口0),使用户能输入信息, /dev/console即成为kernel_init进程的标准输入源(文件描述符0),打开失败则打印Warning: 阅读全文
posted @ 2019-09-20 15:34 一个不知道干嘛的小萌新 阅读 (51) | 评论 (0) 编辑
摘要:1.内核启动参数 当uboot启动内核时,调用的是armlinux.c中的theKernel (0, bd->bi_arch_number, bd->bi_boot_params),传入了两个参数。 bi_arch_number:机器码(以2410为例,可以通过sourceinsight中的全局搜索 阅读全文
posted @ 2019-09-09 10:12 一个不知道干嘛的小萌新 阅读 (79) | 评论 (0) 编辑
摘要:1.内核的配置和编译 2.了解内核的配置过程和编译过程 在内核的配置过程中,会生成文件.config。 以网卡DM9000为例: 在.config中可以找到”CONFIG_DM9000=y“,这表示这个模块会被编译进内核。“CONFIG_DM9000=m”,这表示模块会被编译成.ko文件,可以动态的 阅读全文
posted @ 2019-09-04 19:52 一个不知道干嘛的小萌新 阅读 (56) | 评论 (0) 编辑
摘要:1.内核启动bootcmd 内核启动的两个条件: 1.从Flash中读出内核 2.bootm命令 在uboot界面,通过prinenv可以看到bootcmd=nand read.jffs2 0x30007FC0 kernel;bootm 0x30007FC0 nand read.jffs2 0x30 阅读全文
posted @ 2019-08-30 15:48 一个不知道干嘛的小萌新 阅读 (108) | 评论 (0) 编辑
摘要:以上是smdk2410中的u-boot.lds。 U-boot中那段relocate代码就是通过adr实现当前程序是在RAM中还是flash中: relocate:/* 把U-Boot重新定位到RAM*/ adr r0, _start /* r0是代码的当前位置*/ /*adr伪指令,汇编器自动通过 阅读全文
posted @ 2019-08-29 18:08 一个不知道干嘛的小萌新 阅读 (48) | 评论 (0) 编辑
摘要:1.命令行解析 以help命令为例(~/comand/command.c) U_BOOT_CMD里面对help命令进行了各种的描述, #define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \ cmd_tbl_t __u_boot_cmd_##name 阅读全文
posted @ 2019-08-27 20:28 一个不知道干嘛的小萌新 阅读 (124) | 评论 (0) 编辑
摘要:1.start_armboot分析 根据上一文章得知,在uboot第一阶段最后会调用start_armboot。接下来就继续分析一下start_armboot这个函数(~/lib_arm/board.c) 所以start_armboot主要是在c坏境中对一些硬件设备进行一系列的初始化,然后跳转才ma 阅读全文
posted @ 2019-08-27 14:54 一个不知道干嘛的小萌新 阅读 (58) | 评论 (0) 编辑
摘要:原文链接:https://blog.csdn.net/itdo_just/article/details/78701886 以下源码以u-boot-1.1.6中的2410为例。 1.start.s的引入 在board/smdk2240/u-boot.lds中可以看到ENTRY(_start),。Ub 阅读全文
posted @ 2019-08-26 16:13 一个不知道干嘛的小萌新 阅读 (72) | 评论 (0) 编辑
摘要:1、版本号变化: 2008年8月及以前,按版本号命名:u-boot-1.3.4.tar.bz2(2008年8月更新) 2008年8月以后均按日期命名。目前最新版本:u-boot-2011.06.tar.bz2(2011年6月更新) 2、目录结构变化: u-boot目录结构主要经历过2次变化,u-bo 阅读全文
posted @ 2019-08-26 14:54 一个不知道干嘛的小萌新 阅读 (44) | 评论 (0) 编辑
摘要:1.uboot中的环境变量 bootdelay:执行自动启动的等候秒数 baudrate:串口控制台的波特率 netmask: 以太网接口的掩码 ethaddr: 以太网卡的网卡物理地址 bootfile: 缺省的下载文件 bootargs:传递给内核的启动参数 bootcmd:自动启动时执行的命令 阅读全文
posted @ 2019-08-22 11:06 一个不知道干嘛的小萌新 阅读 (737) | 评论 (0) 编辑
摘要:1.内核中对boot loader描述 (源码位于kernel中的Documentation/arm/booting) linux2.4x以后的内核都期望以标记列表(tagged list)的形式来传递启动参数,标记是一种数据结构;标记列表就是挨着存放的多个标记。标记列表以标记ATAG_CORE开始 阅读全文
posted @ 2019-08-05 16:09 一个不知道干嘛的小萌新 阅读 (122) | 评论 (0) 编辑