Example #1
0
void __Init_Data(void)
{
	unsigned long *pulSrc, *pulDest;

	pulSrc = &_sidata;

	/* init HW (with clocks) before data/bss initalising ? */

	for(pulDest = &_sdata; pulDest < &_edata; )
		*(pulDest++) = *(pulSrc++);

	for(pulDest = &_sbss; pulDest < &_ebss; )
		*(pulDest++) = 0;

	/* Init hardware before calling constructors */
	init_HW();
#if 0
	/* External memory bus initialisation */
	SystemInit_ExtMemCtl();
#endif
	/* Call constructors */
	unsigned long *ctors;
	for(ctors = &__ctors_start__; ctors < &__ctors_end__; )
		((void(*)(void))(*ctors++))();
}
Example #2
0
Sensorik* Sensorik::getInstance() {
	mutex->lock();
	if (!init_HW_Done()) {
		init_HW();
	}

	if (instance == NULL) {
		instance = new Sensorik();
	}
	mutex->unlock();

	return instance;
}
Example #3
0
void Reset_Handler(void)
{
	memcpy(&_sdata, &_sidata, &_edata - &_sdata); // copy initialized variables
	memset(&_sbss, 0, &_ebss - &_sbss);           // zero-fill uninitialized variables

	init_HW();  // initialize hardware before calling constructors

	// call constructors
	for(unsigned long *ctors = &__ctors_start__; ctors < &__ctors_end__; )
		((void(*)(void))(*ctors++))();

	main();
}
Example #4
0
// returns the only running instance of Petri_Bsp
Petri_Conveyor* Petri_Conveyor::getInstance() {

	mutex->lock();

	if (!init_HW_Done()) {
		init_HW();
	}

	if (!petri) {
		petri = new Petri_Conveyor();
	}

	mutex->unlock();

	return petri;
}
void __Init_Data(void)
{
	unsigned long *pulSrc, *pulDest;

	pulSrc = &_sidata;

	for(pulDest = &_sdata; pulDest < &_edata; )
		*(pulDest++) = *(pulSrc++);

	for(pulDest = &_sbss; pulDest < &_ebss; )
		*(pulDest++) = 0;

	/* Init hardware before calling constructors */
	init_HW();


	/* Call constructors */
	unsigned long *ctors;
	for(ctors = &__ctors_start__; ctors < &__ctors_end__; )
		((void(*)(void))(*ctors++))();
}