/** * @file % !FILENAME % * * @section desc File description * * Memory mapping using Metrowerks CodeWarrior pragmas * Memory Mapping of Application % !CPUNAME % * Automatically generated by goil on % !TIMESTAMP % * from root OIL file % !OILFILENAME % * * @section copyright Copyright * * Trampoline OS * * Trampoline is copyright (c) IRCCyN 2005-2007 * Trampoline is protected by the French intellectual property law. * * This software is distributed under the Lesser GNU Public Licence * * @section infos File informations * * $Date$ * $Rev$ * $Author$ * $URL$ */ #define MEMMAP_ERROR /*============================================================================= * OS memory mapping * * Code section */ #ifdef OS_START_SEC_CODE #undef OS_START_SEC_CODE #ifdef CURRENT_LINKER_CODE_SECTION #error "Starting a .osCode while a section is already started" #else #undef MEMMAP_ERROR #pragma section code_type ".osCode" #define CURRENT_LINKER_CODE_SECTION #endif #endif #ifdef OS_STOP_SEC_CODE #undef OS_STOP_SEC_CODE #ifdef CURRENT_LINKER_CODE_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_CODE_SECTION #pragma section all_types #else #error "No section .osCode started" #endif #endif % for SECTION_KIND in "_NOINIT_","_POWER_ON_INIT_","_FAST_","_" do for DATA_SIZE in "32BIT","16BIT","8BIT","BOOLEAN","UNSPECIFIED" do % #ifdef OS_START_SEC_VAR% !SECTION_KIND !DATA_SIZE % #undef OS_START_SEC_VAR% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #error "Starting a .osVar data section while a section is already started" #else #undef MEMMAP_ERROR #pragma section data_type ".osVar" ".osVarNoInit" #define CURRENT_LINKER_DATA_SECTION #endif #endif #ifdef OS_STOP_SEC_VAR% !SECTION_KIND !DATA_SIZE % #undef OS_STOP_SEC_VAR% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_DATA_SECTION #pragma section all_types #else #error "No section started" #endif #endif % end for end for % /* * Const, Calibration, Carto, Configuration data sections */ % for SECTION_KIND in "_CONST_","_CALIB_","_CARTO_","_CONFIG_DATA_" do for DATA_SIZE in "32BIT","16BIT","8BIT","BOOLEAN","UNSPECIFIED" do % #ifdef OS_START_SEC% !SECTION_KIND !DATA_SIZE % #undef OS_START_SEC% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #error "Starting a .osConst data section while a section is already started" #else #undef MEMMAP_ERROR #pragma section const_type ".osConst" #define CURRENT_LINKER_DATA_SECTION #endif #endif #ifdef OS_STOP_SEC% !SECTION_KIND !DATA_SIZE % #undef OS_STOP_SEC% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_DATA_SECTION #pragma section all_types #else #error "No section started" #endif #endif % end for end for % /*============================================================================= * API code and const memory mapping */ #ifdef API_START_SEC_CODE #undef API_START_SEC_CODE #ifdef CURRENT_LINKER_CODE_SECTION #error "Starting a .osApiCode section while a section is already started" #else #undef MEMMAP_ERROR #pragma section code_type ".osApiCode" #define CURRENT_LINKER_CODE_SECTION #endif #endif #ifdef API_STOP_SEC_CODE #undef API_STOP_SEC_CODE #ifdef CURRENT_LINKER_CODE_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_CODE_SECTION #pragma section all_types #else #error "No section .osApiCode started" #endif #endif #ifdef API_START_SEC_CONST_UNSPECIFIED #undef API_START_SEC_CONST_UNSPECIFIED #ifdef CURRENT_LINKER_DATA_SECTION #error "Starting a .osApiConst section while a section is already started" #else #undef MEMMAP_ERROR #pragma section const_type ".osApiConst" #define CURRENT_LINKER_DATA_SECTION #endif #endif #ifdef API_STOP_SEC_CONST_UNSPECIFIED #undef API_STOP_SEC_CONST_UNSPECIFIED #ifdef CURRENT_LINKER_DATA_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_DATA_SECTION #pragma section all_types #else #error "No section .osApiConst started" #endif #endif /*============================================================================ * Common library */ #ifdef APP_COMMON_START_SEC_CODE #undef APP_COMMON_START_SEC_CODE #ifdef CURRENT_LINKER_CODE_SECTION #error "Starting a .appCommonCode section while a section is already started" #else #undef MEMMAP_ERROR #pragma section code_type ".appCommonCode" #define CURRENT_LINKER_CODE_SECTION #endif #endif #ifdef APP_COMMON_STOP_SEC_CODE #undef APP_COMMON_STOP_SEC_CODE #ifdef CURRENT_LINKER_CODE_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_CODE_SECTION #else #error "No section .appCommonCode started" #endif #endif /*============================================================================= * Application objects (Tasks and ISRs) Memory mapping */ % foreach app in APPLICATIONS do % /*---------------------------------------------------------------------------- * Application % !app::NAME % memory mapping * * Variables sections */ % for SECTION_KIND in "_NOINIT_","_POWER_ON_INIT_","_FAST_","_" do for DATA_SIZE in "32BIT","16BIT","8BIT","BOOLEAN","UNSPECIFIED" do % #ifdef APP_OS_APP_% !app::NAME %_START_SEC_VAR% !SECTION_KIND !DATA_SIZE % #undef APP_OS_APP_% !app::NAME %_START_SEC_VAR% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #error "Starting a new OS_APP % !app::NAME % data section while a section is already started" #else #undef MEMMAP_ERROR #pragma section data_type ".OS_APP_% !app::NAME %_SEC_VAR% !SECTION_KIND !DATA_SIZE %" ".OS_APP_% !app::NAME %_noInit_SEC_VAR% !SECTION_KIND !DATA_SIZE %" #define CURRENT_LINKER_DATA_SECTION #endif #endif #ifdef APP_OS_APP_% !app::NAME %_STOP_SEC_VAR% !SECTION_KIND !DATA_SIZE % #undef APP_OS_APP_% !app::NAME %_STOP_SEC_VAR% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_DATA_SECTION #else #error "No section started" #endif #endif % end for end for % /* * Const, Calibration, Carto, Configuration data sections */ % for SECTION_KIND in "_CONST_","_CALIB_","_CARTO_","_CONFIG_DATA_" do for DATA_SIZE in "32BIT","16BIT","8BIT","BOOLEAN","UNSPECIFIED" do % #ifdef APP_OS_APP_% !app::NAME %_START_SEC% !SECTION_KIND !DATA_SIZE % #undef APP_OS_APP_% !app::NAME %_START_SEC% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #error "Starting a new OS_APP % !app::NAME % data section while a section is already started" #else #undef MEMMAP_ERROR #pragma section const_type ".OS_APP_% !app::NAME %_SEC% !SECTION_KIND !DATA_SIZE %" ".OS_APP_% !app::NAME %_noInit_SEC% !SECTION_KIND !DATA_SIZE %" #define CURRENT_LINKER_DATA_SECTION #endif #endif #ifdef APP_OS_APP_% !app::NAME %_STOP_SEC% !SECTION_KIND !DATA_SIZE % #undef APP_OS_APP_% !app::NAME %_STOP_SEC% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_DATA_SECTION #else #error "No section started" #endif #endif % end for end for end foreach % % foreach proc in PROCESSES do % /*----------------------------------------------------------------------------- * % !proc::KIND % % !proc::NAME % memory mapping to sections * * Code section */ #ifdef APP_% !proc::KIND %_% !proc::NAME %_START_SEC_CODE #undef APP_% !proc::KIND %_% !proc::NAME %_START_SEC_CODE #ifdef CURRENT_LINKER_CODE_SECTION #error "Starting a new % !proc::NAME % % !proc::KIND % code section while a section is already started" #else #undef MEMMAP_ERROR #pragma section code_type ".% !proc::KIND %_% !proc::NAME %Code" #define CURRENT_LINKER_CODE_SECTION #endif #endif #ifdef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC_CODE #undef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC_CODE #ifdef CURRENT_LINKER_CODE_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_CODE_SECTION #pragma section all_types #else #error "No section started" #endif #endif /* * Variables sections */ % for SECTION_KIND in "_NOINIT_","_POWER_ON_INIT_","_FAST_","_" do for DATA_SIZE in "32BIT","16BIT","8BIT","BOOLEAN","UNSPECIFIED" do % #ifdef APP_% !proc::KIND %_% !proc::NAME %_START_SEC_VAR% !SECTION_KIND !DATA_SIZE % #undef APP_% !proc::KIND %_% !proc::NAME %_START_SEC_VAR% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #error "Starting a new % !proc::KIND % % !proc::NAME % data section while a section is already started" #else #undef MEMMAP_ERROR #pragma section data_type ".% !proc::KIND %_% !proc::NAME %_SEC_VAR% !SECTION_KIND !DATA_SIZE %" ".% !proc::KIND %_% !proc::NAME %_noInit_SEC_VAR% !SECTION_KIND !DATA_SIZE %" #define CURRENT_LINKER_DATA_SECTION #endif #endif #ifdef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC_VAR% !SECTION_KIND !DATA_SIZE % #undef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC_VAR% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_DATA_SECTION #pragma section all_types #else #error "No section started" #endif #endif % end for end for % /* * Stack sections */ #ifdef APP_% !proc::KIND %_% !proc::NAME %_START_SEC_STACK #undef APP_% !proc::KIND %_% !proc::NAME %_START_SEC_STACK #ifdef CURRENT_LINKER_DATA_SECTION #error "Starting a new % !proc::KIND % % !proc::NAME % stack section while a section is already started" #else #undef MEMMAP_ERROR #pragma section data_type ".% !proc::KIND %_% !proc::NAME %Stack" ".% !proc::KIND %_% !proc::NAME %Stack" #define CURRENT_LINKER_DATA_SECTION #endif #endif #ifdef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC_STACK #undef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC_STACK #ifdef CURRENT_LINKER_DATA_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_DATA_SECTION #pragma section all_types #else #error "No section started" #endif #endif /* * Const, Calibration, Carto, Configuration data sections */ % for SECTION_KIND in "_CONST_","_CALIB_","_CARTO_","_CONFIG_DATA_" do for DATA_SIZE in "32BIT","16BIT","8BIT","BOOLEAN","UNSPECIFIED" do % #ifdef APP_% !proc::KIND %_% !proc::NAME %_START_SEC% !SECTION_KIND !DATA_SIZE % #undef APP_% !proc::KIND %_% !proc::NAME %_START_SEC% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #error "Starting a new % !proc::KIND % % !proc::NAME % data section while a section is already started" #else #undef MEMMAP_ERROR #undef CURRENT_LINKER_DATA_SECTION_NAME #pragma section const_type ".% !proc::KIND %_% !proc::NAME %_SEC% !SECTION_KIND !DATA_SIZE %" #define CURRENT_LINKER_DATA_SECTION #endif #endif #ifdef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC% !SECTION_KIND !DATA_SIZE % #undef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_DATA_SECTION #pragma section all_types #else #error "No section started" #endif #endif % end for end for end foreach % % foreach isr in ISR1 do % /*----------------------------------------------------------------------------- * % !proc::KIND % % !proc::NAME % memory mapping to sections * * Code section */ #ifdef APP_% !proc::KIND %_% !proc::NAME %_START_SEC_CODE #undef APP_% !proc::KIND %_% !proc::NAME %_START_SEC_CODE #ifdef CURRENT_LINKER_CODE_SECTION #error "Starting a new % !proc::NAME % % !proc::KIND % code section while a section is already started" #else #undef MEMMAP_ERROR #pragma section code_type ".% !proc::KIND %_% !proc::NAME %Code" #define CURRENT_LINKER_CODE_SECTION #endif #endif #ifdef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC_CODE #undef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC_CODE #ifdef CURRENT_LINKER_CODE_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_CODE_SECTION #pragma section all_types #else #error "No section started" #endif #endif /* * Variables sections */ % for SECTION_KIND in "_NOINIT_","_POWER_ON_INIT_","_FAST_","_" do for DATA_SIZE in "32BIT","16BIT","8BIT","BOOLEAN","UNSPECIFIED" do % #ifdef APP_% !proc::KIND %_% !proc::NAME %_START_SEC_VAR% !SECTION_KIND !DATA_SIZE % #undef APP_% !proc::KIND %_% !proc::NAME %_START_SEC_VAR% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #error "Starting a new % !proc::KIND % % !proc::NAME % data section while a section is already started" #else #undef MEMMAP_ERROR #pragma section data_type ".% !proc::KIND %_% !proc::NAME %_SEC_VAR% !SECTION_KIND !DATA_SIZE %" ".% !proc::KIND %_% !proc::NAME %_noInit_SEC_VAR% !SECTION_KIND !DATA_SIZE %" #define CURRENT_LINKER_DATA_SECTION #endif #endif #ifdef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC_VAR% !SECTION_KIND !DATA_SIZE % #undef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC_VAR% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_DATA_SECTION #pragma section all_types #else #error "No section started" #endif #endif % end for end for % /* * Stack sections */ #ifdef APP_% !proc::KIND %_% !proc::NAME %_START_SEC_STACK #undef APP_% !proc::KIND %_% !proc::NAME %_START_SEC_STACK #ifdef CURRENT_LINKER_DATA_SECTION #error "Starting a new % !proc::KIND % % !proc::NAME % stack section while a section is already started" #else #undef MEMMAP_ERROR #pragma section data_type ".% !proc::KIND %_% !proc::NAME %Stack" ".% !proc::KIND %_% !proc::NAME %Stack" #define CURRENT_LINKER_DATA_SECTION #endif #endif #ifdef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC_STACK #undef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC_STACK #ifdef CURRENT_LINKER_DATA_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_DATA_SECTION #pragma section all_types #else #error "No section started" #endif #endif /* * Const, Calibration, Carto, Configuration data sections */ % for SECTION_KIND in "_CONST_","_CALIB_","_CARTO_","_CONFIG_DATA_" do for DATA_SIZE in "32BIT","16BIT","8BIT","BOOLEAN","UNSPECIFIED" do % #ifdef APP_% !proc::KIND %_% !proc::NAME %_START_SEC% !SECTION_KIND !DATA_SIZE % #undef APP_% !proc::KIND %_% !proc::NAME %_START_SEC% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #error "Starting a new % !proc::KIND % % !proc::NAME % data section while a section is already started" #else #undef MEMMAP_ERROR #undef CURRENT_LINKER_DATA_SECTION_NAME #pragma section const_type ".% !proc::KIND %_% !proc::NAME %_SEC% !SECTION_KIND !DATA_SIZE %" #define CURRENT_LINKER_DATA_SECTION #endif #endif #ifdef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC% !SECTION_KIND !DATA_SIZE % #undef APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC% !SECTION_KIND !DATA_SIZE % #ifdef CURRENT_LINKER_DATA_SECTION #undef MEMMAP_ERROR #undef CURRENT_LINKER_DATA_SECTION #pragma section all_types #else #error "No section started" #endif #endif % end for end for end foreach % #ifdef MEMMAP_ERROR #error "MemMap.h, wrong section command" #endif /*============================================================================= * Published informations */ #define MEMMAP_VENDOR_ID 48 #define MEMMAP_AR_MAJOR_VERSION 3 #define MEMMAP_AR_MINOR_VERSION 0 #define MEMMAP_AR_PATCH_VERSION 0 #define MEMMAP_SW_MAJOR_VERSION 1 #define MEMMAP_SW_MINOR_VERSION 0 #define MEMMAP_SW_PATCH_VERSION 0