\r
-GOAL:\r
- Implement Autosar OS scalability Class 1\r
-\r
-Limitations:\r
- Only extended error checking is used (Scalbility class 3 and 4)\r
-\r
-Ongoing:\r
- - Autostart of tasks does not work\r
- -\r
-\r
-Bugs:\r
-- OsIsrResourceRef ?\r
-\r
-APIs for the OS:\r
-Os.h - External API for OS\r
-internal.h - Internal Kernel ONLY.\r
-kernel.h - Types shared between kernel and config\r
-\r
-Do we really want to have Os_Cfg.h when compiling the kernel?\r
- os_config_macros.h\r
- os_config_funcs.h\r
-\r
-Add file: os_config_if.h (used only by the kernel)\r
- extern int Oil_GetResourceCnt();\r
- OsCfg_GetResourceCnt()\r
-\r
-internal.h\r
- OsStack_IsEndMarkOk()\r
-\r
-kernel.h\r
- types that are not in it's own header file.\r
-\r
-\r
-=========== OLD ===========\r
-\r
-\r
-Urgent:\r
-Problems with paths and stuff:\r
- - New project\r
- - File->New->C Project->Makefile Project->Empty project\r
- - Do NOT select any toolchain.\r
- - SELECT the project location where the project is and name it.\r
-- Project->Properties\r
- - Add to environment\r
- CROSS_COMPILE:\r
- /cygdrive/c/devtools/gcc/4.1.2/powerpc-eabispe/bin/powerpc-eabispe-\r
- PATH\r
- c:\cygwin\bin\r
- BDIR\r
- system/kernel\r
-\r
-MAC specific:\r
- CROSS_COMPILE=/opt/powerpc-eabi/bin/powerpc-eabi-\r
-\r
-\r
-\r
-Known problems:\r
-- Problems clicking on cygwin paths. Hmm can change rules to something like: $(subst /cygdrive/c/,c:/,$<)\r
-- I thought this worked before....\r
-\r
-\r
-Next thing todo\r
- - resource\r
- - trusted functions\r
- COMPLETE IT!!!!\r
- ( The os is trusted and have their own indexes.. "OSServiceID_...." )\r
-\r
- - ISR 2 !!!\r
- - trusted functions\r
- COMPLETE IT!!!!\r
- - protection hook\r
- - Stack check( for LC context )\r
- - Seperate the ROM setup for pcb etc. in Oil_Config.c\r
- ( must have rom_pcb_t ?? )\r
- ( Remove pcb.h from Oil_config.c/.h )\r
- - Lots and lots of critical sections out there. PROTECT THEM!!!\r
- - DeclareResource() declares ok, DeclareTask() does not.. remove lists??\r
-\r
- Conformance classes:\r
- - For OSEK, ECC2 ( See chap. 3.2 in OSEK spec )\r
- - For Autosar( Scalability class, chap. 7.8 Autosar SWS OS )\r
- Class 3-4 would be best....\r
-\r
- Maybe:\r
- - Change type from xxx_t to xxxType as Autosar ???\r
- ( remove own types.. )\r
-\r
- DONE!\r
- - TRAP_PROGRAM() defines in cpu.h ongoing...\r
- - dbg printf.. so that we can use the T32 'term' window...\r
- - Implement the trap interface, see k_arch_..IVOR6 for more info.\r
- - Hooks\r
- - Stack check for SC context\r
- - basic tasks...ActivateTask, TerminateTask, ChainTask, Schedule\r
-\r
-What it can do:\r
- - SetEvent, WaitEvent, ClearEvent seems to work\r
- - the decrementer interrupt also seems to work ok.\r
-\r
-Repository:\r
- //balder/svn_tree/autosar\r
-\r
-Preparations:\r
- * You must have the path to cygwin stuff in path\r
- * You must install GCC at C:\devtools\gcc, version 4.1.2 is assumed\r
- ( you can of course change this in the makefiles )\r
-\r
-Building:\r
- From cygwin prompt\r
- Test system\r
- >make BDIR=kernel,kernel/test ARCH=ppc55xx all\r
-\r
- Example, simple\r
- >make BDIR=kernel,examples/simple ARCH=ppc55xx all\r
-\r
- Installing\r
- >make BDIR=kernel,examples/simple ARCH=ppc55xx all install\r
-\r
-\r
-Software used:\r
- T32\r
- T32 instruction simulator, www.lauterbach.com -> demo download(right menu) ->\r
- press "download" on second row of text -> save "Simulator for PowerPC"\r
-\r
- or find the one I used on //breidablick/Our Software/T32_simppc_20070322.zip\r
-\r
- Eclipse\r
- Platform 3.2.0\r
- CDT 4.0.0 M6\r
-\r
-Debugging:\r
- 1. when debugger started\r
- 2. >cd <where you have checked out the project>\r
- 3. >cd scripts\r
- 4. >do start\r
-[5.] >do lay // for some windows.. that are good.\r
-\r
-File structure:\r
--------------------------------------------------------\r
-kernel/ext_config.h\r
- Declaration of functions and variables in from config( Oil_Config.c )\r
-\r
-include/Common_Cfg.h\r
- Shared types between config and os.\r
- ( generated later ?? )\r
-\r
-Oil_Config.c\r
- Generated by OIL tool. Compiled by user\r
-\r
-Oil_Config.h\r
- Generated by OIL tool. Included by user.\r
-\r
-\r
-Service\r
--------------------------------------------------------\r
-ActivateTask 80\r
-TerminateTask 80\r
-ChainTask 80\r
-Schedule 80\r
-GetTaskID 100\r
-GetTaskState 80\r
-DisableAllInterrupts 100\r
-EnableAllInterrupts 100\r
-SuspendAllInterrupts 20\r
-ResumeAllInterrupts 20\r
-SuspendOSInterrupts 20\r
-ResumeOSInterrupts 20\r
-GetResource 100\r
-ReleaseResource 50\r
-SetEvent 100\r
-ClearEvent 100\r
-GetEvent 100\r
-WaitEvent 100\r
-GetAlarmBase 80\r
-GetAlarm 80\r
-SetRelAlarm 100\r
-SetAbsAlarm 0\r
-CancelAlarm 100\r
-GetActiveApplicationMode 0\r
-StartOS 50\r
-ShutdownOS 50\r
-GetApplicationID 0\r
-GetISRID 0\r
-CallTrustedFunction 50\r
-CheckISRMemoryAccess 0\r
-CheckTaskMemoryAccess 0\r
-CheckObjectAccess 0\r
-CheckObjectOwnership 0\r
-StartScheduleTableRel 50\r
-StartScheduleTableAbs 0\r
-StopScheduleTable 0\r
-NextScheduleTable 0\r
-SyncScheduleTable 0\r
-GetScheduleTableStatus 0\r
-SetScheduleTableAsync 0\r
-IncrementCounter 100\r
-TerminateApplication 0\r
-DisableInterruptSource 0\r
-EnableInterruptSource 0\r
-\r
-\r
-\r
-Kod:\r
-------------------------------------------------\r
-Adding a new architecture and board:\r
-1. Add the configuration for the board in the top makefile. See the XXXX_config rules\r
-2. Add the new board directory under /boards\r
-3. Create the config.h file\r
-4. If it's a new architecture create the directory under /arch.\r
- If it's an variant to an existing one. #ifdef'ing the code should be enough\r
-\r
-\r
-See if it works:\r
-1. > make XXX_config\r
-2. Check that a valid "boards/<board_dir>/config.mk" was created\r
-\r
-\r
-Vilken core:\r
-CFG_E200Z?\r
-\r
-Vilken CPU:\r
-CFG_MPC5567\r
-\r
-Vilken board:\r
-CFG_BRD_MPC5567??\r
-\r
-\r
-* Om man ska anv\8anda SPE'n s\8c m\8cste man l\8agga till CFG_MPC5567 till asm_book_e.h\r
- (detta f\9aruts\8atter att man ocks\8c anv\8ander spe varianten av kompilatorn (powerpc-eabispe- ist\8allet f\9ar powerpc-eabi-))\r
-* Har s\8akert en MMU s\8c ni m\8cste s\8atta upp den med.\r
- L\8agg denna under /arch/ppc/mm/blaj.c d\8c den s\8akert kommer att g\8c att anv\8anda till andra\r
- powerpc arch's. Header filerna l\8agger ni under /include/ppc\r
-\r
-CM:\r
-------------------------------------------------\r
-* Skapa en branch under aos-crew repot. Typ: mpc5567\r
- (jag fyller aos-crew repot under kv\8allen)\r
-* N\8ar den \8ar klar g\9ar ni en merge mot trunk.\r
-* Jag lyfter den sedan till aos repot.\r
-\r
-\r
-\r
-\r
-boards\r
-|--- mpc5516it\r
-| |--- config\r
-| | |--- Gpt_Cfg.c/h <-- default config\r
-| | |--- Dio_Cfg.c/.h\r
-| | |--- mcu_aconfig.h\r
-|\r
-|--- examples\r
-| |--- simple\r
-| | |--- config\r
-| | | |--- Gpt_Cfg.c/h <-- if exist, overrides default config\r
-| | | |--- board_aconfig.h\r
-\r
-\r
-So, in this case it would take the default config for Dio and the example config for Gpt.\r
-\r
-Component more likely to find under boards:\r
-- Mcu\r
-- Can\r
-...\r
-\r
-More likely under examples:\r
-- Gpt\r
-- Com\r
-...\r
-\r
-Weak config targets: Mcu_Cfg.o\r
-Strong config targets: Gpt_Cfg.o Com_Cfg.o\r
-\r
-\r
-make BOARDDIR=boards/mpc5516it all\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
+Arctic Core - the open source AUTOSAR embedded platform\r
\r
\r
+For information on getting started with Arctic Core, please take a look at: \r
+ http://arccore.com/wiki/Quick-start_Tutorial\r
\r
+For more general information and help, browse the wiki at:\r
+ http://arccore.com/wiki/\r
\r
+or post a question in the forum:\r
+ https://arccore.com/forum/\r
\r
\r
\r