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

📄 microblaze.h

📁 嵌入式系统开发 TOPPERS and JSP Kernel Release 1.3 TOPPERS = Toyohashi Open Platform for Embedded Real-Tim
💻 H
字号:
/* *  TOPPERS/JSP Kernel *      Toyohashi Open Platform for Embedded Real-Time Systems/ *      Just Standard Profile Kernel *  *  Copyright (C) 2000-2002 by Embedded and Real-Time Systems Laboratory *                              Toyohashi Univ. of Technology, JAPAN *  *  惧淡螟侯涪荚は·Free Software Foundation によって给山されている  *  GNU General Public License の Version 2 に淡揭されている掘凤か·笆 *  布の(1)×(4)の掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェ *  アを猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· *  网脱と钙ぶ∷することを痰浸で钓满するˉ *  (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 *      涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 *      スコ〖ド面に崔まれていることˉ *  (2) 塑ソフトウェアを浩网脱材墙なバイナリコ〖ド∈リロケ〖タブルオブ *      ジェクトファイルやライブラリなど∷の妨で网脱する眷圭には·网脱 *      に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯涪山绩· *      この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *  (3) 塑ソフトウェアを浩网脱稍材墙なバイナリコ〖ドの妨または怠达に寥 *      み哈んだ妨で网脱する眷圭には·肌のいずれかの掘凤を塔たすことˉ *    (a) 网脱に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯 *        涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *    (b) 网脱の妨轮を·侍に年める数恕によって·惧淡螟侯涪荚に鼠桂する *        ことˉ *  (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 *      巢からも·惧淡螟侯涪荚を倘勒することˉ *  *  塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚は· *  塑ソフトウェアに簇して·その努脱材墙拉も崔めて·いかなる瘦沮も乖わ *  ないˉまた·塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じたい *  かなる禄巢に簇しても·その勒扦を砷わないˉ *  *  @(#) $Id: microblaze.h,v 1.1 2002/04/05 08:47:14 honda Exp $ */#ifndef _MICROBLAZE_H_#define _MICROBLAZE_H_#include "sys_config.h"#ifndef _MACRO_ONLYtypedef unsigned char   byte;typedef volatile byte   IOREG;          typedef unsigned short  word;typedef volatile word   HIOREG;typedef volatile int    LIOREG;#endif /* _MACRO_ONLY *//* *  MSRのビット */#define MSR_IE 0x02#define MSR_BE 0x01/* * INTC Registers */#define INTC_INT_STATUS_REG    0x00#define INTC_INT_PENDING_REG   0x04#define INTC_INT_ENABLE_REG    0x08#define INTC_INT_ACK_REG       0x0c#define INTC_SET_INT_ENABLE    0x10#define INTC_CLEAR_INT_ENABLE  0x14#define INTC_INT_VECTOR_REG    0x18#define INTC_MASTER_ENABLE_REG 0x1c/*  * Masks for the INTC Registers */#define INTC_HIE_MASK 0x2#define INTC_ME_MASK  0x1#ifndef _MACRO_ONLY#define INTC_ISR ((LIOREG *)(INTC_BASE + INTC_INT_STATUS_REG))#define INTC_IPR ((LIOREG *)(INTC_BASE + INTC_INT_PENDING_REG))#define INTC_IER ((LIOREG *)(INTC_BASE + INTC_INT_ENABLE_REG))#define INTC_IAR ((LIOREG *)(INTC_BASE + INTC_INT_ACK_REG))#define INTC_SIE ((LIOREG *)(INTC_BASE + INTC_SET_INT_ENABLE))#define INTC_CIE ((LIOREG *)(INTC_BASE + INTC_CLEAR_INT_ENABLE))#define INTC_IVR ((LIOREG *)(INTC_BASE + INTC_INT_VECTOR_REG))#define INTC_MER ((LIOREG *)(INTC_BASE + INTC_MASTER_ENABLE_REG))/* *  INTC拎侯簇眶 */Inline voidintc_start(void){  *INTC_MER = INTC_HIE_MASK | INTC_ME_MASK;}Inline voidintc_disable_allinterrupt(){  *INTC_MER = 0;}Inline voidintc_enable_interrupt(UW mask){  *INTC_SIE = mask;}Inline voidintc_disable_interrupt(UW mask){  *INTC_CIE = mask;}Inline voidintc_ack_interrupt(UW mask){  *INTC_IAR = mask;}#endif /* _MACRO_ONLY *//* * タイマドライバ脱のマクロ年盗 *//* * Masks for the control/status register */#define TIMER_ENABLE_ALL    0x400#define TIMER_PWM           0x200#define TIMER_INTERRUPT     0x100#define TIMER_ENABLE        0x080#define TIMER_ENABLE_INTR   0x040#define TIMER_RESET         0x020#define TIMER_RELOAD        0x010#define TIMER_EXT_CAPTURE   0x008#define TIMER_EXT_COMPARE   0x004#define TIMER_DOWN_COUNT    0x002#define TIMER_CAPTURE_MODE  0x001#define TIMER_CONTROL_STATUS_0  0x0#define TIMER_COMPARE_CAPTURE_0 0x4#define TIMER_COUNTER_0         0x8#define TIMER_CONTROL_STATUS_1  0x10#define TIMER_COMPARE_CAPTURE_1 0x14#define TIMER_COUNTER_1         0x18#ifndef _MACRO_ONLY#define TIMER_TCSR0 ((LIOREG *)(TIMER_BASE + TIMER_CONTROL_STATUS_0))#define TIMER_TCCR0 ((LIOREG *)(TIMER_BASE + TIMER_COMPARE_CAPTURE_0))#define TIMER_TCR0  ((LIOREG *)(TIMER_BASE + TIMER_COUNTER_0))#define TIMER_TCSR1 ((LIOREG *)(TIMER_BASE + TIMER_CONTROL_STATUS_1))#define TIMER_TCCR1 ((LIOREG *)(TIMER_BASE + TIMER_COMPARE_CAPTURE_1))#define TIMER_TCR1  ((LIOREG *)(TIMER_BASE + TIMER_COUNTER_1))#endif  /* _MACRO_ONLY *//* *  UARTドライバ脱のマクロ年盗 *//* * Error condition masks  */#define UARTLITE_PAR_ERROR     0x80#define UARTLITE_FRAME_ERROR   0x40#define UARTLITE_OVERRUN_ERROR 0x20/* * Other status bit masks */#define UARTLITE_INTR_ENABLED       0x10#define UARTLITE_TX_FIFO_FULL       0x08#define UARTLITE_TX_FIFO_EMPTY      0x04#define UARTLITE_RX_FIFO_FULL       0x02#define UARTLITE_RX_FIFO_VALID_DATA 0x01/* * Control bit masks  */#define UARTLITE_ENABLE_INTR  0x10#define UARTLITE_RST_RX_FIFO  0x02#define UARTLITE_RST_TX_FIFO  0x01/* * UARTLITE Registers */#define UARTLITE_RECEIVE_REG  0x0#define UARTLITE_TRANSMIT_REG 0x4#define UARTLITE_STATUS_REG   0x8#define UARTLITE_CONTROL_REG  0xc#ifndef _MACRO_ONLY#define UARTLITE_RXREG ((LIOREG *)(UART_BASE + UARTLITE_RECEIVE_REG))#define UARTLITE_TXREG ((LIOREG *)(UART_BASE + UARTLITE_TRANSMIT_REG))#define UARTLITE_SRREG ((LIOREG *)(UART_BASE + UARTLITE_STATUS_REG))#define UARTLITE_CTREG ((LIOREG *)(UART_BASE + UARTLITE_CONTROL_REG))Inline voiduart_putc(unsigned char c){  while(*UARTLITE_SRREG & UARTLITE_TX_FIFO_FULL);  *UARTLITE_TXREG = c;}Inline unsigned charuart_getc(void){  while(!(*UARTLITE_SRREG & UARTLITE_RX_FIFO_VALID_DATA));  return (char)(*UARTLITE_RXREG);}Inline voiduart_ena_int(void){  *UARTLITE_CTREG |= UARTLITE_ENABLE_INTR;}Inline voiduart_dis_int(void){  *UARTLITE_CTREG &= ~(UARTLITE_ENABLE_INTR);}#endif  /* _MACRO_ONLY */#endif /* _MICROBLAZE_H_*/

⌨️ 快捷键说明

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