?? board.h
字號:
/**********************************************************************
chengjy@felab, copyright 2002-2004
board.h
采集板用戶程序常數定義
**********************************************************************/
#ifndef _BOARD_H
#define _BOARD_H
/*bootline在內存中的位置,與bsp相同*/
#define LOCAL_MEM_LOCAL_ADRS 0x0
#define BOOT_LINE_OFFSET 0x4200
#define BOOT_LINE_ADRS ((char *) (LOCAL_MEM_LOCAL_ADRS+BOOT_LINE_OFFSET))
/*~~~~~~~~~~~~~~~~~~~~板子標志結構~~~~~~~~~~~~~~~~~~~~*/
struct BoardIndex
{
char swVersion; /*軟件版本號*/
char swDiscri[100]; /*軟件描述*/
char localIP[16]; /*本地IP*/
char remoteIP[16]; /*控制端IP*/
int localPort; /*通訊端口號*/
};
#define LOCAL_PORT_CMD 2001 /*命令通道端口號*/
/*~~~~~~~~~~~~~~~~~~~~板子工作環境~~~~~~~~~~~~~~~~~~~~*/
struct BoardWorkEnv
{
int boardInit; /*boardInit單個位用來表示初始化狀態*/
char autoBootFlag; /*標志采集板是完成階段還是調試階段*/
char dmaAutoflag; /*定義采集板的dma是由硬件自動控制還是零槽軟件控制*/
};
#define BOARD_UNINIT 0x00
#define BOARD_F9656_INITED 0x01
#define BOARD_NET_INITED 0x02
#define BOARD_GENET_INITED 0x04
#define BOARD_FLASH_INITED 0x08
#define BOARD_SOFTPRAM_INITED 0x80
#define BOARD_INITED 0x9F
#define DMA_AUTO_DISABLE 0 /*軟件控制*/
#define DMA_AUTO_ENABLE 1 /*硬件控制*/
#define DFT_DMA_AUTO DMA_AUTO_ENABLE
#define USR_DMA_AUTO DMA_AUTO_DISABLE
/*~~~~~~~~~~~~~網絡命令通道緩沖隊列~~~~~~~~~~~~~~*/
/*隊列的單節結構*/
struct cmdSingle
{
struct cmdSingle *pNext;
unsigned char *pBuff;
};
/*定義隊列添加的優先級*/
#define QUEUE_PRI_HIGH 1 /*隊頭*/
#define QUEUE_PRI_LOW 0 /*隊尾*/
/*定義隊列的個數,對于雙緩沖隊列,定義為2*/
#define QUEUE_NUM 2 /*必須是大于0的整數*/
#define QUEUE_INDEX_RECV 0
#define QUEUE_INDEX_SEND 1
/*定義返回狀態*/
#define STATUS_NORMAL 0x00
#define STATUS_ERROR 0x01
#define STATUS_WARNING 0x02
#define STATUS_INVALID 0x03
#define STATUS_UNAVAILABLE 0x04
#define STATUS_DISABLE 0x05
/*本地的網絡端口號*/
#define LOCAL_SERVER_PORT 2001 /*服務器端套接字的端口號*/
/*命令通道和數據通道的最大包長度*/
#define NET_MSG_MAX_SIZE 0x1000 /*4096bytes*/
/*服務器初始化情況*/
#define NET_INIT_LISTENSKT 0x01
#define NET_INIT_COMMUSKT 0x02
#define NET_INIT_NULL 0x00
/*定義網絡關閉時是否要重新初始化*/
#define MODE_NET_DEFAULT 0 /*重新初始化*/
#define MODE_NET_REINIT 1 /*不再初始化*/
/*定義任務名*/
#define TNAME_NETRECV "tNetRecv"
#define TNAME_NETEXPLAIN "tNetExplain"
#define TNAME_NETSEND "tNetSend"
#define TNAME_NETINIT "tNetInit"
#define TNAME_NETCHECKLINK "tNetCheckLink"
#define TNAME_NETCLOSEALL "tNetCloseAll"
/*用戶任務堆棧大小*/
#define USER_STACK_SIZE 2000
/*taskSpawn使用的用戶任務優先級*/
#define TPRI_NETRECV 114
#define TPRI_NETEXPLAIN 116
#define TPRI_NETSEND 114
#define TPRI_NETCLOSEALL 110
#define TPRI_NETINIT 112
#define TPRI_NETCHECKLINK 110
#define LOG_NETMSG_HEAD /*打印接收到的網絡消息的前8BYTE*/
/*~~~~~~~~~~~~~~~~~~~FLASH 相關參數~~~~~~~~~~~~~~~~~~~~~*/
/*FLASH地址空間*/
#define FLASH_BASE_ADDR ((UINT)0xFF000000) /*FLASH起始地址*/
#define FLASH_DATA_BLOCK_NUM 63 /*實際包含63塊*/
#define FLASH_DATA_BLOCK_SIZE_W ((UINT)0x00008000) /*單片容量,單位WORD*/
#define FLASH_DATA_CPU 1 /*vxWorks存放的block,main block0和8個para block空出*/
#define FLASH_DATA_BOOTLINE 30 /*bootline存放的block*/
/*FLASH操作參數*/
#define FLASH_VALUE unsigned short /*FLASH 位寬16bit*/
/*flash字序*/
#define FLASH_CHANGE_ORDER /*由于筆者使用測試板的數據線接成bit0<->bit7,bit1<->bit6,因此定義此宏,用戶可以使用undef或者直接注釋掉此宏*/
#ifndef FLASH_CHANGE_ORDER /*使用宏直接改變*/
/*FLASH狀態轉換參數*/
#define FLASH_CC_RESERVED ((FLASH_VALUE)0x0000)
#define FLASH_CC_READ_ARRAY ((FLASH_VALUE)0x00FF)
#define FLASH_CC_PROGRAM_SETUP ((FLASH_VALUE)0x0040)
#define FLASH_CC_ALTERPROG_SETUP ((FLASH_VALUE)0x0010)
#define FLASH_CC_ERASE_SETUP ((FLASH_VALUE)0x0020)
#define FLASH_CC_ERASE_CONFIRM ((FLASH_VALUE)0x00D0)
#define FLASH_CC_RESUME ((FLASH_VALUE)0x00D0)
#define FLASH_CC_SUSPEND ((FLASH_VALUE)0x00B0)
#define FLASH_CC_READ_STATUS ((FLASH_VALUE)0x0070)
#define FLASH_CC_CLEAR_STATUS ((FLASH_VALUE)0x0050)
#define FLASH_CC_READ_IDENTIFY ((FLASH_VALUE)0x0090)
#define FLASH_CC_READ_QUERY ((FLASH_VALUE)0x0098)
#define FLASH_CC_CONFIG_SETUP ((FLASH_VALUE)0x0060)
#define FLASH_CC_CONFIG_CONFIRM ((FLASH_VALUE)0x00D0)
/*狀態寄存器檢測*/
#define FLASH_CC_SET_CHECK1 ((FLASH_VALUE)0x0080) /*program結束*/
#define FLASH_CC_SET_CHECK2 ((FLASH_VALUE)0x001A) /*program可能出錯的位置*/
#define FLASH_CC_ERASE_CHECK1 ((FLASH_VALUE)0x0080) /*erase結束*/
#define FLASH_CC_ERASE_CHECK2 ((FLASH_VALUE)0x0010) /*erase可能出錯的位置*/
/*FLASH芯片類型*/
#define FLASH_28F320C3_ID ((FLASH_VALUE)0x0089)
#define FLASH_28F320C3_IDENT_T ((FLASH_VALUE)0x88C4)
#define FLASH_28F320C3_IDENT_B ((FLASH_VALUE)0x88C5)
#else /*defined FLASH_CHANGE_ORDER,不使用宏,用于第二版*/
/*FLASH狀態轉換參數*/
#define FLASH_CC_RESERVED ((FLASH_VALUE)0x0000)
#define FLASH_CC_READ_ARRAY ((FLASH_VALUE)0xFF00)
#define FLASH_CC_PROGRAM_SETUP ((FLASH_VALUE)0x0200)
#define FLASH_CC_ALTERPROG_SETUP ((FLASH_VALUE)0x0800)
#define FLASH_CC_ERASE_SETUP ((FLASH_VALUE)0x0400)
#define FLASH_CC_ERASE_CONFIRM ((FLASH_VALUE)0x0B00)
#define FLASH_CC_RESUME ((FLASH_VALUE)0x0B00)
#define FLASH_CC_SUSPEND ((FLASH_VALUE)0x0D00)
#define FLASH_CC_READ_STATUS ((FLASH_VALUE)0x0E00)
#define FLASH_CC_CLEAR_STATUS ((FLASH_VALUE)0x0A00)
#define FLASH_CC_READ_IDENTIFY ((FLASH_VALUE)0x0900)
#define FLASH_CC_READ_QUERY ((FLASH_VALUE)0x1900)
#define FLASH_CC_CONFIG_SETUP ((FLASH_VALUE)0x0600)
#define FLASH_CC_CONFIG_CONFIRM ((FLASH_VALUE)0x0B00)
/*狀態寄存器檢測*/
#define FLASH_CC_SET_CHECK1 ((FLASH_VALUE)0x0100)
#define FLASH_CC_SET_CHECK2 ((FLASH_VALUE)0x5800)
#define FLASH_CC_ERASE_CHECK1 ((FLASH_VALUE)0x0100)
#define FLASH_CC_ERASE_CHECK2 ((FLASH_VALUE)0x0800)
/*FLASH芯片類型*/
#define FLASH_28F320C3_ID ((FLASH_VALUE)0x9100)
#define FLASH_28F320C3_IDENT_T ((FLASH_VALUE)0x2311)
#define FLASH_28F320C3_IDENT_B ((FLASH_VALUE)0xA311)
#endif /*FLASH_CHANGE_ORDER*/
/*flash地址轉換到cpu地址*/
#define FLASH2CPU_ADDR(flashAddr) ((FLASH_VALUE*)((UINT)(flashAddr)*8+FLASH_BASE_ADDR))
/*flash操作最長時間*/
#define FLASH_ERASE_BLOCK_TIME 5000 /*最多50000次*/
#endif /*_BOARD_H*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -