RTEMS v Real Time Executive for Multiprocessor Systems

  • Slides: 42
Download presentation

RTEMS概述 v 实时多处理器系统 Real Time Executive for Multiprocessor Systems v 开源的无版税的实时嵌入操作系统 v 最早用于美国国防系统 first=实时导弹系统

RTEMS概述 v 实时多处理器系统 Real Time Executive for Multiprocessor Systems v 开源的无版税的实时嵌入操作系统 v 最早用于美国国防系统 first=实时导弹系统 =Real Time Executive for Missile Systems then=实时军用系统 =Real Time Executive for Military Systems, v 现在由OAR公司负责版本的升级与维护。 v 在航空航天、军 、民用等领域都有广泛应用。 4

LIB v Libbsp libbsp. a BSP基本驱动 BSP基本功能 基本C库 v Libcpu CPU库,CPU相关操作,但与board无关 v Libmisc 一些

LIB v Libbsp libbsp. a BSP基本驱动 BSP基本功能 基本C库 v Libcpu CPU库,CPU相关操作,但与board无关 v Libmisc 一些 具 v Libnetworking 网络 启动支持,i 386和ppc都不在这 v Start 8

SCORE中的模块及其依赖关系 v Src: 15个主要的handler Ø API扩展、user扩展、Workspace、heap、Object、Thread、 threadq、Watchdog、tod、Msg、sem、mutex、Isr、interr、 chain Ø 一些辅助handler: address、sysstate、context、priority等 Ø Mp相关 v

SCORE中的模块及其依赖关系 v Src: 15个主要的handler Ø API扩展、user扩展、Workspace、heap、Object、Thread、 threadq、Watchdog、tod、Msg、sem、mutex、Isr、interr、 chain Ø 一些辅助handler: address、sysstate、context、priority等 Ø Mp相关 v Cpu:提供CPU相关的一些支持 9

RTEMS v Task v INTR v Partition,Region v Dpmem v Clock,Timer v Ratemon v

RTEMS v Task v INTR v Partition,Region v Dpmem v Clock,Timer v Ratemon v Signal,Event,Msg. Q,Sem 26

SAPI v INIT v Debug v Extension v Fatal v Io 27

SAPI v INIT v Debug v Extension v Fatal v Io 27

Libcsupport & newlib v Malloc v _REENT v IO 30

Libcsupport & newlib v Malloc v _REENT v IO 30

RTEMS-4. 0. 0的启动 v 上电?? v BSP:start 16. s v BSP:Start. s v BSP:Main.

RTEMS-4. 0. 0的启动 v 上电?? v BSP:start 16. s v BSP:Start. s v BSP:Main. c v RTEMS:INIT v …… 31

Main. c:boot_card 1. 2. 3. 4. 5. 缺省初始化Cpu_table 复制配置表 调用bsp_start 调用rtems_initialize_executive_early 调用main (一旦从main退出执行到这里,就说明系统运行结束) 6.

Main. c:boot_card 1. 2. 3. 4. 5. 缺省初始化Cpu_table 复制配置表 调用bsp_start 调用rtems_initialize_executive_early 调用main (一旦从main退出执行到这里,就说明系统运行结束) 6. 调用bsp_cleanup 33

Hello任务的运行 v 观察hello中init. c、Makefile. in以及system. h Ø 涉及pc 386. cfg等文件;confdef. h v RTEMS应用的启动程序,名为init v

Hello任务的运行 v 观察hello中init. c、Makefile. in以及system. h Ø 涉及pc 386. cfg等文件;confdef. h v RTEMS应用的启动程序,名为init v 通过配置表的方式传递给RTEMS的初始化管理器 v rtems_initialization_tasks_table Initialization_tasks[] ={{…, init, …}} v rtems_api_configuration_table Configuration_RTEMS_API = {…, Initialization_tasks} v rtems_configuration_table Configuration ={…} 38

v 在初始化第一阶段 Ø 调用_RTEMS_API_Initialize初始化API相关内容 l 调用_RTEMS_tasks_Manager_initialization初始化任务管理器 § 添加API扩展_RTEMS_tasks_API_extensions 包含_RTEMS_tasks_Initialize_user_tasks 作为postdriver Ø _API_extensions_Run_postdriver中被调用 39

v 在初始化第一阶段 Ø 调用_RTEMS_API_Initialize初始化API相关内容 l 调用_RTEMS_tasks_Manager_initialization初始化任务管理器 § 添加API扩展_RTEMS_tasks_API_extensions 包含_RTEMS_tasks_Initialize_user_tasks 作为postdriver Ø _API_extensions_Run_postdriver中被调用 39

Thanks! The end.

Thanks! The end.