int main(void) { __stack_chk_guard = random32(); setup(); memory_protect(); oledInit(); // at least one button is unpressed uint16_t state = gpio_port_read(BTN_PORT); if ((state & BTN_PIN_YES) == BTN_PIN_YES || (state & BTN_PIN_NO) == BTN_PIN_NO) { check_firmware_sanity(); oledClear(); oledDrawBitmap(40, 0, &bmp_logo64_empty); oledRefresh(); uint8_t hash[32]; if (!signatures_ok(hash)) { show_unofficial_warning(hash); } load_app(); } bootloader_loop(); return 0; }
uint32 load(uint32 from_addr, uint32 to_addr) { uint8 tryCount; uint32 total_size, romaddr; if(from_addr == 0) return 0; INFO("ESPBOOT: new application at 0x%X\r\n", from_addr); if(check_image(from_addr, &total_size) > 0) { INFO("ESPBOOT: checksum ok, try 3 times to load new app\r\n"); tryCount = 3; while(tryCount --) { load_app(from_addr, to_addr, total_size); if((romaddr = check_image(to_addr, &total_size)) > 0) { return romaddr; } INFO("ESPBOOT: try load again [%d]\r\n", tryCount); } INFO("ESPBOOT: Can't load firmware\r\n"); return 0; } INFO("ESPBOOT: invalid firmware\r\n"); return 0; }
JNIEXPORT void JNICALL Java_com_arm_malideveloper_openglessdk_computeparticles_ComputeParticles_init (JNIEnv *env, jclass jcls, jint width, jint height) { ASSERT(load_app(), "Failed to load content"); init_app(width, height); last_tick = 0.0f; timer_init(); }
int main(int argc, const char **argv) { // liang: setup signal handler for checkpointing int rc; struct sigaction sig_int_action; sig_int_action.sa_handler = checkpoint_signal_handler; sigemptyset(&sig_int_action.sa_mask); sig_int_action.sa_flags = 0; rc = sigaction(checkpoint_signal, &sig_int_action, NULL); assert(rc==0); // get MmapOverride installed before we need memory! MmapOverride mmapOverride; fprintf(stderr, "Parsing args.\n"); MonitorArgs args(argc, (char**) argv); fprintf(stderr, "Done parsing args.\n"); if (args.wait_for_debugger) { fprintf(stderr, "monitor starts; waiting for debugger.\n"); } while (args.wait_for_debugger) { sleep(1); } MallocFactory *mf = standard_malloc_factory_init(); malloc_factory_operator_new_init(mf); ambient_malloc_init(mf); // liang: resume process if (args.is_resume) { // zvm = new ZoogVM(mf, &mmapOverride, &args, args.wait_for_core, args.swap_file); zvm = new ZoogVM(mf, &mmapOverride, &args); zvm->resume(); } else { zvm = new ZoogVM(mf, &mmapOverride, &args); if (args.assign_in_address) { assign_address(zvm, args.assign_in_address); } zvm->set_swapfile(args.swap_file); load_elf_pal(zvm, (char*) ZOOG_ROOT "/monitors/linux_kvm/pal/build/zoog_kvm_pal"); load_app(zvm, args.image_file); if (args.delete_image_file) { rc = unlink(args.image_file); assert(rc==0); } zvm->start(); } }
/**@brief Function for the application main entry. */ int main(void) { uint32_t err_code; load_app(); gpio_init(); ble_stack_init(); device_manager_init(); juma_init(); // initialize Bluetooth Stack parameters. gap_params_init(); advertising_init(); services_init(); dispatch_init(); flash_init(); if (app) { device_current_statue_set(DEVICE_STATUE_APP); data_storage_init(); on_ready(); } else { device_current_statue_set(DEVICE_STATUE_OTA); ble_device_set_name("OTA Mode"); ota_init(); ble_device_set_advertising_interval(200); ble_device_start_advertising(); } // Enter main loop. for (;;) { watchDog_sys_SDK_dog1_RR(); if(0 != enter_ota_mode_statue) { enter_ota_process(NULL); } else { dispatch(); } serial_get(); // Switch to a low power state until an event is available for the application err_code = sd_app_evt_wait(); APP_ERROR_CHECK(err_code); } }
int main(void) { #ifndef APPVER setup(); #endif __stack_chk_guard = random32(); // this supports compiler provided unpredictable stack protection checks #ifndef APPVER memory_protect(); oledInit(); #endif #ifndef APPVER // at least one button is unpressed uint16_t state = gpio_port_read(BTN_PORT); int unpressed = ((state & BTN_PIN_YES) == BTN_PIN_YES || (state & BTN_PIN_NO) == BTN_PIN_NO); if (firmware_present() && unpressed) { oledClear(); oledDrawBitmap(40, 0, &bmp_logo64_empty); oledRefresh(); uint8_t hash[32]; int signed_firmware = signatures_ok(hash); if (SIG_OK != signed_firmware) { show_unofficial_warning(hash); timer_init(); } load_app(signed_firmware); } #endif bootloader_loop(); return 0; }