浅谈嵌入式系统结构和嵌入式Linux

浅谈嵌入式系统结构和嵌入式Linux

76c7021969410a74fadeaff08ef3284f.png

\\\插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的(禾厶-亻言-手戈)。最近比较闲,带做毕设,带学生参加省级以上比赛///绿色图标【‟で】liutianwang123

16efd3cf375f2c879dcefa13c85b4c8f.png

993e4d3c8c2bed50222d8505bb9df0ae.png

目录

一.嵌入式体系结构

二.开发过程中的分工

三.嵌入式软件体系结构

四.嵌入式Linux

扫描二维码关注公众号,回复: 14170251 查看本文章

一.嵌入式体系结构

<嵌入式系统设计师教程>这本书的前三章脉络很清晰,按照嵌入式系统结构从下往上,从底层的硬件,电路,到上层的系统,应用,逐层展开介绍.书的后三章是在掌握好前面的基础后,对于应用开发,软件工程等宏观上的指导.我根据前三章的结构画出了图1.1的嵌入式系统结构图,系统分层结构一目了然.第三层多出来的Linux和四大块,后面再介绍.

89b6fdf45b48ef5e2458182a550137b3.png

图1.1

二.开发过程中的分工

部门里每个产品的基本开发都需要硬件组, DSP&BSP组,应用开发组的协作完成.

基础知识这块距离嵌入式开发越来越遥远了,各大IC厂商为嵌入式产品开发商提供了完善的芯片和手册,批量购买就行了哈哈.

硬件组的工作属于第二层,第二层里还有我没有标识出的电源技术, "画板子"技术.涉及到硬件,比如喇叭,麦克风,电源,芯片选型,系统总线接口设计,网口,蓝牙,画PCB,制作PCB...自然也涉及到成本,硬件研发周期等问题.

DSP&BSP组的工作属于第三层,在不同平台,也就是不同处理器架构的板子上移植BootLoader->操作系统->设备驱动->文件管理系统,协助硬件调通板子上电能跑,再交给应用层做开发.

应用开发组就是"站在巨人的肩膀上"敲代码了.向下要了解操作系统基本知识,向上要把握客户的迫切需求,还要夜以继日的提高开发技能.也希望这一层是"入门不易,前途无量"吧.

三.嵌入式软件体系结构

软件体系结构在<嵌入式系统设计师教程>里有图示,即图3.1.我觉着部门里BSP&DSP组的人是在跨层工作,因为红框里的这些移植都是由他们实现的.

df0d5215371c478cd7c105bd67b7cefd.png

图3.1

3.1设备驱动层

设备驱动层又叫板级支持包,即Board Support Package, BSP.包含了嵌入式系统中所有与硬件有关的代码. BSP的根本思想是把嵌入式操作系统与详细的硬件平台隔离开来,并向上层提供一个虚拟的硬件平台,操作系统就运行在这组虚拟平台上. OS使用一组定义好的编程接口与BSP交互,通过BSP访问真正的硬件. BSP主要实现以下两种功能:

1.引导BootLoader

BootLoader是嵌入式系统上电后运行的第一段软件代码.在一个基于ARM*内核的嵌入式系统中,?系统上电或复位一般都是从地址x00000000初始执行,这个地址通常放置的就是BootLoader.

?片级初始化,包括微处理器核心寄存器和控制寄存器,微处理器核心工作模式,局部总线模式;

?板级初始化,正确设置各种寄存器内容如初始化定时器,设置中断控制寄存器,初始化串口通信,建设内存空间的地址映射;

?加载内核,将操作系统和应用程序从Flash存储器复制到系统内存中,跳转到系统内核的第一条指令处.

2.引导设备驱动

设备驱动就是一组库函数,对硬件进行初始化和管理,向上层提供访问接口.设备驱动的根本功能:

?硬件启动:在开机上电或系统重启时,对硬件初始化

?硬件关闭:将硬件设置为关机

?读:从硬件中读取数据

?写:往硬件中写入数据

3.2.嵌入式中间件

在操作系统内核,设备驱动程序,应用软件之外的所有系统软件.如Sun公司的嵌入式Java, Google的Android.

3.3. BootLoader之uBoot

系统上电后,须要一段小程序来初始化,包括:关闭看门狗,变更系统时钟,初始化存储控制器,将更多的代码复制到内存中等等.假如它能将操作系统内核从Flash/远端网络传输复制到内存,就称这段小程序为BootLoader.

假如BSP组提供的Bootloader,在以上根本功能之外,还提供给广大应用开发人员增强的BootLoader功能,包括通过串口, ftp传输,下载,烧录文件,将Flash上的压缩文件解压后再运行等等.增强版的功能用户并不须要,它们都是为了方便广大应用开发人员,打动crying.

3.4 BootLoader的两种工作模式

1.启动加载模式

上电后, BootLoader从板子的固态存储设备上将OS加载到RAM,整个过程没用户介入,产品发布时采用此模式.

2.下载模式

开发人员能够使用各种命令,通过串口或网络连接等通信伎俩从主机下载文件,假如内核映像,文件系统映像等,将它们放入内存运行或烧入Flash类固态存储设备中.

从主机传输文件,能够采用串口xmodem/ymodem/zmodem协议,简略而且慢;还能够使用网络通过ftp, nfs传输,主机须要开启ftp, nfs效劳.

U-Boot是功能强大的BootLoader,通常支持两种工作模式,而且允许用户在两种模式间切换.假如, U-Boot启动时处于正常的启动加载模式,但会延时若干秒,等待终端用户按下某键而将U-Boot切换到下载模式. ITE启动时就是这样,开启后立刻回车,就会进入下载模式,在这个模式下能够进行参数配置和ftp系统升级.

四.嵌入式Linux

作为软件体系构造的主流构造,嵌入式Linux体系应用广泛,日后我也是靠它吃饭了.关于嵌入式Linux最常听到的四大块就是: BootLoader,内核,驱动,根文件系统.其实也就是Linux内核+"嵌入式周边"=嵌入式Linux的关系.四大块物理位置处于第二层中的不同存储体系中:

?内存: BootLoader

?(ROM)Flash: Linux内核

?外存:驱动程序

猜你喜欢

转载自blog.csdn.net/danpianji777/article/details/124933543