⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 excalibur.h

📁 重要代码,FPGA CYCLONE FLASH DRIVER
💻 H
📖 第 1 页 / 共 4 页
字号:
/* * File: excalibur.h * * This file is a machine generated address map * for a CPU named cpu. * F:/interrupt_flow/new_04010_20/fifth_nios2_system.ptf * Generated: 2006.07.28 12:36:24 DO NOT MODIFY THIS FILE Changing this file will have subtle consequences which will almost certainly lead to a nonfunctioning system. If you do modify this file, you MUST change both excalibur.h, excalibur.s, and excalibur.mk identically. Or better yet: DO NOT MODIFY THIS FILE */#ifndef _excalibur_#define _excalibur_// Legacy SDK will not be supported for Nios II in version 6.0 and beyond.// Please migrate your software to use the HAL System Library.// See the Nios II Software Developer's Handbook.#include <stdio.h>#include <stdlib.h>#ifdef __cplusplusextern "C" {#endif// The Memory Map#define na_uart1                      ((np_uart *)  0x00000000) // altera_avalon_uart#define na_uart1_base                               0x00000000#define na_uart1_irq                                14#define na_cpu                        ((void *)     0x00000000) // altera_nios2#define na_cpu_base                                 0x00000000#define na_timer1                     ((np_timer *) 0x00000020) // altera_avalon_timer#define na_timer1_base                              0x00000020#define na_timer1_irq                               12#define na_uart2                      ((np_uart *)  0x00000040) // altera_avalon_uart#define na_uart2_base                               0x00000040#define na_uart2_irq                                2#define na_led_pio                    ((np_pio *)   0x00000060) // altera_avalon_pio#define na_led_pio_base                             0x00000060#define na_sysid                      ((void *)     0x00000070) // altera_avalon_sysid#define na_sysid_base                               0x00000070#define na_sysid_end                  ((void *)     0x00000078)#define na_sysid_size                               0x00000008#define na_jtag_uart                  ((void *)     0x00000078) // altera_avalon_jtag_uart#define na_jtag_uart_base                           0x00000078#define na_jtag_uart_end              ((void *)     0x00000080)#define na_jtag_uart_size                           0x00000008#define na_jtag_uart_irq                            10#define na_pll_0                      ((void *)     0x00000080) // altera_avalon_pll#define na_pll_0_base                               0x00000080#define na_pll_0_end                  ((void *)     0x000000a0)#define na_pll_0_size                               0x00000020#define na_timer_dram                 ((np_timer *) 0x000000a0) // altera_avalon_timer#define na_timer_dram_base                          0x000000a0#define na_timer_dram_irq                           3#define na_cs8900_0                   ((void *)     0x00000300) // altera_avalon_cs8900#define na_cs8900_0_base                            0x00000300#define na_cs8900_0_end               ((void *)     0x00000320)#define na_cs8900_0_size                            0x00000020#define na_cs8900_0_irq                             1#define na_idt7132                    ((void *)     0x00000800) // altera_avalon_user_defined_interface#define na_idt7132_base                             0x00000800#define na_idt7132_end                ((void *)     0x00001000)#define na_idt7132_size                             0x00000800#define na_onchip_rom                 ((void *)     0x00001000) // altera_avalon_onchip_memory#define na_onchip_rom_base                          0x00001000#define na_onchip_rom_end             ((void *)     0x00002000)#define na_onchip_rom_size                          0x00001000#define na_epcs_controller            ((np_epcs *)  0x00002000) // altera_avalon_epcs_flash_controller#define na_epcs_controller_base                     0x00002000#define na_epcs_controller_irq                      0#define na_cpu_jtag_debug_module      ((void *)     0x00002800) // altera_nios2#define na_cpu_jtag_debug_module_base               0x00002800#define na_ext_ram                    ((void *)     0x00100000) // altera_nios_dev_kit_stratix_edition_sram2#define na_ext_ram_base                             0x00100000#define na_ext_ram_end                ((void *)     0x00200000)#define na_ext_ram_size                             0x00100000#define na_cfi_flash_0                ((void *)     0x00200000) // altera_avalon_cfi_flash#define na_cfi_flash_0_base                         0x00200000#define na_cfi_flash_0_end            ((void *)     0x00400000)#define na_cfi_flash_0_size                         0x00200000 #define na_null                           0#define nasys_device_family               "CYCLONE"#define nasys_epcs_count                  1#define nasys_epcs_0                      na_epcs_controller#define nasys_pio_count                   1#define nasys_pio_0                       na_led_pio#define nasys_timer_count                 2#define nasys_timer_0                     na_timer1#define nasys_timer_0_irq                 12#define nasys_timer_1                     na_timer_dram#define nasys_timer_1_irq                 3#define nasys_uart_count                  2#define nasys_uart_0                      na_uart1#define nasys_uart_0_irq                  14#define nasys_uart_1                      na_uart2#define nasys_uart_1_irq                  2#define nasys_reset_address     ((void *) 0x00002000)#define nasys_exception_address ((void *) 0x00100020)#define nasys_break_address     ((void *) 0x00002820)#define nasys_clock_freq                  50000000#define nasys_clock_freq_1000             50000#define nasys_debug_core                  0#define nasys_printf_uart                 na_uart1#define nasys_printf_uart_irq             na_uart1_irq#define nm_printf_txchar                  nr_uart_txchar#define nm_printf_rxchar                  nr_uart_rxchar#define nasys_debug_uart                  na_uart1#define nasys_debug_uart_irq              na_uart1_irq#define nasys_main_flash        ((void *) 0x00002000)#define nasys_main_flash_size             0x00000800#define nasys_main_flash_end    ((void *) 0x00002800)#define nasys_program_mem       ((void *) 0x001000a0)#define nasys_program_mem_size            0x000fff60#define nasys_program_mem_end   ((void *) 0x00200000)#define nasys_data_mem          ((void *) 0x001000a0)#define nasys_data_mem_size               0x000fff60#define nasys_data_mem_end      ((void *) 0x00200000)#define nasys_stack_top         ((void *) 0x00200000) #define __nios_catch_irqs__          1    // Include panic handler for all irqs (needs uart)#define __nios_use_constructors__    1    // Call c++ static constructors#define __nios_use_small_printf__    1    // Smaller non-ANSI printf, with no floating point#define nasys_has_icache             0    // True if instruction cache present#define nasys_icache_size            2048 // Size in bytes of instruction cache#define nasys_icache_line_size       32   // Size in bytes of each icache line#define nasys_icache_line_size_log2  5    // Log2 size in bytes of each icache line#define nasys_has_dcache             0    // True if instruction cache present#define nasys_dcache_size            1024 // Size in bytes of data cache#define nasys_dcache_line_size       4    // Size in bytes of each dcache line#define nasys_dcache_line_size_log2  2    // Log2 size in bytes of each dcache line#define PLUGS_PLUG_COUNT             5    // Maximum number of plugs#define PLUGS_ADAPTER_COUNT          2    // Maximum number of adapters#define PLUGS_DNS                    1    // Have routines for DNS lookups#define PLUGS_PING                   1    // Respond to icmp echo (ping) messages#define PLUGS_TCP                    1    // Support tcp in/out connections#define PLUGS_IRQ                    1    // Run at interrupte level#define PLUGS_DEBUG                  1    // Support debug routines#define nm_system_name_string "fifth_nios2_system"#define nm_cpu_name_string "cpu"#define nm_monitor_string "design(5)"#define nm_cpu_architecture nios2#define nm_cpu_architecture_string "nios2"#define nios2 1// Structures and Routines For Each Peripheral
// Nios CPU Routines
void nr_zerorange(char *rangeStart,int rangeByteCount);
void nr_jumptoreset(void);

typedef void (*nios_callfromresetproc)(void);
void nr_callfromreset(nios_callfromresetproc procptr);

// Nios ISR Manager Routines
typedef void (*nios_isrhandlerproc)(int context);
typedef void (*nios_isrhandlerproc2)(int context,int irq_number,int interruptee_pc);
void nr_installuserisr(int trapNumber,nios_isrhandlerproc handlerProc,int context);
void nr_installuserisr2(int trapNumber,nios_isrhandlerproc2 handlerProc,int context);

// Nios GDB Stub Functions
void nios_gdb_install(int active);
#define nios_gdb_breakpoint() __asm__ volatile ("break")

// Nios OCI Defines
#define nios_oci_breakpoint() __asm__ volatile ("break")

// Default UART routines
void nr_txchar(int c);
void nr_txchar2(int c, int channel);
void nr_txstring(const char *s);
int nr_rxchar(void);

// Debug UART routines
void nr_debug_txchar(int c);
void nr_debug_txstring(const char *s);
int nr_debug_rxchar(void);

// Nios Private Printf Routines
int nr_printf(const char *fmt,...);
//int nr_fprintf( FILE *fp, const char *fmt, ... )
int nr_sprintf(char *sOut,const char *fmt,...);

#define	nk_stdout       1
#define nk_stderr       2

#if (__nios_use_small_printf__ && !defined(__nios_use_large_printf))
	#define printf nr_printf
	#define fprintf nr_fprintf
	#define sprintf nr_sprintf
    #define setbuf(v1,v2) nr_setbuf(v1,v2)   // does nothing
#endif


// Include nios cache-control definitions and macros
#include "nios_cache.h"
#include "nios2.h"
// UART Registerstypedef volatile struct	{	int np_uartrxdata;      // Read-only, 8-bit	int np_uarttxdata;      // Write-only, 8-bit	int np_uartstatus;      // Read-only, 8-bit	int np_uartcontrol;     // Read/Write, 9-bit	int np_uartdivisor;     // Read/Write, 16-bit, optional	int np_uartendofpacket; // Read/Write, end-of-packet character	} np_uart;// UART Status Register Bitsenum	{	np_uartstatus_eop_bit  = 12,	np_uartstatus_cts_bit  = 11,	np_uartstatus_dcts_bit = 10,	np_uartstatus_e_bit    = 8,	np_uartstatus_rrdy_bit = 7,	np_uartstatus_trdy_bit = 6,	np_uartstatus_tmt_bit  = 5,	np_uartstatus_toe_bit  = 4,	np_uartstatus_roe_bit  = 3,	np_uartstatus_brk_bit  = 2,	np_uartstatus_fe_bit   = 1,	np_uartstatus_pe_bit   = 0,	np_uartstatus_eop_mask  = (1<<12),	np_uartstatus_cts_mask  = (1<<11),	np_uartstatus_dcts_mask = (1<<10),	np_uartstatus_e_mask    = (1<<8),	np_uartstatus_rrdy_mask = (1<<7),	np_uartstatus_trdy_mask = (1<<6),	np_uartstatus_tmt_mask  = (1<<5),	np_uartstatus_toe_mask  = (1<<4),	np_uartstatus_roe_mask  = (1<<3),	np_uartstatus_brk_mask  = (1<<2),	np_uartstatus_fe_mask   = (1<<1),	np_uartstatus_pe_mask   = (1<<0)	};// UART Control Register Bitsenum	{	np_uartcontrol_ieop_bit  = 12,	np_uartcontrol_rts_bit   = 11,	np_uartcontrol_idcts_bit = 10,	np_uartcontrol_tbrk_bit  = 9,	np_uartcontrol_ie_bit    = 8,	np_uartcontrol_irrdy_bit = 7,	np_uartcontrol_itrdy_bit = 6,	np_uartcontrol_itmt_bit  = 5,	np_uartcontrol_itoe_bit  = 4,	np_uartcontrol_iroe_bit  = 3,	np_uartcontrol_ibrk_bit  = 2,	np_uartcontrol_ife_bit   = 1,	np_uartcontrol_ipe_bit   = 0,	np_uartcontrol_ieop_mask  = (1<<12),	np_uartcontrol_rts_mask   = (1<<11),	np_uartcontrol_idcts_mask = (1<<10),	np_uartcontrol_tbrk_mask  = (1<<9),	np_uartcontrol_ie_mask    = (1<<8),	np_uartcontrol_irrdy_mask = (1<<7),	np_uartcontrol_itrdy_mask = (1<<6),	np_uartcontrol_itmt_mask  = (1<<5),	np_uartcontrol_itoe_mask  = (1<<4),	np_uartcontrol_iroe_mask  = (1<<3),	np_uartcontrol_ibrk_mask  = (1<<2),	np_uartcontrol_ife_mask   = (1<<1),	np_uartcontrol_ipe_mask   = (1<<0)	};// UART Routinesint nr_uart_rxchar(np_uart *uartBase);        // 0 for default UARTvoid nr_uart_txcr(void);void nr_uart_txchar(int c,np_uart *uartBase); // 0 for default UARTvoid nr_uart_txhex(int x);                     // 16 or 32 bitsvoid nr_uart_txhex16(short x);void nr_uart_txhex32(long x);void nr_uart_txstring(char *s);// ----------------------------------------------// Timer Peripheral// Timer Registerstypedef volatile struct	{	int np_timerstatus;  // read only, 2 bits (any write to clear TO)	int np_timercontrol; // write/readable, 4 bits	int np_timerperiodl; // write/readable, 16 bits	int np_timerperiodh; // write/readable, 16 bits	int np_timersnapl;   // read only, 16 bits	int np_timersnaph;   // read only, 16 bits	} np_timer;// Timer Register Bitsenum	{	np_timerstatus_run_bit    = 1, // timer is running	np_timerstatus_to_bit     = 0, // timer has timed out	np_timercontrol_stop_bit  = 3, // stop the timer	np_timercontrol_start_bit = 2, // start the timer	np_timercontrol_cont_bit  = 1, // continous mode	np_timercontrol_ito_bit   = 0, // enable time out interrupt	np_timerstatus_run_mask    = (1<<1), // timer is running	np_timerstatus_to_mask     = (1<<0), // timer has timed out	np_timercontrol_stop_mask  = (1<<3), // stop the timer	np_timercontrol_start_mask = (1<<2), // start the timer	np_timercontrol_cont_mask  = (1<<1), // continous mode	np_timercontrol_ito_mask   = (1<<0)  // enable time out interrupt	};// Timer Routinesint nr_timer_milliseconds(void);	// Starts on first call, hogs timer1.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -