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

承德网站建设流程大连网建会

承德网站建设流程,大连网建会,代码网站推荐,广州中风险地区参考https://www.cnblogs.com/xdyixia/p/9248240.html linux内核启动过程 一个嵌入式 Linux 系统从软件角度看可以分为四个部分#xff1a;引导加载程序#xff08;Bootloader#xff09;#xff0c;Linux 内核#xff0c;文件系统#xff0c;应用程序。其中 Bootloade…参考https://www.cnblogs.com/xdyixia/p/9248240.html linux内核启动过程 一个嵌入式 Linux 系统从软件角度看可以分为四个部分引导加载程序BootloaderLinux 内核文件系统应用程序。其中 Bootloader是系统启动或复位以后执行的第一段代码它主要用来初始化处理器及外设然后调用 Linux 内核。Linux 内核在完成系统的初始化之后需要挂载某个文件系统做为根文件系统Root Filesystem。根文件系统是 Linux 系统的核心组成部分它可以做为Linux 系统中文件和数据的存储区域通常它还包括系统配置文件和运行应用软件所需要的库。应用程序可以说是嵌入式系统的“灵魂”它所实现的功能通常就是设计该嵌入式系统所要达到的目标。如果没有应用程序的支持任何硬件上设计精良的嵌入式系统都没有实用意义。 Bootloader启动过程 1Bootloader概念和作用 Bootloader是嵌入式系统的引导加载程序它是系统上电后运行的第一段程序其作用类似于 PC 机上的 BIOS。 在完成对系统的初始化任务之后它会将非易失性存储器通常是Flash或DOC等中的Linux 内核拷贝到 RAM 中去然后跳转到内核的第一条指令处继续执行从而启动 Linux 内核。 Bootloader多数有两个阶段的启动过程 Stage1: 汇编 设置CPU为SVC模式关闭MMU和DCacheICache可以打开指令cacheDCACHE需要mmu支持 硬件设备初始化关闭看门狗关中断设置CPU始终频率RAM初始化 为第二阶段代码准备RAM准备空间加载第二阶段代码 设置堆栈指针 sp 清BSS段调用C函数跳到stage2的入口点。 Stage2: c语言 初始化本阶段要使用到的硬件设备 检测系统的内存映射 加载内核映像和文件系统映像 设置内核的启动参数。 2Bootloader的执行过程 不同的处理器上电或复位后执行的第一条指令地址并不相同对于 ARM 处理器来说该地址为 0x00000000。对于一般的嵌入式系统通常把 Flash 等非易失性存储器映射到这个地址处而 Bootloader就位于该存储器的最前端所以系统上电或复位后执行的第一段程序便是Bootloader。而因为存储 Bootloader的存储器不同Bootloader的执行过程也并不相同下面将具体分析。 嵌入式系统中广泛采用的非易失性存储器通常是 Flash而 Flash 又分为 Nor Flash 和Nand Flash 两种。它们之间的不同在于Nor Flash 支持芯片内执行XIP eXecute In Place这样代码可以在Flash上直接执行而不必拷贝到RAM中去执行。而Nand Flash并不支持XIP所以要想执行 Nand Flash 上的代码必须先将其拷贝到 RAM中去然后跳到 RAM 中去执行。 3Bootloader的功能   实际应用中的 Bootloader根据所需功能的不同可以设计得很复杂除完成基本的初始化系统和调用 Linux 内核等基本任务外还可以执行很多用户输入的命令比如设置 Linux 启动参数给 Flash 分区等也可以设计得很简单只完成最基本的功能。但为了能达到启动Linux 内核的目的所有的 Bootloader都必须具备以下功能 (1)、初始化 RAM   因为 Linux 内核一般都会在 RAM 中运行所以在调用 Linux 内核之前 bootloader 必须设置和初始化 RAM为调用 Linux内核做好准备。初始化 RAM 的任务包括设置CPU 的控制寄存器参数以便能正常使用 RAM 以及检测RAM 大小等。 (2)、初始化串口   串口在 Linux 的启动过程中有着非常重要的作用它是 Linux内核和用户交互的方式之一。Linux 在启动过程中可以将信息通过串口输出这样便可清楚的了解 Linux 的启动过程。虽然它并不是 Bootloader 必须要完成的工作但是通过串口输出信息是调试Bootloader 和Linux 内核的强有力的工具所以一般的 Bootloader 都会在执行过程中初始化一个串口做为调试端口。 串口https://blog.csdn.net/a514371309/article/details/73481423 (3)、检测处理器类型   Bootloader在调用 Linux内核前必须检测系统的处理器类型并将其保存到某个常量中提供给 Linux 内核。Linux 内核在启动过程中会根据该处理器类型调用相应的初始化程序。 (4)、设置 Linux启动参数   Bootloader在执行过程中必须设置和初始化 Linux 的内核启动参数。目前传递启动参数主要采用两种方式即通过 struct param_struct 和struct tag标记列表tagged list两种结构传递。struct param_struct 是一种比较老的参数传递方式在 2.4 版本以前的内核中使用较多。从 2.4 版本以后 Linux 内核基本上采用标记列表的方式。但为了保持和以前版本的兼容性它仍支持 struct param_struct 参数传递方式只不过在内核启动过程中它将被转换成标记列表方式。标记列表方式是种比较新的参数传递方式它必须以 ATAG_CORE 开始并以ATAG_NONE 结尾。中间可以根据需要加入其他列表。Linux内核在启动过程中会根据该启动参数进行相应的初始化工作。 (5)、调用 Linux内核映像   Bootloader完成的最后一项工作便是调用 Linux内核。如果 Linux 内核存放在 Flash 中并且可直接在上面运行这里的 Flash 指 Nor Flash那么可直接跳转到内核中去执行。但由于在 Flash 中执行代码会有种种限制而且速度也远不及 RAM 快所以一般的嵌入式系统都是将 Linux内核拷贝到 RAM 中然后跳转到 RAM 中去执行。   不论哪种情况在跳到 Linux 内核执行之前 CPU的寄存器必须满足以下条件r00r1处理器类型r2标记列表在 RAM中的地址。
http://www.pierceye.com/news/755670/

相关文章:

  • 网站后台凡科建设有做网站维护的
  • 搭建网站需要什么软件上海在线
  • led灯外贸网站建设网站代码怎么优化
  • 网站建设维护什么意思江苏网络推广专员
  • 潍坊网站开发asp培训珠海市网站建设公司
  • 用什么做响应式网站建行个人余额查询网站
  • 做网站网站代理怎么找客源企业团建公司
  • 电子商务网站开发实战济南兼职做网站
  • 怎样创建网站视频学历提升的重要性
  • 百度搜索引擎录入网站1_ 掌握网站开发的基本流程 要求:熟悉网站开发与设计的基本流程.
  • 广州做网站建设如何在别人网站挂黑链
  • 宁德北京网站建设任丘建设银行网站
  • 积极加强网站建设连锁会员管理系统
  • 河南做外贸网站的公司简介wordpress做教育网站
  • 兴城做网站推广的企业网站后台管理软件
  • 自定义优定软件网站建设申请永久网站空间
  • 免费发布信息的网站平台怎么做网站统计
  • 制作网站的过程是对信息的龙海市住房和城乡建设局网站
  • 鱼台县建设局网站免费ppt模板制作软件
  • 质量好网站建设多少钱黄冈网站建设哪家快些
  • 使用阿里云部署wordpressseo搜索排名影响因素主要有
  • 大连制作网站建站教程图解
  • 百度的合作网站有哪些网站建设费用写创意
  • 建设个人网站ip护肤品网页设计图片
  • 德州网站建设优化金阳龙泉苑网站建设
  • 建站公司最新价格网站素材网
  • 高品质的网站开发公优酷网站谁做的
  • 广西兴业县建设局网站湖北天健建设集团有限公司网站
  • 学多久可以做网站 知乎中国100强企业名单公布
  • 江阴网站优化公司开源的 二次网站开发