📄 init.cpp
字号:
#include "fileio.h"
#include "memfile.h"
#include <stdio.h>
#include <string.h>
//extern void __init(void);
//extern int main(int, char **, char **);
extern char __DATA_ROM[], __DATA_RAM[], __DATA_END[], __BSS_START[], __BSS_END[];
char **environ; /* used by getenv(), putenv() */
char *__env[] = {
NULL
};
/************** Local data, types, fns and macros ***************/
/************** Implementation of exported functions ************/
extern "C" int init_main_guts(void);
int init_main_guts(void)
{
//int argc;
/* move initialized data from ROM to RAM if defined at */
/* different locations */
if (__DATA_ROM != __DATA_RAM) {
Memcpy(__DATA_RAM,__DATA_ROM,__DATA_END-__DATA_RAM);
} else {
#if LATER
/* init some initialized data to make it easier */
/* to run multiple times */
extern char *__heap_beg, *__heap_ptr;
__uinfo[0].dev = __uinfo[1].dev = __uinfo[2].dev = DT_CHR;
__uinfo[0].min = STDIN_MIN;
__uinfo[1].min = STDOUT_MIN;
__uinfo[2].min = STDERR_MIN;
__heap_ptr = __heap_beg;
#endif
}
/* clear uninitialized data */
if (__BSS_START != __BSS_END) {
Memset(__BSS_START,0,__BSS_END-__BSS_START);
}
/* check how many arguments we have */
// for(argc = 0; __argv[argc] != NULL; argc++) ;
environ = __env;
/* initialize constructors */
// __init();
/* prepare to call the main function */
// return argc ;
}
/* Need a wrapper function so that this function will work
whether or not it is linked with something that uses
small data */
/*
int __init_main(void)
{
int argc = init_main_guts() ;
return main(argc,__argv,__env) ;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -