|
|
|
@ -20,13 +20,14 @@ Und wacht sie aus'm Koma auf, kriegt sie von mir 'n Sticker\n\
|
|
|
|
\n";
|
|
|
|
\n";
|
|
|
|
|
|
|
|
|
|
|
|
extern TextStream kout;
|
|
|
|
extern TextStream kout;
|
|
|
|
extern Ticketlock ticketlock;
|
|
|
|
extern Ticketlock koutlock;
|
|
|
|
|
|
|
|
|
|
|
|
void activeWaitDelay(uint64_t cycles) {
|
|
|
|
void activeWaitDelay(uint64_t cycles) {
|
|
|
|
uint64_t counter = 0; // Use volatile to prevent optimization
|
|
|
|
uint64_t counter = 0; // Use volatile to prevent optimization
|
|
|
|
for (uint64_t i = 0; i < cycles; ++i) {
|
|
|
|
for (uint64_t i = 0; i < cycles; ++i) {
|
|
|
|
counter++; // Simple operation to consume cycles
|
|
|
|
counter++; // Simple operation to consume cycles
|
|
|
|
//asm("nop");
|
|
|
|
asm("nop");
|
|
|
|
Core::pause();
|
|
|
|
//Core::pause();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -34,17 +35,17 @@ void Application::action() { // NOLINT
|
|
|
|
uint16_t cnt = 0;
|
|
|
|
uint16_t cnt = 0;
|
|
|
|
while (1) {
|
|
|
|
while (1) {
|
|
|
|
Core::Interrupt::disable();
|
|
|
|
Core::Interrupt::disable();
|
|
|
|
ticketlock.lock();
|
|
|
|
koutlock.lock();
|
|
|
|
while(text[cnt++] != '\n'){
|
|
|
|
while(text[cnt++] != '\n'){
|
|
|
|
kout << text[cnt-1];
|
|
|
|
kout << text[cnt-1];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
kout << endl << flush;
|
|
|
|
kout << endl << flush;
|
|
|
|
|
|
|
|
koutlock.unlock();
|
|
|
|
|
|
|
|
|
|
|
|
activeWaitDelay(10000000);
|
|
|
|
activeWaitDelay(1000000000);
|
|
|
|
if(cnt >= sizeof(text)-1)
|
|
|
|
if(cnt >= sizeof(text)-1)
|
|
|
|
cnt=0;
|
|
|
|
cnt=0;
|
|
|
|
|
|
|
|
|
|
|
|
ticketlock.unlock();
|
|
|
|
|
|
|
|
Core::Interrupt::enable();
|
|
|
|
Core::Interrupt::enable();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|