void gcc_entry(unsigned int entry, unsigned int init_array_start, unsigned int count) { unsigned int i; __init_array ptr; unsigned int size = 0; vm_get_sym_entry = (vm_get_sym_entry_t)entry; size = vm_pmng_get_total_heap_size(); #if defined(__LINKIT_ONE__) if(size > RESERVED_MEMORY_SIZE) { g_memory_size = size - RESERVED_MEMORY_SIZE; } #endif g_base_address = vm_malloc(g_memory_size); ptr = (__init_array)init_array_start; for (i = 1; i < count; i++) { ptr[i](); } vm_main(); }
void gcc_entry(unsigned int entry, unsigned int init_array_start, unsigned int count) { __init_array ptr; int i; VMUINT size = 0; vm_get_sym_entry = (vm_get_sym_entry_t)entry; size = vm_get_total_heap_size(); if(size == 0) { base_address = vm_malloc(g_size); } else { if(size > RESERVED_MEMORY_SIZE) size -= RESERVED_MEMORY_SIZE; base_address = vm_malloc(size); g_size = size; } __libc_init_array(); ptr = (__init_array)init_array_start; for (i = 1; i < count; i++) { ptr[i](); } // To read/write file in normal thread, we must firstly read/write file at main thread. { FILE *pf = fopen("README.md", "w+"); if (pf != NULL) { char buf[32]; char *project_url = "see https://github.com/xiongyihui/Lua_for_LinkIt_One"; fwrite(project_url, 1, strlen(project_url), pf); fseek(pf, 0, SEEK_SET); fread(buf, 1, sizeof(buf), pf); fclose(pf); } } vm_main(); }
int main() { return vm_main(); }