low_level_init.c

来自「iar公司的s3c44b0x评估板的源程序」· C语言 代码 · 共 44 行

C
44
字号
#include <string.h>

#ifdef __cplusplus
extern "C" {
#endif

#pragma language=extended

__interwork int __low_level_init(void);

#pragma segment="CODE"
#pragma segment="CODE_D"
#pragma segment="DATA_C"
#pragma segment="DATA_CD"

#pragma location="ICODE"
__interwork int __low_level_init(void)
{
    void *ram_start, *ram_end, *rom_start;
    unsigned int size;

    /* copy CODE_D to CODE */
    ram_start = __sfb("CODE");
    ram_end   = __sfe("CODE");
    rom_start = __sfb("CODE_D");
    size = (unsigned int)(ram_end) - (unsigned int)(ram_start);
    memcpy(ram_start, rom_start, size);

    /* copy DATA_CD to DATA_C */
    ram_start = __sfb("DATA_C");
    ram_end   = __sfe("DATA_C");
    rom_start = __sfb("DATA_CD");
    size = (unsigned int)(ram_end) - (unsigned int)(ram_start);
    memcpy(ram_start, rom_start, size);

    return (1);
}

#pragma language=default

#ifdef __cplusplus
}
#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?