您的位置 首页 主动

嵌入式实时操作系统Nucleus PLUS在S3C2410A上移植

嵌入式实时操作系统Nucleus PLUS在S3C2410A上移植的实现,引言Nucleus PLUS是美国ATI 公司为实时性要求较高的嵌入式系统应用设计的操作系统内核。约95%的Nucleus P

导言

Nucleus PLUS是美国ATI 公司为实时性要求较高的嵌入式体系运用规划的操作体系内核。约95%的Nucleus PLUS代码用ANSI C言语编写,因而,十分便于移植并能够支撑大多数类型的微处理器,如X86、68K、PowerPC、MIPS、ARM等。通过截减编译后,Nucleus PLUS 中心代码区一般不超越20KB巨细。 一起供给TCP/IP网络、图形界面Grafix、文件体系File等模块。还有一个特色便是免费供给源代码,有利于节约开发费用。

S3C2410A是三星公司推出的依据ARM920T内核高性能低功耗16/32位RISC微操控器,内部集成了丰厚的体系外围操控器。合作Nucleus PLUS操作体系可方便地开宣布适于手持设备和各种低功耗产品的运用程序,加速新产品的上市时刻。

Nucleus PLUS发动进程

嵌入式实时操作体系内核Nucleus PLUS的发动进程如图1所示。其间板级初始化(INT_Initialize)主要是完结中止向量表、体系仓库、时钟中止等根本硬件初始化;操作体系初始化(INC_Initialize)主要是完结邮箱、行列、管道、信号量、事情集等软件组件初始化;运用程序初始化 (Application_Initialize (first_available_memory))主要是完结用户界说的运用程序初始化,如创立内存池,创立使命、创立信号量、创立中止、编写用户运用程序等。移植的进程中,需求修正的是板级初始化(INT_Initialize)这部分内容,它是由ARM汇编言语编写的,下面具体叙说。

图1 Nucleus PLUS 发动进程

Nucleus PLUS移植进程

INT-Reset子程序修正

INT_Reset 是Nucleus PLUS发动时的程序进口,由于依据ARM微处理器的体系结构,在体系硬件上电或复位后,ARM所履行的第一条指令在地址0x00000000,即ARM 的复位反常(Reset)向量地址,所以在这个地址要放置一个跳转指令:B INT_Reset 。

在INT_Reset这个子程序中放置的是硬件初始化程序,完结两个功用:

1. 改动ARM作业形式为办理形式(Supervisor Mode),办理形式是ARM供给给操作体系运用的一种保护形式;

2. 屏蔽FIQ和IRQ中止,由于在整个体系初始化的进程中,不能被中止打断,只要在中止服务子程序初始化完毕后,才能够翻开中止,从而呼应中止。

INT_Reset

MRS R1,CPSR

B%&&&&&% R1,R1,#MODE_MASK

ORR R1,R1,#SUP_MODE

ORR R1,R1,#LOCKOUT

MSR CPSR_cxsf,R1

树立反常向量表和中止向量表

依据ARM的体系结构,ARM有7种类型的反常(Exception),每种反常都有各自进口地址,即反常向量表(Exception Vectors)。反常向量表放置在从0X00000000地址开端,接连32字节的空间内。S3C2410A共有56个中止源,但有些中止源共用一个中止向量,所以只要求创立包括32个中止源的中止向量表。

INT_Vectors

LDR PC, INT_Reset_Addr

LDR PC, INT_Undef_Addr

LDR PC, INT_Software_Addr

LDR PC, INT_Prefetch_Addr

LDR PC, INT_Data_Addr

LDR PC, INT_Reserved_Addr

LDR PC, INT_IRQ_Addr

LDR PC, INT_FIQ_Addr

装备存储器操控器和MMU

MMU(Memory Manage Unit)是存储器办理单元的缩写,用来完成虚拟地址到实践物理地址的映射。它是ARM的一部分,自身有少数存储空间放置从虚拟地址到物理地址的匹配表,即转化旁置缓冲区 (TLBs-Translation Lookaside Buffers)。MMU完成两个主要功用,将虚拟地址转化成物理地址和操控存储器的存取使能。

通过装备S3C2410A的存储器操控器来初始化S3C2410A方针板的外围存储器。主要是设置存储器类型、总线宽度、信息,重点是对SDRAM进行设置,如列地址数、信号线时序等。

仓库初始化

C 和ARM汇编源文件通过ARM开发环境ADS1.2编译链接后,生成的映像(Image)文件包括RO(只读代码、数据段)、RW(可读写数据段)和 ZI(即将初始化为0的段)三个输出段。当映像文件加载到flash中的时,RO段和RW段在Flash中的方位见图2(a),其间

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/324455.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部