entry.c
来自「Hermit-at-1.1.3,一款bootloader」· C语言 代码 · 共 61 行
C
61 行
extern unsigned char __bss_start;extern unsigned char __bss_end;#ifdef RELOCATE/* see loader.lds */extern unsigned char __text_start_flash;extern unsigned char __text_start;extern unsigned char __text_end;extern unsigned char __data_start_flash;extern unsigned char __data_start;extern unsigned char __data_end;void entry(void){ unsigned char *src, *dst; /* relocate .text */ src = &__text_start_flash; dst = &__text_start; while (dst < &__text_end) *dst++ = *src++; /* relocate .data */ src = &__data_start_flash; dst = &__data_start; while (dst < &__data_end) *dst++ = *src++; /* clear .bss */ dst = &__bss_start; while (dst < &__bss_end) *dst++ = 0; /* branch into relocated code */ __asm__ volatile ( " mov r0, #0x00010000\n" /* start of DRAM */ " mov pc, r0" /* go there */ );}#else/* see loader.c */extern void hmain(void);void entry(void){ unsigned char *dst; /* clear .bss */ dst = &__bss_start; while (dst < &__bss_end) *dst++ = 0; hmain();}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?