当前位置: 首页 > ds >正文

《全志T3》_嵌入式产品Ubuntu操作系统启动详解一

拿到芯片厂商提供的SDK,我们先来看下有哪些东西

SDK目录

1. brandy:Bootloader目录
2. buildroot-201611:工具链、依赖和生产最终烧录包
3. doc:参考文档
4. linux-3.10:操作系统
5. tools:用到的工具
整个工程编译依赖“build.sh"脚本,具体使用可以查看脚本。

启动步骤

  1. BROM 阶段:机器上电后,执行固化在 BROM 里面的引导程序,依次遍历 sd/mmc 卡、nand 和 spinor 等支持的启动介质,找到第一个支持的介质后,从固定位置读入 Bootloader 的 Boot0 到 SRAM,然后跳到 SRAM 执行。

  2. Bootloader 阶段:Bootloader 分为 Boot0 和 Boot1 两部分。Boot0 负责初始化 DRAM,加载 Boot1 到 DRAM;Boot1 进行系统调频,将 CPU 的频率调到用户在 sys_config1.fex target 段配置的 boot_clock,然后加载 U - Boot 到 DRAM。

  3. U - Boot 阶段:U - Boot 引导内核分为两个阶段,第一阶段关闭 I/D cache 和 MMU,重定位 U - Boot 到最高地址;第二阶段有完整的 C 环境,执行平台相关的初始化,初始化存储设备,初始化 fastboot 和 android recovery 等。

  4. 内核启动阶段:调用一系列函数完成处理器信息查找、页表创建、MMU 和 Cache 初始化等操作,最终启动用户空间的 init 进程,完成设备初始化以及外设及其驱动程序的加载和初始化。

http://www.xdnf.cn/news/8453.html

相关文章:

  • Android.mk解析
  • Web前端开发: 什么是JavaScript?
  • 垒球百科全书·棒球1号位
  • 无法访问org.springframework.boot.SpringApplication
  • Elastic:什么是 DevOps?
  • Chrome中http被强转成https问题
  • Git 分支管理:merge、rebase、cherry-pick 的用法与规范
  • Python应用“面向对象”人力系统
  • 深入解析自然语言处理中的语言转换方法
  • Docker Volumes 还原指南
  • java Sm2SignWithSM3转php
  • 网络学习-TCP协议(七)
  • 跨域解决方案之JSONP
  • YOLOV11改进策略【最新注意力机制】CVPR2025局部区域注意力机制LRSA-增强局部区域特征之间的交互
  • 使用DDR4控制器实现多通道数据读写(十三)
  • DAO模式
  • DEBUG设置为False 时,django默认的后台样式等静态文件丢失的问题
  • 新能源汽车滑行阻力参数计算全解析:从理论推导到MATLAB工具实现
  • macOS 安装 PostgreSQL
  • 基于大模型的股骨干骨折全周期预测与诊疗方案研究报告
  • 可视化大屏全屏后重载echarts图表
  • JUC并发编程1
  • MyBatis 笔记:parameterType、resultType 与 resultMap 的区别详解
  • Android 网络全栈攻略(四)—— 从 OkHttp 拦截器来看 HTTP 协议一
  • 146. LRU Cache
  • Anthropic公司近日发布了两款新一代大型语言模型Claude Opus 4与Claude Sonnet 4
  • 矩阵:线性代数在AI大模型中的核心支柱
  • 深入解析MySQL中的HAVING关键字:从入门到实战
  • Docker 与 Kubernetes 部署 RabbitMQ 集群(二)
  • C++ 忘掉std::cout吧,fmt和spdlog的结合