FBCmd.h
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:3k
源码类别:

DSP编程

开发平台:

C/C++

  1. /***********************************************************
  2.  *          (C) COPYRIGHT TEXAS INSTRUMENTS, INC. 2000, 2001
  3.  * FBCmd.h -- Process FlashBurn Target Component commands
  4.  *            for 64x TEB/EMU
  5.  */
  6. /* Change Log:
  7.  */
  8. #ifndef __fbcmd__
  9. #define __fbcmd__
  10. #include "type.h"
  11. #include "fbtc642.h"
  12. #define ShortsToLong(vHighHalf, vLowHalf)  
  13. ((long)(((unsigned long)((u16)(vHighHalf)) << 16) | ((unsigned long)((u16)(vLowHalf)))))
  14. #define ShortsToULong(vHighHalf, vLowHalf)  
  15. ((unsigned long)(((unsigned long)((u16)(vHighHalf)) << 16) | ((unsigned long)((u16)(vLowHalf)))))
  16. /* -----------------------
  17.  * Prototypes from FBCMD.C
  18.  * -----------------------
  19.  */
  20. /* Given the command message,
  21.  * carry out the command and prepare the
  22.  * response.
  23.  */
  24. void doCommand(void);
  25. /* --------------------------
  26.  * Prototypes from FBURNCMD.C
  27.  * --------------------------
  28.  */
  29. /* Set/Get Flash Memory base address.
  30.  * The Host may want me to change where
  31.  * I think the flash memory is, rather
  32.  * than have me use my hard-coded flash
  33.  * base address (FLASH_START in header
  34.  * file c6416TEB.h). It is set in response to a
  35.  * Set FLASHBASE Address command from Host.
  36.  */
  37. void SetFlashBase(unsigned long val);
  38. volatile u8 *GetFlashBase(void);
  39. /* Set/Get Flash Memory size.
  40.  * The Host may want me to change how big
  41.  * I think the flash memory is, rather
  42.  * than have me use my hard-coded flash
  43.  * size (FLASH_SIZE in header file
  44.  * c6416teb.h)
  45.  */
  46. void SetFlashSize(unsigned long val);
  47. unsigned long GetFlashSize(void);
  48. /* Initialize flash memory pointers
  49.  * to a known flash memory address
  50.  */
  51. void InitFlash(void);
  52. /* Initialize flash memory pointers
  53.  * to an address
  54.  */
  55. void SetFlashAddr(u8 *addr);
  56. /* Burn data into flash memory starting
  57.  * at current flash memory pointer
  58.  * (flashnext).
  59.  */
  60. void BurnFlash(u8 *data, u16 nBytes);
  61. /* Burn data into flash memory starting
  62.  * at current flash memory pointer.
  63.  */
  64. volatile u8 *GetNextFlashAddr(void);
  65. /* Erase flash memory starting
  66.  * at current flash memory pointer.
  67.  * Erase from current start pointer to
  68.  * end of flash memory.
  69.  */
  70. void EraseFlash();
  71. /* Checksum Processing.
  72.  * A simple modulo-16 additive cksum
  73.  * which adds the carry bit back into
  74.  * the accumulator.
  75.  */
  76.  /* Initialize to a value */
  77. void CKSSet(u16 val);
  78.  /* Returns the current value */
  79. u16 CKSGet(void);
  80.  /* Accumulate a new value */
  81. u16 CKSAccum(unsigned char val);
  82.  /* Accumulate a buffer */
  83. u16 CKSAccumBuf(unsigned char *buf, unsigned int len);
  84. /* Return a flash memory byte
  85.  */
  86. u8 GetFlashVal(unsigned long addr);
  87. /* Sends a block of flash bytes to host
  88.  * Limited to 256 bytes.
  89.  */
  90. void SendFlashBufToHost(u16 cmd, unsigned long addr, u16 bytecount);
  91. #endif