欢迎来到天天文库
浏览记录
ID:37840841
大小:329.00 KB
页数:24页
时间:2019-06-01
《2410中断分析--------------》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2410中断分析本文基于S3C2410开发板源代码和datasheet,分析了2410的中断机制,包括原理、初始化、中断处理过程和中断程序设计,希望能够对初学者有所帮助,若有错误,还请指出,非常感谢。yeahnix@yahoo.com.cn目录2410中断分析1一、BOOTLOADER2二、内核3三、2410中断分析51.硬件机制52.对应于硬件机制的软件中断处理7四、中断处理过程121.全局数据结构:122.汇编部分133.通用处理过程15五、中断初始化17六、驱动设计21一、BOOTLOADER摘自《基于ARM嵌入式系统的通用bootloader的
2、设计与实现》简单地说,bootloader就是在操作系统内核运行前运行地一段小程序。通过这段小程序,我们可以初始化必要的硬件设备,创建内核需要的一些信息并将这些信息通过相关机制传递给内核,从而将系统的软硬件环境带到一个合适的状态,最终调用操作系统内核,真正起到引导和加载内核的作用。bootloader是依赖于硬件而实现的,特别是在嵌入式系统中。不同的体系结构需求的bootloader是不同的;除了体系结构,bootloader还依赖于具体的嵌入式板级设备的配置。也就是说,对于两块不同的嵌入式板而言,即使它们基于相同的CPU构建,运行在其中一块电路板上的
3、bootloader,未必能够运行在另一块电路开发板上。对于一个ARM系统来说,本质上,bootloader作为引导与加载内核镜像的“工具”,在实现上,必须提供以下几个功能,更确切地说,必须做到以下几点[1](DOCARMBOOTING):(1)初始化RAM(必需):bootloader必须能够初始化RAM,因为将来系统要通过它保存一些Volatile数据,但具体地实现要依赖与具体的CPU以及硬件系统。(2)初始化串口(可选,推荐):bootloader应该要初始化以及使能至少一个串口,通过它与控制台联系进行一些debug的工作;甚至与PC通信。(
4、3)创建内核参数列表(针对linux操作系统,推荐)。(4)启动内核镜像(必需):根据内核镜像保存的存储介质不同,可以有两种启动方式:FALSH启动以及RAM启动;但是无论是哪种启动方式,下面的系统状态必须得到满足:lCPU寄存器的设置:R0=0;R1=机器类型;R2=启动参数标记列表在RAM中的起始地址;这三个寄存器的设置是在最后启动内核时通过启动参数来传递完成的。linux/arch/arm/kernel/head-armv.S/**Kernelstartupentrypoint.*Therulesare:*r0-shouldbe0*r1-uniq
5、uearchitecturenumber*MMU-off*I-cache-onoroff*D-cache-off*Seelinux/arch/arm/tools/mach-typesforthecompletelistofnumbers*forr1.*/Bootloader启动内核镜像的方法是通过跳转语句直接跳转至内核镜像的第一句指令语句。一、内核Documentation/Arm/readmeMachine/PlatformsupportTheARMtreecontainssupportforalotofdifferentmachinetypes.T
6、ocontinuesupportingthesedifferences,ithasbecomenecessarytosplitmachine-specificpartsbydirectory.Forthis,themachinecategoryisusedtoselectwhichdirectoriesandfilesgetincluded(wewilluse$(MACHINE)torefertothecategory)Tothisend,wenowhavearch/arm/mach-$(MACHINE)directorieswhicharedesig
7、nedtohousethenon-driverfilesforaparticularmachine(eg,PCI,memorymanagement,architecturedefinitionsetc).Forallfuturemachines,thereshouldbeacorrespondinginclude/asm-arm/arch-$(MACHINE)directory.即除了标准的arm通用处理(kernel、mm,支持不同的体系结构,arm7、9等),还用MACHINE(机器类型)来代表不同的板子和体系结构,在mach-$(MACHINE)
8、中仅包含非driver的特定机器内容。Kernelentry(head-armv.S)Thei
此文档下载收益归作者所有