姓名:陈方园 学号:19020100239 学院:电子工程学院
转自:
https://max.book118.com/html/2021/0122/6011000144003053.shtm
【嵌牛导读】嵌入式一般指嵌入式系统。嵌入式系统由硬件和软件组成。是能够独立进行运作的器件。Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
【嵌牛鼻子】典型嵌入式系统框架、典型嵌入式Linux开发环境
【嵌牛提问】典型嵌入式Linux系统开发前需要准备些什么?
【嵌牛正文】
图2-1是一个典型嵌入式系统的框图。这个例子很简单,描述了一个系统的高层硬件架构,无线接入点设备可能就是采用这种硬件构架。这个系统架构以一个32位的RISC处理器为中心,系统中的闪存用于存储非易失性程序和数据,主存储器是SDRAM(同步动态随机存储器),其容量可以从几兆至几百兆字节,视应用而定。一个通常由电池供电的实时时钟模块记录着当前时间(包括日期)。这个例子里面包含以太网和USB接口,也包含串行端口,利用串行端口可基于RS-232标准访问控制台。802.11芯片组或模块实现了无线调制解调器的功能。
通常,嵌入式系统的处理器完成很多功能,不仅仅是处理传统的核心指令流。图2-1中的假想处理器包含集成的串行接口UART、集成的USB和以太网控制器。很多处理器都包含集成在处理器中的外设,有时这些处理器被称为片上系统(SOC,System On Chip)。第3章会考察几个集成处理器的例子。
2.2.1 典型的嵌入式Linux开发环境
嵌入式Linux开发新手经常提出的一个问题,就是开发之前需要准备些什么。为了回答这个问题,图2-2展示了一个典型的嵌入式Linux开发环境。
图中展示了一个主机开发系统,其中运行你最喜欢的桌面Linux发行版,比如Red Hat、SUSE或Ubuntu Linux。嵌入式Linux目标板通过一根RS-232串行端口线与开发主机相连。目标板的以太网接口插接到本地以太网集线器或交换机上,开发主机也通过以太网连接到上面。开发主机包含开发工具和程序以及目标文件,通常这些都可从一个嵌入式Linux发行版中获得。
在这个例子中,主机和嵌入式Linux目标板主要通过一个遵循RS-232标准的串行端口连接。主机上运行的串行端口终端程序用于和目标板通信。minicom是最常用的串行端口通信应用程序之一,几乎所有的桌面Linux发行版中都有这个应用程序[2]。本书使用screen作为串行端口通信程序,这个程序可以取代minicom的功能,而且更灵活,特别是在trace捕捉方面。对于系统启动或解决故障时串行端口线上的垃圾信息,screen也更加宽容。为了在USB转串行端口线上使用screen,可以在主机终端调用它并指定速率:
2.2.2 启动目标板
第一次加电时,目标板上的引导加载程序立即获得处理器的控制权。该程序执行一些非常底层的硬件初始化,包括处理器和内存的设置,初始化UART用于控制串行端口,以及初始化以太网控制器。代码清单2-1显示了目标板加电后从串行端口接收到的字符。在这个例子中,我们选择了飞思卡尔半导体公司的目标板PowerQUICC III MPC8548 可配置开发系统(Configurable Development System,CDS)。这个开发系统包含了PowerQUICC III MPC8548处理器。这个目标板从飞思卡尔出厂时就预装了U-Boot引导加载程序。
代码清单2-1 引导加载程序从串行端口输出的初始信息
当MPC8548CDS目标板加电时,U-Boot执行一些底层的硬件初始化,包括配置串行端口,然后打印标题行,见代码清单2-1中显示的第一行。接着显示了CPU和核心(Core)的型号及版本,接下来是描述时钟配置和缓存配置的数据,再后面是一串文字描述了这个目标板。
初始的硬件配置完成后,U-Boot根据其静态设置来配置其他硬件子系统。这里,我们看到U-Boot配置了I2C、DRAM、闪存(FLASH)、2级缓存(L2 cache)、PCI和网络子系统。最后U-Boot等待来自串行端口控制台的输入,显示为命令行提示符“=>”。