NanoPayload

Graph

(0) -100 -60 tip
Made keypad detection function by fixing page table entries and pin definitions. default tip
Introduced a separate GPIO module with its operations each employing a base
Fixed function declaration.
Made the clock/timer test more specific.
Introduced a separate clock and power management module, simplifying the LCD
Continued the parameterisation of the LCD configuration activity.
Removed superfluous definitions.
Moved initialisation details to the generic LCD module, changing the address
Fixed erroneous clock and power management operations.
Make LCD register access relative to a supplied base parameter.
Parameterised LCD controller initialisation, allowing addresses to be passed in
Parameterise LCD register operations using the display information structure,
Initialise framebuffer structure reference members but correct them later.
Eliminate redundant members in vidinfo_t, adding a member referencing the
Fixed GPIO region sizes.
Introduced separate abstractions for GPIO keymap details and moved
Use the physical base address of the GPIO registers.
Replaced u8, u16 and u32 with uint8_t, uint16_t and uint32_t respectively.
Employ structure member names to make initialisation clearer.
Adjusted GPIO usage and added a form of visual feedback. Unfortunately, it
Reduced the page table size to avoid potential conflicts.
Removed redundant code.
Added buzzer configuration for potential future use.
Changed the GPIO mapping to use uncached memory.
Attempt to properly use the GPIO set and clear registers.
Tidied and renamed some memory definitions, attempting to make sure that GPIO
Fixed GPIO set and clear pin functions.
Added a keyboard scanning task.
Increased the number of tasks, cycling over initialised tasks only.
Added initial support for task-based GPIO access.
Changed the task stack virtual address, introducing also a GPIO address base.
Employ timer-based task switching again.
Introduced a separate initial tasks manifest.
Moved example tasks into a separate directory.
Introduced convenience functions handling page pairs.
Permit keyboard row GPIO interrupt requests, although they are not handled.
Added copyright and licensing documentation.
Added missing support for the MiniPC (untested at present), and moved common
Let the power button switch between tasks, using an IRQ that occurs when the
Removed superfluous void argument type declarations.
Introduced memory layout headers and consolidated memory-related definitions.
Mapped task stacks from 0x01c0000 downwards, moved kernel stacks to 0x8000 and
Permit entry into user mode by avoiding calling udelay which needs access to a
Allow the TLB random mapping threshold to be specified.
Added and tidied status register definitions.
Made an inline function for address space conversion.
Added definitions for register fields.
Reordered function definitions.
Moved almost all assembly language fragments into a separate file.
Replaced assembly language section with plain storage operations.
Introduced MIPS register definition symbols.
Use the exception return mechanism to invoke a task.
Removed superfluous and limited user mode entry function.
Presumably nothing special needs doing after TLB exception handling, so a direct
Removed the separate reference for the task entry routine. It shouldn't be
Attempted to map the relocated object table into each task, using explicit
Moved the object tables above the program and data.
Put the global object tables in separate page pairs.
Relocated the global object table regions to reside on page boundaries.
Attempted to simplify region allocation by putting the object table copy in a
(0) -100 -60 tip