Пример #1
0
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;
}
Пример #2
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;
}
Пример #3
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();
	}
}
Пример #5
0
/**@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);
  }
}
Пример #6
0
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;
}