📄 rtems.c
字号:
/*** Basic RTEMS startup code*//*** Includes*/#include <rtems.h>#include <bsp.h>#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <errno.h>#include <rtems/rtems_bsdnet.h>#include "common_types.h"#include "osapi.h"/*** Prototypes*/rtems_task Init( rtems_task_argument ignored );extern void OS_Application_Startup(void);/*** RTEMS OS Configuration defintions*/#define TASK_INTLEVEL 0#define CONFIGURE_INIT#define CONFIGURE_INIT_TASK_ATTRIBUTES (RTEMS_FLOATING_POINT | RTEMS_PREEMPT | RTEMS_NO_TIMESLICE | RTEMS_ASR | RTEMS_INTERRUPT_LEVEL(TASK_INTLEVEL))#define CONFIGURE_MAXIMUM_TASKS 25 #define CONFIGURE_MAXIMUM_TIMERS 3#define CONFIGURE_MAXIMUM_SEMAPHORES 15 #define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 30#define CONFIGURE_MAXIMUM_POSIX_THREADS CONFIGURE_MAXIMUM_TASKS#define CONFIGURE_MAXIMUM_POSIX_TIMERS CONFIGURE_MAXIMUM_TIMERS#define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES CONFIGURE_MAXIMUM_SEMAPHORES#define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES CONFIGURE_MAXIMUM_MESSAGE_QUEUES#define CONFIGURE_MAXIMUM_POSIX_MUTEXES 15 #define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 15 #define CONFIGURE_MAXIMUM_POSIX_KEYS 15 #define CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS 10#define CONFIGURE_RTEMS_INIT_TASKS_TABLE#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 100#define CONFIGURE_MICROSECONDS_PER_TICK 10000/*** This include file must be AFTER the ** configuration data.*/#include <confdefs.h>/*** Global data*/struct rtems_bsdnet_config rtems_bsdnet_config;/*** Definitions & Prototypes*/extern rtems_configuration_table BSP_Configuration;extern unsigned32 _end;/*** Function: Init** Purpose: RTEMS Entry Point*/ rtems_task Init( rtems_task_argument ignored ){ printf("\n\n"); printf( "\n\n*** RTEMS Info ***\n" ); printf("%s", _Copyright_Notice ); printf("%s\n\n", _RTEMS_version ); printf(" Workspace base %08X\n", (unsigned32)BSP_Configuration.work_space_start ); printf(" Workspace size %d\n", BSP_Configuration.work_space_size ); printf(" Workspace top %08X\n", (unsigned32)BSP_Configuration.work_space_start + BSP_Configuration.work_space_size ); printf("\n"); printf( "*** End RTEMS info ***\n\n" ); /* rtems_create_root_fs();*/ /* ** Run the example */ OS_Application_Startup(); /* ** End the RTEMS init thread */}uint32 OS_BSPInstallVectorHandler(uint32 vector, void (*function_pointer)(uint32, uint32 *, uint32)){ /* ** This function is blank for now. ** It is functional in our latest flight BSP. */ return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -