平台化代码中关于头文件包含使用说明:
1,平台化代码需要考虑将”#pragma code section“部分放在头文件中包含及修改该#pragma部分代码,其中该头文件需要重复被包含,故此头文件前不能添加类似如下
#ifndef _MEMMAP_H_
#define _MEMMAP_H_
...
#endif
头文件防止重复包含的预计了,否则会出现第一次使用该文件后,在后边其他文件包含该头文件时,由于已经包含了该头文件,故该文件下方的#pragma不会被执行到,导致在链接文件时提示找不到指定的section而报出错误;
以下文件仅做参考:
/**********************************************************************************************************************
* COMM START
*********************************************************************************************************************/
/******* CODE sections **********************************************************************************************/
#ifdef COMM_START_SEC_CODE
#undef COMM_START_SEC_CODE
#define START_SEC_CODE /* mapped to default code section */
#endif
#ifdef COMM_STOP_SEC_CODE
#undef COMM_STOP_SEC_CODE
#define STOP_SEC_CODE /* default code stop section */
#endif
#ifdef COMM_START_SEC_APPL_CODE
#undef COMM_START_SEC_APPL_CODE
#define START_SEC_CODE /* mapped to default code section */
#endif
#ifdef COMM_STOP_SEC_APPL_CODE
#undef COMM_STOP_SEC_APPL_CODE
#define STOP_SEC_CODE /* default code stop section */
#endif
/******* CONST sections ********************************************************************************************/
/* CONST sections */
#ifdef COMM_START_SEC_CONST_8BIT
# undef COMM_START_SEC_CONST_8BIT
# define START_SEC_CONST_8BIT /* mapped to default const 8bit section */
#endif
#ifdef COMM_STOP_SEC_CONST_8BIT
# undef COMM_STOP_SEC_CONST_8BIT
# define STOP_SEC_CONST /* default const stop section */
#endif
#ifdef COMM_START_SEC_CONST_16BIT
# undef COMM_START_SEC_CONST_16BIT
# define START_SEC_CONST_16BIT
#endif
#ifdef COMM_STOP_SEC_CONST_16BIT
# undef COMM_STOP_SEC_CONST_16BIT
# define STOP_SEC_CONST
#endif
#ifdef COMM_START_SEC_CONST_32BIT
# undef COMM_START_SEC_CONST_32BIT
# define START_SEC_CONST_32BIT
#endif
#ifdef COMM_STOP_SEC_CONST_32BIT
# undef COMM_STOP_SEC_CONST_32BIT
# define STOP_SEC_CONST
#endif
#ifdef COMM_START_SEC_CONST_UNSPECIFIED
# undef COMM_START_SEC_CONST_UNSPECIFIED
# define START_SEC_CONST_UNSPECIFIED
#endif
#ifdef COMM_STOP_SEC_CONST_UNSPECIFIED
# undef COMM_STOP_SEC_CONST_UNSPECIFIED
# define STOP_SEC_CONST
#endif
/******* VAR sections **********************************************************************************************/
/* VAR NOINIT sections */
#ifdef COMM_START_SEC_VAR_NOINIT_8BIT
# undef COMM_START_SEC_VAR_NOINIT_8BIT
# define START_SEC_VAR_NOINIT_8BIT
#endif
#ifdef COMM_STOP_SEC_VAR_NOINIT_8BIT
# undef COMM_STOP_SEC_VAR_NOINIT_8BIT
# define STOP_SEC_VAR
#endif
#ifdef COMM_START_SEC_VAR_NOINIT_16BIT
# undef COMM_START_SEC_VAR_NOINIT_16BIT
# define START_SEC_VAR_NOINIT_16BIT
#endif
#ifdef COMM_STOP_SEC_VAR_NOINIT_16BIT
# undef COMM_STOP_SEC_VAR_NOINIT_16BIT
# define STOP_SEC_VAR
#endif
#ifdef COMM_START_SEC_VAR_NOINIT_32BIT
# undef COMM_START_SEC_VAR_NOINIT_32BIT
# define START_SEC_VAR_NOINIT_32BIT
#endif
#ifdef COMM_STOP_SEC_VAR_NOINIT_32BIT
# undef COMM_STOP_SEC_VAR_NOINIT_32BIT
# define STOP_SEC_VAR
#endif
#ifdef COMM_START_SEC_VAR_NOINIT_UNSPECIFIED
# undef COMM_START_SEC_VAR_NOINIT_UNSPECIFIED
# define START