[JZ2440] 第09课第1节 u-boot 分析之编译体验

发布时间:2023-06-08  

一、课堂笔记

1. Windows 电脑和嵌入式设备启动流程对比
    |-- Windows 上电启动流程
    |   |-- 上电 -> BIOS(引导操作系统) -> Windows -> 识别 C、D 盘 -> 运行应用程序
    |-- 嵌入式设备
        |-- 上电 -> BootLoader(引导内核) -> Linux Kernel -> 挂载根文件系统 -> 运行应用程序
            
2. BootLoader 最终目的是启动内核
    |-- 启动内核
        |-- 从 Flash 读取 kernel
        |   |-- u-boot 要能够读取 Flash
        |-- 将读取到的 kernel 放进 SDRAM 中
        |   |-- 关闭看门狗
        |   |-- 初始化系统时钟
        |   |-- 初始化 SDRAM
        |-- 实现一些额外的协助开发过程的功能
        |   |-- 为方便下载,u-boot 还要能够写 Flash
        |   |-- 串口、网卡、USB 等扩展功能
        |   |-- 可以实现命令烧写、网络烧写、USB 烧写 kernel 到 Flash 上
        |-- 在 SDRAM 中启动 kernel

3. u-boot 配置编译流程
    |-- 解压 u-boot
    |   |-- user@vmware:~/workspace/s3c2440/package$ ls
    |   |   u-boot-1.1.6.tar.bz2    u-boot-1.1.6_jz2440.patch
    |   |-- user@vmware:~/workspace/s3c2440/package$ tar -jxf u-boot-1.1.6.tar.bz2 -C ../
    |-- 给 u-boot 打补丁
    |   |-- user@vmware:~/workspace/s3c2440/package$ cd ../u-boot-1.1.6/
    |   |-- user@vmware:~/workspace/s3c2440/u-boot-1.1.6$ patch -p1 < ../package/u-boot-1.1.6_jz2440.patch
    |-- 配置
    |   |-- 配置顶层 Makefile 中交叉编译器
    |   |-- user@vmware:~/workspace/s3c2440/u-boot-1.1.6$ make 100ask24x0_config
    |   |-- Configuring for 100ask24x0 board...
    |-- 编译
        |-- user@vmware:~/workspace/s3c2440/u-boot-1.1.6$ make

4. u-boot 使用
    |-- ? 或者 help
    |   |-- 可以查看 u-boot 有哪些命令
    |   |-- ? md 或者 help md 可以查看 md 命令详细介绍
    |-- print
    |   |-- 输出的是 u-boot 环境变量
    |-- set
    |   |-- set bootdelay 10
    |-- save
    |   |-- 保存 set 命令设置的环境变量值
    |-- reset
        |-- 重启命令

 

二、课外补充

1. 一个嵌入式的存储设备通过通常包括四个分区:
  第一个分区:u-boot
  第二个分区:u-boot 要传给系统内核的参数
  第三个分区:系统内核 kernel
  第四个分区:根文件系统

2. u-boot 源代码的目录结构
  1、board中存放于开发板相关的配置文件,每一个开发板都以子文件夹的形式出现。
  2、Commom文件夹实现u-boot行下支持的命令,每一个命令对应一个文件。
  3、cpu中存放特定cpu架构相关的目录,每一款cpu架构都对应了一个子目录。
  4、Doc是文档目录,有u-boot非常完善的文档。
  5、Drivers中是u-boot支持的各种设备的驱动程序。
  6、Fs是支持的文件系统,其中最常用的是JFFS2文件系统。
  7、Include文件夹是u-boot使用的头文件,还有各种硬件平台支持的汇编文件,系统配置文件和文件系统支持的文件。
  8、Net是与网络协议相关的代码,bootp协议、TFTP协议、NFS文件系统得实现。
  9、Tooles是生成U-boot的工具。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>