ARM9嵌入式系统设计——基于S3C2410与Linux_P296-301

合集下载

基于S3C2410芯片的嵌入式Linux系统开发环境设计与实现说明书

基于S3C2410芯片的嵌入式Linux系统开发环境设计与实现说明书

6th International Conference on Mechatronics, Materials, Biotechnology and Environment (ICMMBE 2016) Design and Implementation of Embedded LINUX System DevelopmentEnvironment based on S3C2410 ChipXiufang Zhang1, a1 Xi'an Eurasia University, Xi'an, Shaanxi, 710065a emailKeywords:S3C2410 Chip; Embedded; LINUX System DevelopmentAbstract. With the continuous development of China's science and technology, improve people's living standards in the field of electronic information have been developed, especially for the development of S3C2410 chip embedded LINUX system, but also get a lot of attention of enterprises, the following analysis of the development environment process design, to achieve the above, hoping to promote the development of this area, to improve the level of technology in this area.IntroductionIt is no stranger to computers and networks, and their lives are closely linked, with the combination of network technology and computer technology, it is entered into the P C era. In the research and development of embedded systems become the focus of development. Here's to the embedded linux operating system, and Samsung's S3C2410 embedded processor chip, for example, detailed analysis of its design, lay the foundation for future work.Related Part of Embedded SystemsIn a computer system, the host is the main hardware platform, in addition, also constituted by a number of peripheral devices, the computer functions to be accomplished is very strong, so the processor computing speed must be fast, but is separate from the processor and other parts Designed. The embedded processor is the core component of embedded systems, the use of paper S3C2410 embedded processor chip, which not only low energy consumption, and overall performance, low price, low-cost, low-power embedded systems is very good, in addition, there is an embedded software systems.Design and Implementation of Analysis S3C2410 Chip Embedded LINUX System Development EnvironmentFor embedded systems, their systems have a cross-development environment, when established will be used to host / target mode. To facilitate understanding, the following special drawings, reference analysis. For the host, refers to a general-purpose computer system, daily use of PC machine, said here the target development board, embedded system software last program run hardware environment, the host with Ethernet interface, or a string line port [1], it can be done and the target normal communication. For embedded development, it requires the host has a good development environment, so it can perform normal editing and debugging simulation for design work on the software. On this basis, after completion of compiled code, use the Ethernet interface, or a serial port can be decoded are transferred to the target machine, then use after cross debugger, the content analysis and debugging, and finally in a particular environment next, to complete the commissioning program run. CPU used in a computer system [2], are normally developed by Intel Corporation x86 series CPU, but the software needs of embedded operating environment is different, it uses chips are usually PowerPC, DragonBall, MIPS, ARM series, is a micro-processor. In operation, in order for it can be embedded in the hardware environment compiled execution. You should first establish a cross-development environment, and then use cross-developmentenvironment, its effective links and cross-compilation.Figure 1: Embedded Linux cross-development environment Take the arm-linux-gcc example for analysis, which is a source code that can be developed in linux operating system, and then can be compiled into binary code, such code can run on ARM architecture, but also belong to a species cross-compiler. Under normal circumstances all embedded microprocessor, its corresponding embedded system, not a single corresponding to a cross-compiler. In use, you can use the familiar cross-compiler. The computer system will be the preparation of their good [3], then this embedded software after cross-linked to form a new file, which is a binary file, you will be able to run on embedded hardware environment.Among the computer system, the boot program mainly involves two aspects, first, a resource allocation procedure, which solidified in the BIOS, and on the other hand, the extent of which is a guide, in which different boot drive, the embedded in terms of systematic and scientific personnel in order to simplify the hardware architecture, the CPU is embedded not only in curing initiator hardware platforms, many of them embedded hardware platform, do not provide start the program, and therefore its development process, first programming embedded hardware platform boot program. So this level is also known as BootLoader [4]. The section of the program is actually in front of a computer system, run the short main program, run this small program, and its role is very large, the memory space map can be established, the hardware device may be initialized, and then the system hardware and software environment to a proper state, to facilitate future system kernel debugging, it is ready to run needed the right environment. For now, Bootloader used by the program are the following, for example Redhat company developed Redboot program, developed from PPCBoot the U-Boot, and Compaq developed the Bootldr etc., not one will be described. For one of the boot program, the South Korean company developed a Mizi Vivi, which Bootloader is a program that can support S3C2410 processor. In this study, we analyze the S3C2410 processor, so by supporting the boot program uses Vivi. In the application process, we need to Mizi company VIVI guide members download the source code, and then modify the Makefile, on this basis, the operator should also establish a board support package, the rational allocation of development board. After completion of the above-mentioned aspects of the operation of head.s file effectively modified, but it is noteworthy that we must distinguish Nor Falsh and Nand Flash [5], then VIVI recompile the source code allowed to meet the binaries demand, the final step is to carry out programming.For Linux kernel porting, is to determine the specific embedded target platforms, it must effectively streamline Linux, and then mounted to the target platform, on this basis, should also be able to ensure its proper operation. The basic contents include the following items, following specific elaborate. First step, get a version of the Linux kernel source. The second step, combined with the objectives set before the platform, effectively streamlining the source, the main content of the work and structure of the system is to be modified, and then add the drives designed to meet a target platform of the new operating system. After the third step operation, cross-compile target platform for this system, so that it can generate a kernel image file. The fourth step, the image files obtained as described above, in strict accordance with the requirements of programming, can be installed after the completion of the target platform, and then use. Before programming the kernel, the operating system must be streamlined to do, if there are unwanted kernel may well be removed, to avoid system space is occupied, improve the efficiency of system operation and improve system storage space. After completing the streamlining of operations, designers also need to be recompiled, this will work out a new file, the file system used to meet our compressed kernel image file zImage.In the case of the above steps are operating without problems, you can transplant the Linux kernel programming, and ensure the quality of programming.For Linux, the use of the file system organization system in which documents and equipment to provide a uniform interface to the device, and the user program. In addition, it also supports J F F S 2 .RAMDISK, C R A M F S and many other file systems, when using the system, which can YAFFS2 root file system to read and write. For the root file system, which includes a lot of content, for example, the Linux operating system, and it needs at startup directory, key files. Here's an example, if you want to start Linux, will certainly use in the init file to a directory, if the operating system to mount a different partition, then the process is running, you must use the etc / fstab directory mount the file, all of the Linux operating system involved, during the startup process, used to file or directory, the technician can call it Linux system's root file system. For YAFFS2 file system, when the system is running, which can support NAND FLASH, and JFFS there are many similarities, and its role is to design embedded file system. But the Linux operating system and JFFS compared to the reduced part of the function, the operator can be found in actual use, the operating speed of the system is faster and uses less memory.ConclusionThrough the above design and realization of S3C2410 chip embedded LINUX system development environment analysis, analysis of some of its components, to understand the function of the boot program, in addition, also on the embedded linux operating system YAFFS2 file system, Linux kernel porting method carried out a detailed analysis in this regard so that the operator has an overall understanding, reducing the threshold arm embedded development application, promote the development of this technology in the future development, with the related art enhance national attention in this regard, it must be a better development.References[1] Zhu Xiaojun, Zhang Zhibin, Liu Huipeng. realization S3C2410 chip embedded linux systemdevelopment environment based design [J]. Automation and Instrumentation, 2012 (01): 112-113.[2] Zangjin Mei, Tao Xun, Hu Yunling. Realization based S3C2410 embedded Linux developmentenvironment [J]. Chinese e-commerce, 2012 (22): 49-49.[3] Zhu Xiaojun, Zhang Zhibin, Qu Chaocheng. Based design of embedded automotive GPSpositioning system S3C2410 chip [J]. Automation and Instrumentation, 2012 (02): 64-65. [4] Guo Guangming. Design S3C2410A embedded remote video monitoring system [J]. Scienceand Technology Management Research, 2010, 30 (14): 233-235.[5] Xu Min. design S3C2410 embedded video monitoring system [J]. Computer Knowledge andTechnology, 2014 (8): 1802-1803.。

基于ARM9处理器S3C2410的LCD显示系统设计,ARM.

基于ARM9处理器S3C2410的LCD显示系统设计,ARM.

基于ARM9处理器S3C2410的LCD显示系统设计,ARM处理器,S3C2410,
TFT-LCD,显示控制
引言S3C2410是三星公司生产的基于ARM920T内核的RISC微处理器,其主频可达203MHz[1],适用于信息家电、PDA、手持设备、移动终端等领域,本文介绍了基于S3C2410的显示系统的硬件电路及驱动软件设计方法。

TFT-LCD模块的时序要求本显示模块选用的LQ080V3DG01是Sharp公司的TFT-LCD器件,该器件的分辨率为640×480,控制时序图如图1所示,时间参数如表1所列[2]。

引言
S3C2410是三星公司生产的基于ARM920T内核的RISC微处理器,其主频可达203MHz[1],适用于信息家电、PDA、手持设备、移动终端等领域,本文介绍了基于S3C2410的显示系统的硬件电路及驱动软件设计方法。

TFT-LCD模块的时序要求
本显示模块选用的LQ080V3DG01是Sharp公司的TFT-LCD器件,该器件的分辨率为640×480,控制时序图如图1所示,时间参数如表1所列[2]。

《基于ARM9的嵌入式Linux系统开发原理与实践》课件第9章

《基于ARM9的嵌入式Linux系统开发原理与实践》课件第9章

3) 路径 使用任何操作系统的用户应该都对这个概念较熟悉。打 个比方,某个文件就好像是在一个写字楼中的一间办公室内 的一把椅子,当然还有其他很多椅子也在这个办公室里。现 在要把它找出来坐在上面办公,那么只知道这个椅子是什么 样的还不行,还需要知道如何到达那里。文件名就是这把椅 子,而路径就是用来说明如何找到该椅子的。
3. MTD驱动层 为了尽可能避免针对不同的技术使用不同的工具,以及 为不同的技术提供共同的能力,Linux内核纳入了MTD子系 统(Memory Technology Device)。它提供了一致且统一的接口, 让底层的MTD芯片驱动程序无缝地与较高层接口组合在一起。 JFFS2、Cramfs,、YAFFS等文件系统都可以被安装成MTD块 设备。MTD驱动也可以为那些支持CFI接口的NOR型Flash提 供支持。
9.2.3 Linux文件系统管理 Linux文件系统管理最上层模块是根文件系统。系统启动
时,必首先装入“根”文件系统,然后根据 /etc/fstab中制订, 逐个建立文件系统。此外,用户也可以通过mount、umount 操作,随时安装和卸载文件系统。
9.2.4 虚拟文件系统(VFS) Linux支持多种文件系统,包括ext2、ext3、vfat、ntfs、
中都有文件的概念。简单的讲文件就是一组相关纪录的集合。 Linux中文件是无结构的字符流,即文件中的任两个字节是完 全独立的。具体的信息要放到相应的环境中才能理解。
2) 目录 文件多了就会发生混乱,因此目录就出现了。目录就是 存放一组文件的“夹子”,Windows中的“文件夹”就是这 个概念。目录就是一组相关文件的集合,我们通常都通过目 录来管理文件。目录和文件一样也有自己的名字。而一个目 录下面除了可以存放文件之外,还可以存放目录,称为这个 目录的子目录。这个子目录之下还可以有它自己的子目录, 依此类推从而形成一个树状目录结构。

基于S3C2410的嵌入式Linux系统构建

基于S3C2410的嵌入式Linux系统构建

基于S3C2410的嵌入式Linux系统构建
陈峰;李滨滔;戈志华
【期刊名称】《现代电子技术》
【年(卷),期】2007(30)24
【摘要】主要研究Linux在ARM芯片上的移植.首先介绍ARM微核在嵌入式系统中发展的趋势,然后在分析S3C2410体系结构的基础上给出从准备移植环境BootLoader vivi移植、Linux2.6.14移植、YAFFS2文件系统的移植,一直到根文件系统的建立的全过程.按提供的方法和技巧可以很方便地建立一个ARM Linux开发平台.
【总页数】4页(P55-57,60)
【作者】陈峰;李滨滔;戈志华
【作者单位】南昌大学,信息工程学院,江西,南昌,330031;南昌大学,信息工程学院,江西,南昌,330031;南昌大学,信息工程学院,江西,南昌,330031
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于S3C2410的嵌入式Linux开发环境的搭建 [J], 朱黎
2.基于S3c2410和嵌入式Linux的ADC驱动程序实现与应用 [J], 靳光明;杜文平
3.基于S3c2410和嵌入式Linux的ADC驱动程序实现与应用 [J], 靳光明;杜文平
4.嵌入式Linux中基于s3c2410的LCD驱动设计 [J], 李立峰
5.基于S3C2410芯片的嵌入式linux系统开发环境的设计与实现 [J], 朱小军;张志斌;刘慧鹏
因版权原因,仅展示原文概要,查看原文内容请购买。

基于ARM9S3C2410数字核心板的硬件设计

基于ARM9S3C2410数字核心板的硬件设计

毕业设计(论文)题目:基于ARM9-S3C2410数字核心板的硬件设计Title:Hardware Design of Digital Core Board Based on ARM9-S3C2410二零一零年六月摘要三星S3C2410微处理器是一个采用ARM920T内核,高性能、低功耗、低成本的16/32位RISC处理器。

基于S3C2410的最小系统核心板是一个独立模块,根据需求它可以直接与用户板模块结合进行速度、快捷、费用合理的开发利用。

本课题的主导内容是基于S3C2410的最小系统的核心板的硬件设计,测试部分用到了自行设计的简易测试用底板。

硬件部分的设计是应用Protel 99 SE软件完成的,综合了许多原理图设计思想,进行取优弃弊,结合实际应用的考虑,以功能模块思想作引导,认真核对每一个引脚及其网络连接,采用六层板,通过原理图的绘制,原理图的修改,PCB的布局布线再经过印刷、安装器件形成核心板。

该设计自主开发出的核心板,具有低功耗、小体积、低成本、高性能、稳定、低干扰、良好的可观察性的良好特点。

可以进行各种需求的教学实验及开发,为我们自己设计的一些仪器提供了良好的核心支持。

关键词:ARM9;最小系统;核心板;S3C2410ABSTRACTThe SAMSUNG's S3C2410A 16/32-bit RISC microprocessor is a product designed with cost-effective, low-power, and high-performance. The S3C2410 was developed using an ARM920T core. The core board with minimum based on the S3C2410 is a independent modules. combined directly with user board it could be given a utilization as client’s need speed, fast and reasonable-cost.The lead content of this topic is the hardware design of core board with minimum based on the S3C2410 tested with a simple user board designed by myself. Integrating many ideas, cosidering the practical application, and bringing essence together finally the core board was completed after the schematic is drew and modified, the PCB board is arranged and routed, then components fixed on the six-lamellar the software Protel 99 SE.The core board has advantages of low power consumpution, small size, low cost, high performance, stability, low interference and convenient observability.Key words:ARM9; minimum system; core board; S3C2410目录绪论 (1)嵌入式系统的发展及应用 (1)1.1.1 嵌入式系统的发展史 (1)1.1.2 嵌入式系统的发展现状及未来趋势 (1)课题的意义和内容 (3)1.2.1 研究意义 (3)1.2.2 课题内容 (3)2.基于ARM9-S3C2410的最小系统 (4)S3C210概述 (4)2.1.1 S3C210芯片简介 (4)2.1.2 引脚定义 (6)2.1.3 引脚信号描述 (7)基于ARM9-S3C2410最小系统的分析 (8)2.2.1 基于ARM9-S3C2410最小系统的需求分析 (8)2.2.2 基于ARM9-S3C2410最小系统的设计及系统测试流程 (10)3.基于ARM9-S3C2410核心板的硬件设计 (11)PROTEL 99 SE简介 (11)核心板硬件规划图 (11)核心板硬件的芯片介绍 (12)3.3.1 S3C2410简介 (12)3.3.2 电源芯片SPX1117简介 (12)3.3.3 系统存储芯片简介 (12)3.3.4 晶振芯片 (15)核心板硬件功能模块的原理图设计 (16)3.4.1 核心板硬件原理图 (16)3.4.2 电源管理部分 (18)3.4.3 系统存储部分 (19)3.4.4 总线驱动 (21)3.4.5 系统复位电路 (22)3.4.6 系统时钟部分 (23)核心板硬件的PCB图设计 (24)3.5.1 核心板的PCB图 (24)3.5.2 核心板的PCB布局 (25)3.5.3 核心板的PCB分层设计 (26)核心板硬件的设计结果 (29)核心板功能简介 (30)3.7.1 核心板引脚功能 (31)3.7.2 核心板GPIO口 (32)4.硬件测试与分析 (33)硬件测试介绍 (33)测试流程及结果分析 (35)结论与展望 (36)致谢 (37)参考文献 (38)附录1 (39)附录2 (46)附录3 (53)绪论嵌入式系统的发展及应用1.1.1 嵌入式系统的发展史嵌入式系统是将计算机硬件和软件结合起来构成的一个专门的装置,这个装置可以完成一些特定的功能和任务,能够在没有人工干预的情况下独立地进行实时监测和控制。

基于arm9s3c2410实验开发板的硬件设计【毕业论文,绝对

基于arm9s3c2410实验开发板的硬件设计【毕业论文,绝对

毕业设计(论文)题目:基于ARM9-S3C2410实验开发板的硬件设计Title:Hardware Design of ARM9-S3C2410 Experiment Board学生姓名:袁斌学号:07022110指导教师:徐哈宁专业:测控技术与仪器二零一一年六月摘要三星S3C2410微处理器是一个采用ARM920T内核,高性能、低功耗、低成本的16/32位RISC处理器。

基于S3C2410的最小系统核心板是一个独立模块,根据需求它可以直接与用户板模块结合进行速度、快捷、费用合理的开发利用。

本论文设计并实现了一种基于S3C2410处理器的实验开发板,通过这个平台可以进行中断服务、时钟控制、通信接口、AD采样、IO口等无操作系统的基础实验并可进行Linux等嵌入式系统的移植实验。

同时通过该平台也进行相关的功能扩展,以及进行所需的产品设计。

硬件部分的设计是应用Protel 99 SE软件完成的,综合了许多原理图设计思想,进行取优弃弊,结合实际应用的考虑,以功能模块思想作引导,认真核对每一个引脚及其网络连接,采用两层板,通过原理图的绘制,原理图的修改,PCB的布局布线再经过印刷、安装器件形成开发板。

该开发板在保证学生完成ARM技术学习开发的同时,考虑了系统的扩展、电路板的面积、散热、电磁兼容性,以及安装等问题。

因此,该板也可以作为嵌入式系统主板,直接应用在实际系统中。

关键词:ARM9;最小系统;开发板;S3C2410ABSTRACTS3C2410 of SAMSUNG’s 16/32-bit RISC microprocessor is a product designed with cost-effective, low-power, and high-performance. The S3C2410 was developed using an ARM920T core. The core board with minimum based on the S3C2410 is a independent modules. combined directly with user board it could be given a utilization as client’s need speed, fast and reasonable-cost.This paper designs and completes an experiments development board based on S3C2410 processor. Through this platform we can make the basis experiments without the operating system as interrupt-service, clock control, communication interface, AD sampling, IO interface experiment and so on, and we can also carry out the Linux Embedded System transplantation experiments . At the same time, it also make the expansion of related functions and carries out the necessary product design through the platform. Integrating many ideas, considering the practical application, and bringing essence together finally the development board was completed after the schematic is drew and modified, the PCB board is arranged and routed, then components fixed on the two-lamellar board. with the software Protel99 SE.On the one side this development boards ensures students to complete the study of the ARM technology exploitation, on the other side it considers the expansion of the system、the size of circuit boards、dispelling thermal、electromagnetic compatibility and installation issues etc. Therefore, this board can be used as embedded system mainboard in application of the actual system directly.Key words:ARM9; minimum system; development board; S3C2410目录绪论 (1)1.1 课题的背景、意义 (1)1.2 国内外相关领域研究进展 (2)1.3 课题内容 (2)2ARM微处理器的概述 (4)2.1 嵌入式系统简介 (4)2.1.1 嵌入式系统的定义 (4)2.1.2 嵌入式系统的组成 (4)2.1.3 嵌入式系统的特点 (5)2.1.4 嵌入式系统的发展 (6)2.2 嵌入式操作系统 (6)2.3 ARM处理器 (7)2.3.1 ARM的体系结构 (7)2.3.2 ARM微处理器的应用领域 (8)2.4 ARM92OT体系结构 (8)2.4.1 ARM92OT系统结构分析 (8)2.4.2 ARM920T的工作状态 (9)2.4.3 ARM920T体系结构的存储器格式 (9)2.4.4 ARM920T处理器模式 (10)3基于ARM9-S3C2410开发板的硬件设计 (12)3.1 PROTEL 99 SE简介 (12)3.2 系统设计概述 (12)3.3 S3C2410处理器及片外围简介 (13)3.4 单元电路设计 (15)3.4.1 电源电路 (15)3.4.2 串行接口电路设计 (15)3.4.3 IIC总线接口电路设计 (16)3.4.4 复位按键电路 (17)3.4.5 调试接口电路的设计 (18)3.5 开发板硬件原理图 (19)4. 开发板硬件的PCB板设计 (21)4.1 PCB的基本概念 (21)4.1.1 高速电路定义及高速信号确定 (21)4.1.2 传输线 (22)4.2 高速PCB信号线的布线 (23)4.2.1 高速PCB信号线的布线基本原则 (23)4.3.2 地线设计 (24)4.3 布线后信号完整性的PCB板 (24)4.4 提高该板抗电磁干扰能力的措施 (28)结论与展望 (29)致谢 (30)参考文献 (31)附录1 (32)附录2 (38)附录3 (43)绪论1.1课题的背景、意义嵌入式系统是指以应用为核心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗等方面的严格要求的专用计算机系统。

基于S3C2410X的嵌入式Linux系统的构建

基于S3C2410X的嵌入式Linux系统的构建

基于S3C2410X的嵌入式Linux系统的构建针对嵌入式系统的特点,本文较详细的给出了嵌入式linux系统的构建流程和方法。

主要分为开发环境的建立,linux的安装和编译器的制作。

bootloader、linux内核、文件系统的移植以及驱动程序编写。

标签:linux;bootloader;根文件系统;驱动程序企业对嵌入式linux工程师的需求量大,所以嵌入式linux的开发是一门热门的领域。

嵌入式linux系统的开发涉及到硬件电路的设计、操作系统的移植、驱动程序的编写、应用程序的开发等主要方面。

本文研究了基于S3C2410X的嵌入式linux系统的构建。

1 系统总体硬件设计硬件系统采用模块化的设计思想,核心部分是三星公司的S3C2410X处理器。

外围扩展有LCD液晶显示屏、UART通道、以太网、键盘、主从USB,总线接口等主要器件。

2 开发环境的建立2.1 宿主机linux的安装嵌入式linux开发需要在计算机上安装linux操作系统提供编译开发环境,通常称为宿主机。

有多种方案可行,一是直接在计算机上安装双操作系统,二是建立独立的linux服务器,三是在windows环境下安装WMware虚拟机(linux)的方式,本文采用第三种方案适合初学者。

在WMware中安装Red Hat9操作系统[1]。

2.2 构建交叉开发工具链交叉工具链俗称编译器,一是直接从相关网站下载,二是分步式构建交叉工具链,三是通过crosstool脚本工具集构建,这里采用的是crosstool-0.43版本,查看crosstool里的匹配文本,从相关网站下载工具链所需要的软件包,主要包含gcc、binutils、glibc、linux内核头文件。

所有文本无需解压直接放在相关目录里,利用vi编辑器打开demo-arm9tdmi.sh文件进行修改,修改完后运行该脚本程序,最终在宿主机的linux系统相关目录里生成gcc编译器。

基于ARM9的嵌入式系统研究及设计

基于ARM9的嵌入式系统研究及设计

基于ARM9的嵌入式系统研究及设计薛凌燕;杨吉宏;李凌云;郑志新【期刊名称】《信息技术与信息化》【年(卷),期】2009(000)003【摘要】为适应嵌入式技术在现代工业及电子等更多领域的广泛应用,通过对ARM9嵌入式微处理器芯片S3C2410的研究,设计出基于S3C2410核心板的嵌入式系统开发底板,更多的需求及功能可在其底板上进行扩展与实现.首先对ARM9嵌入式微处理器S3C2410进行介绍,然后给出了基于S3C2410核心板的嵌入式系统开发底板的设计与功能扩展,包括开发板总体设计,电源模块设计,各种通信模块设计如串口、JTAG接口、网络接口、CAN总线通信接口等.该模板的设计实现了嵌入式系统在更多更广泛领域应用的灵活性.%To adapting for the embedded technology's application widely in the modern industry, electron and so on,it is the design for the embedded system exploitation motherboard based on S3C2410 core board through the research on ARM9 embedded microprocessor S3C2410. More demand and function can extend and come true on the motherboard. Firstly, introduce ARM9 embedded microprocessor S3C2410. Then introduce the design for the embedded system exploitation motherboard based on S3C2410 core board and the function extend, including exploitation motherboards' collectivity design, power supply design, all kinds of communication module design, such as serial interface, JTAG interface, network interface, CAN bus communicationinterface and so on. The motherboard's design has realized the embedded system application's flexibility.【总页数】3页(P65-67)【作者】薛凌燕;杨吉宏;李凌云;郑志新【作者单位】聊城大学计算机学院,252059;(Missing);(Missing);(Missing)【正文语种】中文【中图分类】TP3【相关文献】1.基于ARM9的嵌入式数控系统研究 [J], 程龙;段智敏;2.基于ARM9的嵌入式数控系统研究 [J], 程龙;段智敏3.基于 ARM9的嵌入式电子稳像系统研究和实现 [J], 潘全;高山;伍先达4.基于ARM9的嵌入式数控切割控制系统研究 [J], 贾文5.基于ARM9的嵌入式虚拟存储系统研究与设计 [J], 肖儿良;毛海军;鞠军平;林蔚因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux内核的结构 操作系统内核的结构模式可分为两种:整体式的单内核模式和层次式的微内核模式。 1.单内核

单内核也叫集中式操作系统。整个系统是一个大模块,可以被分为若干逻辑模块,即处理器管理、存储器管理、设备管理和文件管理,其模块间的交互是通过直接调用其他模块中的函数实现的。 单内核模型以提高系统执行效率为设计理念,因为整个系统是一个统一的内核,所以其内部调用效率很高。单内核的缺点也正是由于其源代码是一个整体而造成的:通常各模块之间的界限并不特别清晰,模块间的调用比较随意,所以进行系统修改或升级时,往往“其一发而动全身”,导致工作量加大,使其难以维护。

2.微内核

微内核是指把操作系统结构中的内存管理、设备管理、文件系统等高级服务功能尽可能地从内核中分离出来,变成几个独立的非内核模块,而在内核中只保留少量最基本的功能,使内核变得简洁可靠。 微内核实现的基础的操作系统理论层面的逻辑功能划分。几大功能模块在理论上是相互独立的,形成比较明显的界限,其优点如下: ·充分的模块化设计,可独立更换任一模块而不会影响其他模块,从而方便第三方开发、设计模块。 ·未被使用的模块功能不必运行,因而能大幅度减少系统的内存需求。 ·具有很高的可移植性,理论上讲只需要单独对各微内核部分进行移植修改即可。由于微内核的体积通常很小,而且互不影响,因此工作量很小。 微内核的明显缺点是系统运行效率低,因为各个模块与微内核之间是通过通信机制进行交互的。 Linux内核主要由5个子系统组成:进程调度、内存管理、虚拟文件系统、网络接口和进程间通信。 进程调度控制进程对CPU的访问,采用适当的调度策略使各进程能够合理的使用CPU。内存管理(MM)允许多个进程安全的共享主内存区域。Linux的内存管理支持虚拟内存,即在计算机中运行的程序,其代码、数据和堆栈的总量可以超过实际内存的大小,操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘中。必要时,操作系统负责在磁盘和内存之间交换程序块。虚拟文件系统(Virtual File System,VFS)隐藏了各种硬件的具体细节,为所有的设备提供统一的接口,从而提供并支持与其他操作系统兼容的多种文件系统格式。网络接口(NET)提供了对各种网络标准的存取和各种网咯硬件的支持。进程间通信(IPC)支持进程间各种通信机制。 6.2.1 进程调度

进程调度控制进程对CPU的访问。采用适当的调度策略使各进程能够合理的使用CPU。一般情况下,当一个进程等待硬件操作完成时,他被挂起。当硬件操作完成时,进程恢复执行。例如,当一个进程通过网路发送一条消息时,网络接口需要挂起发送进程,直到硬件成功地完成消息的发送;当消息被成功地发送出去以后,网络接口给进城返回一个代码,表示操作的成功与失败。

1. 进程的定义

一个进程是程序的一次执行过程。程序是静态的,它是一些保存在磁盘上的可执行的代码和数据集合。进程是一个动态的概念,它是Linux系统的基本调度单位。一个进程由如下元素组成: ·程序的读取上下文,它表示程序读取执行的状态; ·程序当前执行目录; ·程序服务的文件和目录; ·程序的访问权限; ·内存和其他分配给进程的系统资源。 Linux进程中最知名的属性就是它的进程号(Process Identity Number,PID)以其父进程号(Parent Process ID,PPID)。PID、PPID都是非零正整数。一个PID唯一地标识一个进程。一个进程创建新进程称为创建了子进程(Child Process),创建子进程的进程称为父进程。所有进程追溯其祖先最终都会落到进程号为1的进程身上,这个进程叫做init进程,是内核自举后第一个启动的进程。Init进程的作用是扮演终结父进程的角色。因为init进程永远不会被终止,所以系统总是确信它的存在,并在必要时以它为参照。如果某个进程在它衍生出来的全部子进程结束之前被终止,就会出现必须以init为参照的情况。此时那些失去了父进程的子进程就都会以init作为其父进程。通过执行ps-af命令,可以列出许多父进程ID为1的进程。Linux提供了一条pstree命令,允许用户查看系统内正在运行的各个进程之间的继承关系。直接在命令行输入pstree,程序会以树状结构方式列出系统中正在运行的各进程之间的继承关系。

2. Linux进程的状态

Linux进程主要有以下几种状态。 (1)可运行状态:进程正在运行或处于就绪,只要得到CPU就可以立即投入运行的就绪态。 (2)等待状态:进程正在等待某个事件发生或等待某种资源的状态。Linux进程有两种等待状态,即可中断的等待状态和不可中断的等待状态。 (3)暂停状态:此时进程暂时停止运行,接受某种处理。 (4)僵死状态:表示进程结束但尚未消亡的一种状态。

3. Linux进程的结构

Linux中一个进程在内存中有3部分数据区,分别是数据段、堆栈段和代码段。代码段用来存放程序代码,假如机器中有数个进程运行相同的一个程序,那么它们就可以使用同一个代码段。数据段用来存放程序的全局变量、常数以及动态数据分配的数据空间。堆栈段用来存放子程序的返回地址、子程序的参数以及程序的局部变量。堆栈段包括进程控制块PCB(Process Control Block)。PCB处于进程核心堆栈的底部,不需要额外分配空间。

4. Linux进程的种类

Linux操作系统包括3种不同类型的进程,每种进程的特点和属性如下。 (1)交互进程:由一个shell启动的进程,既可以在前台运行,也可以在后台运行。 (2)批处理进程:不与特定的终端相关联,提交到等待队列中顺序执行进程。 (3)守护进程:在Linux启动时初始化,需要时运行于后台的一些服务进程。

5. Linux进程的创建

在Linux下创建进程的系统函数是fork()函数,这个函数名是“分叉”的意思。Fock 函数的语法格式为:

#include /* 提供类型pid_t的定义 */ #include /* 提供函数的定义 */ Pid_t fork();

调用fork函数之后,操作系统会复制一个与父进程完全相同的子进程。虽说是父子关系,但是在操作系统看来,它们更像兄弟关系。这两个进程共享代码空间,但是数据空间是互相独立的,子进程数据空间中的内容是父进程的完整复制,指令指针也完全相同。两者唯一不同的是:如果fork成功,子进程中fork的返回值是0,父进程中fork的返回值是子进程的进程号;如果fork不成功,父进程会返回错误。

6. Linux进程控制块task_structd的结构描述

Linux在内核空间专门开辟了一个指针数组task,用来有效地管理所有进程控制块task_struct结构的指针。Task数组大小限制了系统并执行的进程总数。task_struct结构包含的信息如下。 (1)进程当前的状态。 (2)调度信息:进程的类别、调度策略、优先级等调度属性在此保存。 (3)进程标识:进程标识号PID、组标识号GID和用户标识号UID等。 (4)进程通信信息:Linux支持多种进程通信机制,task_struct结构中存储了与进程通信有关的信息。 (5)进程的家族关系:有许多进程指针,分别指向祖先进程(初始化进程)、父进程、子进程及新、老兄弟进程的task_struct结构。 (6)时间和定时信息:用于追踪和记录进程在整个生存期内使用CPU时间。 (7)文件系统信息:保存了进程与文件系统相关的信息。 (8)存储管理信息:存储了进程虚拟内存空间信息及其物理存储有关的信息。 (9)CPU现场保留信息:CPU寄存器、堆栈等环境。 进程所有操作都要依赖task_struct结构,task_struct结构是进程实体的核心,是进程存在的唯一标志。 6.2.2 内存管理

内存管理(MM)允许多个进程安全的共享主内存区域。Linux的内存管理支持虚拟内存,即在计算机中运行的程序,其代码、数据和堆栈的总量可以超过实际内存的大小,操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘中。必要时,操作系统负责在磁盘和内存间交换程序块。使用者感觉到程序可以使用非常大的内存空间,从而在写程序时不用考虑计算机中物理内存的实际容量。 为了支持虚拟存储管理器的管理,Linux系统采用分页的方式来载入进程。所谓分页就是把实际的存储器分割为相同大小的段,例如每个段1024个字节,这样1024个字节大小的段便称为一个页面。 虚拟存储技术需要存储器管理机制及一个大容量快速硬盘存储器的支持,其实现基于局部性原理。程序在运行之前,没有必要全部装入内存,而是仅将那些当前要运行的部分页面装入内存运行,其余暂时留在硬盘上。运行程序时,如果它要访问的页已存在,则程序继续运行;如果发现不存在的页,操作系统将产生一个页错误,这个错误导致操作系统把需要运行的部分加载到内存中。必要时操作系统还可以把不需要的内存页交换到磁盘上。 标准Linux是针对有内存管理单元(MMU)的处理器设计的。在这种处理器上,虚拟地址被送到内存管理单元映射为物理地址。计算机的存储管理单元一般通过一组寄存器来标识当前运行进程的转换表。在当前进程将CPU移交给另一个进程时(一次上下文切换),内核通过指向新进程地址转换表的指针加载这些寄存器。MMU寄存器只能在内核态才能访问,这就保证了一个进程只能访问自己用户空间内的地址,而不会访问和修改其他进程的空间。当可执行文件被加载时,加载器根据缺省的ld文件,把程序加载到虚拟内存的一个空间,因此实际上很多很多程序的虚拟地址空间是相同的;但是由于转换函数不同,所以实际所处的内存区域也不同。而对于多进程管理当处理器进行进程切换并执行一个新任务时,一个重要部分就是为新任务切换任务转换表。 Linux虚拟内存的实现需要6种机制的支持:地址映射机制、内存分配回收机制、缓存和刷新机制、请求页机制、交换机制和内存共享机制。 内存管理程序通过映射机制把用户程序的逻辑地址映射到物理地址。当用户程序运行时,如果发现程序中要用的虚拟地址没有对应的物理内存,就发出请求页要求。如果有空闲的内存可供分配,就请求分配内存(于是用到了内存的分配和回收),并把正在使用的物理页记录在缓存中(使用了缓存机制)。如果没有足够的内存可供分配,那么就调用交换机制,腾出一部分内存。另外,在地址映射中要通过TLB(变换后援缓冲器)来寻找物理页,交换机制中要用到交换缓存,并且把物理页内容交换到交换文件中,也要修改页表来影射文件地址。Linux虚拟内存实现原理如图6.1所示。

内存分配和回收机制

图6.1 Linux虚拟内存实现原理 虚拟内存技术不仅让我们可以使用更多的内存,它还提供了下面这些功能: 1. 巨大的寻址空间

相关文档
最新文档