Go to the documentation of this file.
18 #include <FreeNOS/System.h>
19 #include <FreeNOS/ProcessManager.h>
48 NOTICE(
"sysfreq = " << system_frequency);
49 if (system_frequency == 62500000)
54 m_armTimer.setFrequency(100);
80 if (kernel->
m_timer == &kernel->m_armTimer)
static void interrupt(CPUState state)
Interrupt handler routine.
static Size copy(void *dest, const void *src, Size count)
Copy memory from one place to another.
RaspberryKernel(CoreInfo *info)
Constructor function.
#define NOTICE(msg)
Output a notice message.
Timer * m_timer
Timer device.
ProcessID getID() const
Retrieve our ID number.
u8 m_timerIrq
Interrupt number for the timer.
ProcessManager * getProcessManager()
Get process manager.
unsigned int uint
Unsigned integer number.
virtual Result setFrequency(Size hertz)
Set timer frequency.
#define DEBUG(msg)
Output a debug message to standard output.
ARM System Control Coprocessor (CP15).
IntController * m_intControl
Interrupt Controller.
virtual Result enable(uint irq)=0
Enable hardware interrupt (IRQ).
Result install(ExceptionType vector, Handler handler)
Install an exception handler.
#define NULL
NULL means zero.
unsigned int u32
Unsigned 32-bit number.
static Kernel * instance()
Retrieve the instance.
Result schedule()
Schedule next process to run.
ARM specific process implementation.
Contains all the CPU registers.
Per-Core information structure.
ARMException m_exception
ARM exception handling subsystem.
#define BCM_IRQ_SYSTIMERM1
Triggered when the system timer matches the C1 register.
BroadcomInterrupt m_bcmIntr
Broadcom specific interrupt controller.
virtual bool isTriggered(uint irq)
Check if an IRQ vector is set.
Represents the Raspberry Pi kernel implementation.
void setCpuState(const CPUState *cpuState)
Overwrite the saved CPU registers for this task.
Represents the ARM kernel implementation.
Process * current()
Current process running.
virtual void executeIntVector(u32 vec, CPUState *state)
Execute an interrupt handler.
BroadcomTimer m_bcmTimer
Broadcom specific timer module.
virtual Result tick()
Process timer tick.
u32 read(Register reg) const
Read a register from the CP15.