4412的引导程序移植与开发
摘 要 随着物联网的发展和兴起,作为物联网支撑技术之一的嵌入式系统已然成为越来越多的人关注的热点。嵌入式产品设备的功能越来越强大,越来越复杂,随之出现的就是可靠性大大降低。目前,一种趋势是一个功能强大的嵌入式系统往往需要一种已成熟且稳定的操作系统来支持,例如嵌入式的Linux、WINCE、VxWorks等等。论文首先介绍了课题的研究背景和意义,概述了本课题主要工作及本文主要内容,并规划了论文结构安排。其次介绍了Bootloader在嵌入式系统中承担的角色及Bootloader基本的工作原理。然后依次介绍了Bootloader的最小系统设计与实现,包括系统时钟的初始化、看门狗操作、堆栈操作、icache操作等;实现了系统基本外设的初始化,包括串口、LCD及ADC电池采样功能;研究了Bootloader系统环境变量的添加和系统内核的引导流程。紧接着对本课题设计的功能进行了代码实现和测试,实验结果表明所设计的功能基本实现且正确运行。论文最后总结了本文主要的研究工作,并对进一步的工作进行了展望。
目 录
摘要 I
Abstract II
目录 III
第一章 绪论 1
1.1 课题研究背景 1
1.2 主要工作 2
1.3 论文主要内容和组织结构 3
第二章 Bootloader的分析 5
2.1 Bootloader的概念 5
2.2 Bootloader的操作模式 6
2.3 Bootloader的概念扩展 6
第三章 Bootloader的设计与实现 8
3.1 Bootloader最小系统的设计与实现 8
3.1.1 系统时钟 8
3.1.2 关闭看门狗 11
3.1.3 设置栈 11
3.1.4 控制icache 13
3.1.5 跳转到第二阶段入口 13
3.2 系统外设功能设计与实现 13
3.2.1 串口通信设计与实现 13
3.2.2 LCD显示设计与实现 15
3.3 系统定制功能的设计与实现 20
3.3.1 ADC原
*好棒文|www.hbsrm.com +Q: 3_5_1_9_1_6_0_7_2
理 20
3.3.2 ADC功能设计与实现 21
3.4 系统引导 21
3.4.1常用环境变量 22
3.4.2自定义环境变量 22
3.4.3引导内核 23
第四章 实验结果与测评 24
4.1 Bootloader最小系统实现 24
4.1.1 系统时钟初始化 24
4.1.2 icache开启/关闭实验 28
4.2 系统外设实现 29
4.2.1 串口通信 29
4.2.2 LCD显示 30
4.3 ADC功能 32
4.4 系统引导 33
4.4.1 自定义环境变量 33
4.4.2 引导系统内核 33
第五章 结束与展望 34
参考文献 35
致谢 36
绪论
课题研究背景
伴随着物联网时代的到来,物物相连已然成为常态,嵌入式产品设备作为物联网中的互联终端也必然掀起一股新的革命浪潮。嵌入式系统已被越来越多的人所熟悉,智能手机、智能家居、智能交通等等设备已经是无处不在,贯穿于人们生活的方方面面,其应用领域已涉及到信息家电、智能机器、移动通信、便携式设备、自动化检测和工业控制等各行各业。嵌入式系统究竟是怎样的一种系统呢?其定义又是什么呢?它的一般性定义是:是一种专用计算机系统,它的设计是针对具体的特定应用,在可靠性、成本、功耗等方面必须严格控制。它具备一般计算机系统的架构,但其在功能上又是有所区别的[1]。嵌入式系统是集技术资金密集、持续创新等特征为一体的集成系统,是各项高新技术不断取得突破的产物,是属于时代IT界的代表技术之一[2]。
嵌入式系统是一个集软件和硬件两大部分的多模块组合体。在硬件部分,其构成通常情况下包括嵌入式处理器,外加存储器以及外设器件等;在软件部分,其通常是由RTOS、文件系统 、GUI、通用模块等构成,其中,RTOS是应用软件的基础以及开发平台。软硬件的密切配合,协调工作,最终实现具体的应用。对于嵌入式产品设备的研发生产,分为面向硬件和面向操作系统两个方向。硬件是嵌入式系统功能实现的的基础,软件能够运行的必备平台,而这当中最重要的又莫过于嵌入式处理器。自然地,在这一方向上的开发也就着眼于嵌入式处理器的开发。目前,嵌入式处理器的开发已形成以ARM公司为主导的市场体系。这都是由于ARM体系架构的处理器兼具高性能、低功耗等特点,故得到了广泛的应用,遍布此领域的各个角落。当今世界上基本上所有的各大半导体生产商都生产基于ARM体系架构的通用芯片,比如ST,Intel,Motorola,Intel,NS,Ateml,Philips,SAMSUNG 、TI等。基于ARM体系架构的通用芯片已被应用于智能卡、PDA、汽车、成像、消费电子产品等各类产品市场。不得不说,几乎我们的生活中每一个角落都随处可见到ARM的影子。另外一个研发方向便是面向操作系统的开发,该研究方向多针对于复杂并具有较高功能要求的特定应用。一般情况下,嵌入式操作系统由相应的引导程序、系统内核、文件系统、用户应用层等构成[3]。嵌入式软件系统是实现各种系统功能的关键,也是计算机技术最活跃的研究方向之一,其开发往往是针对具体的应用需求而进行的,不同需求的特定应用对嵌入式软件的要求也不同[4]。但总体上来说,在所有的应用设备中,运行速度的快慢、体积的大小、裁剪与移植是否具有较好的可行性等都是其重点考虑的技术参数。更进一步地,一些产品设备中的软件功能的实现不得不要在系统中运行操作系统。对于简单的应用系统而言,无需操作系统,但对于功能强大而复杂的应用系统,为了降低开发难度,在可靠性以及安全性等方面得以保证,就必须要运行相应的操作系统来给予支持。因此,面向操作系统的研发方向自然也成为了嵌入式领域热门方向,越来越多开发者投身于这一领域的开发中。
随着嵌入式系统被广泛应用于现今社会的的各个领域,其发展也成为了越来越多人关注的焦点,尤其是其操作系统。因此,嵌入式操作系统也得到了蓬勃的发展,各种操作系统百花齐放,Linux、VxWorks、WindowsCE等等,而当今最火热的莫过于以Linux为核心的Android操作系统。这时不可避免的一个问题来了,那就是其操作系统的加载问题,也即关于Bootloader这一方向的研究。Bootloader是在操作系统内核前执行的一个功能模块,完成底层硬件的初始化,建立内存空间映射图,加载和引导操作系统启动[5]。嵌入式系统要正常启动,Bootloader是最关键也是最基础的一部分。然而,在嵌入式的世界里,Bootloader与应用系统的操作系统、CPU、内存的大小和具体的硬件设计等都是密切相关的。因CPU体系结构、板级设备配置等的不同,系统的Bootloader也就不同,几乎不存在一个通用的Bootloader。怎样针对具体的嵌入式系统开发一款系统的Bootloader,实现系统的内核镜像加载和系统引导,就成为本课题的基本论题,在实现加载内核镜像的基础上,Bootloader还可以增加哪些扩展功能使系统开发更为方便和容易,都属于本课题研究的范畴。
目 录
摘要 I
Abstract II
目录 III
第一章 绪论 1
1.1 课题研究背景 1
1.2 主要工作 2
1.3 论文主要内容和组织结构 3
第二章 Bootloader的分析 5
2.1 Bootloader的概念 5
2.2 Bootloader的操作模式 6
2.3 Bootloader的概念扩展 6
第三章 Bootloader的设计与实现 8
3.1 Bootloader最小系统的设计与实现 8
3.1.1 系统时钟 8
3.1.2 关闭看门狗 11
3.1.3 设置栈 11
3.1.4 控制icache 13
3.1.5 跳转到第二阶段入口 13
3.2 系统外设功能设计与实现 13
3.2.1 串口通信设计与实现 13
3.2.2 LCD显示设计与实现 15
3.3 系统定制功能的设计与实现 20
3.3.1 ADC原
*好棒文|www.hbsrm.com +Q: 3_5_1_9_1_6_0_7_2
理 20
3.3.2 ADC功能设计与实现 21
3.4 系统引导 21
3.4.1常用环境变量 22
3.4.2自定义环境变量 22
3.4.3引导内核 23
第四章 实验结果与测评 24
4.1 Bootloader最小系统实现 24
4.1.1 系统时钟初始化 24
4.1.2 icache开启/关闭实验 28
4.2 系统外设实现 29
4.2.1 串口通信 29
4.2.2 LCD显示 30
4.3 ADC功能 32
4.4 系统引导 33
4.4.1 自定义环境变量 33
4.4.2 引导系统内核 33
第五章 结束与展望 34
参考文献 35
致谢 36
绪论
课题研究背景
伴随着物联网时代的到来,物物相连已然成为常态,嵌入式产品设备作为物联网中的互联终端也必然掀起一股新的革命浪潮。嵌入式系统已被越来越多的人所熟悉,智能手机、智能家居、智能交通等等设备已经是无处不在,贯穿于人们生活的方方面面,其应用领域已涉及到信息家电、智能机器、移动通信、便携式设备、自动化检测和工业控制等各行各业。嵌入式系统究竟是怎样的一种系统呢?其定义又是什么呢?它的一般性定义是:是一种专用计算机系统,它的设计是针对具体的特定应用,在可靠性、成本、功耗等方面必须严格控制。它具备一般计算机系统的架构,但其在功能上又是有所区别的[1]。嵌入式系统是集技术资金密集、持续创新等特征为一体的集成系统,是各项高新技术不断取得突破的产物,是属于时代IT界的代表技术之一[2]。
嵌入式系统是一个集软件和硬件两大部分的多模块组合体。在硬件部分,其构成通常情况下包括嵌入式处理器,外加存储器以及外设器件等;在软件部分,其通常是由RTOS、文件系统 、GUI、通用模块等构成,其中,RTOS是应用软件的基础以及开发平台。软硬件的密切配合,协调工作,最终实现具体的应用。对于嵌入式产品设备的研发生产,分为面向硬件和面向操作系统两个方向。硬件是嵌入式系统功能实现的的基础,软件能够运行的必备平台,而这当中最重要的又莫过于嵌入式处理器。自然地,在这一方向上的开发也就着眼于嵌入式处理器的开发。目前,嵌入式处理器的开发已形成以ARM公司为主导的市场体系。这都是由于ARM体系架构的处理器兼具高性能、低功耗等特点,故得到了广泛的应用,遍布此领域的各个角落。当今世界上基本上所有的各大半导体生产商都生产基于ARM体系架构的通用芯片,比如ST,Intel,Motorola,Intel,NS,Ateml,Philips,SAMSUNG 、TI等。基于ARM体系架构的通用芯片已被应用于智能卡、PDA、汽车、成像、消费电子产品等各类产品市场。不得不说,几乎我们的生活中每一个角落都随处可见到ARM的影子。另外一个研发方向便是面向操作系统的开发,该研究方向多针对于复杂并具有较高功能要求的特定应用。一般情况下,嵌入式操作系统由相应的引导程序、系统内核、文件系统、用户应用层等构成[3]。嵌入式软件系统是实现各种系统功能的关键,也是计算机技术最活跃的研究方向之一,其开发往往是针对具体的应用需求而进行的,不同需求的特定应用对嵌入式软件的要求也不同[4]。但总体上来说,在所有的应用设备中,运行速度的快慢、体积的大小、裁剪与移植是否具有较好的可行性等都是其重点考虑的技术参数。更进一步地,一些产品设备中的软件功能的实现不得不要在系统中运行操作系统。对于简单的应用系统而言,无需操作系统,但对于功能强大而复杂的应用系统,为了降低开发难度,在可靠性以及安全性等方面得以保证,就必须要运行相应的操作系统来给予支持。因此,面向操作系统的研发方向自然也成为了嵌入式领域热门方向,越来越多开发者投身于这一领域的开发中。
随着嵌入式系统被广泛应用于现今社会的的各个领域,其发展也成为了越来越多人关注的焦点,尤其是其操作系统。因此,嵌入式操作系统也得到了蓬勃的发展,各种操作系统百花齐放,Linux、VxWorks、WindowsCE等等,而当今最火热的莫过于以Linux为核心的Android操作系统。这时不可避免的一个问题来了,那就是其操作系统的加载问题,也即关于Bootloader这一方向的研究。Bootloader是在操作系统内核前执行的一个功能模块,完成底层硬件的初始化,建立内存空间映射图,加载和引导操作系统启动[5]。嵌入式系统要正常启动,Bootloader是最关键也是最基础的一部分。然而,在嵌入式的世界里,Bootloader与应用系统的操作系统、CPU、内存的大小和具体的硬件设计等都是密切相关的。因CPU体系结构、板级设备配置等的不同,系统的Bootloader也就不同,几乎不存在一个通用的Bootloader。怎样针对具体的嵌入式系统开发一款系统的Bootloader,实现系统的内核镜像加载和系统引导,就成为本课题的基本论题,在实现加载内核镜像的基础上,Bootloader还可以增加哪些扩展功能使系统开发更为方便和容易,都属于本课题研究的范畴。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/txgc/1089.html