OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [taskmgr/] [taskmgr_func.s] - Rev 319

Go to most recent revision | Compare with Previous | Blame | View Log

; Copyright (c)2022 Jeremy Seth Henry
; All rights reserved.
;
; Redistribution and use in source and binary forms, with or without
; modification, are permitted provided that the following conditions are met:
;     * Redistributions of source code must retain the above copyright
;       notice, this list of conditions and the following disclaimer.
;     * Redistributions in binary form must reproduce the above copyright
;       notice, this list of conditions and the following disclaimer in the
;       documentation and/or other materials provided with the distribution,
;       where applicable (as part of a user interface, debugging port, etc.)
;
; THIS SOFTWARE IS PROVIDED BY JEREMY SETH HENRY ``AS IS'' AND ANY
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
; DISCLAIMED. IN NO EVENT SHALL JEREMY SETH HENRY BE LIABLE FOR ANY
; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
; ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;
;------------------------------------------------------------------------------
; taskmgr_func.s
;
; Program Start, Task Setup, and Core Interrupt Service
;
; Note that the CPU must be in supervisory mode for this code to execute
;  properly, which means the I bit MUST be set at startup. This is controlled
;  by HDL generics - specifically the supervisor mode enable.
;
; Revision History
; Author          Date     Change
;---------------- -------- ---------------------------------------------------
; Seth Henry      7/15/22  Initial Release
;------------------------------------------------------------------------------
 
;------------------------------------------------------------------------------
; System Bootstrap / Start of ROM
;------------------------------------------------------------------------------
.ORG BOOT_BLOCK
BOOTSTRAP:    JMP  INIT_MAIN ; Jump past the pointer block
              NOP            ; Aligns the data block, but not executed
;------------------------------------------------------------------------------
 
;------------------------------------------------------------------------------
; Pointer table
;------------------------------------------------------------------------------
              INSTANCE_TASK_POINTERS
;------------------------------------------------------------------------------
 
;------------------------------------------------------------------------------
; Task Parameter table
;------------------------------------------------------------------------------
             INSTANCE_TASK_EXPORTS
;------------------------------------------------------------------------------
 
;------------------------------------------------------------------------------
; System start
;------------------------------------------------------------------------------
INIT_MAIN:    BNI  INIT_MAIN ; Trap in a loop if supervisor mode isn't set
              BOOT_SYSTEM
;------------------------------------------------------------------------------
 
;------------------------------------------------------------------------------
; RAM Access Fault Shutdown (CALL_PANIC)
;------------------------------------------------------------------------------
RAM_FAULT:    PROCESS_RAM_FAULT
;------------------------------------------------------------------------------
 
;------------------------------------------------------------------------------
;  Task Switch ISR (CALL_TASK_SW)
;------------------------------------------------------------------------------
TASK_SW_INT:  SWITCH_TASKS
;------------------------------------------------------------------------------
 
;------------------------------------------------------------------------------
; External Interrupt Handler ISR
;------------------------------------------------------------------------------
EXT_INT_MGR:
.IFDEF INTMGR16
              CHECK_EXTERNAL_IO_INTS16
.ELSE
              CHECK_EXTERNAL_IO_INTS
.ENDIF
;------------------------------------------------------------------------------
 
;------------------------------------------------------------------------------
; ISR Context Function Calls (CALL_SUPV_FN<n>)
;------------------------------------------------------------------------------
              INSTANCE_SUPV_FUNCS
;------------------------------------------------------------------------------
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.