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

📄 hplat45db.nc

📁 tinyos2.0版本驱动
💻 NC
字号:
/* * Copyright (c) 2002-2005 Intel Corporation * All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE      * file. If you do not find these files, copies can be found by writing to * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA,  * 94704.  Attention:  Intel License Inquiry. *//** * HPL for Atmel's AT45DB family of serial dataflash chips.  * Provides access to all basic AT45DB operations plus operations to  * wait for the flash to go idle or finish a comparison. See the AT45DB * family datasheets for full details on these operations. * <p> * This interface only supports one operation at a time. * * @author David Gay */#include "HplAt45db.h"interface HplAt45db {  /**   * Wait for a "Group A" operation to complete (essentially all non-buffer   * operations). You should use waitComapre if you are waiting for a   * comparison to complete. waitIdleDone will be signaled when the operation   * is complete.   */  command void waitIdle();  /**   * Signaled when the flash is idle.   */  event void waitIdleDone();  /**   * Wait for a buffer-flash comparison to complete. waitCompareDone will   * be signaled when that occurs.   */  command void waitCompare();  /**   * Signaled when the buffer-flash comparison is complete.   * @param compareOk TRUE if the comparison succeeded, FALSE otherwise.   */  event void waitCompareDone(bool compareOk);  /**   * Read a page from flash into a buffer. fillDone will be signaled.   * @param cmd AT45_C_FILL_BUFFER1 to read into buffer 1,    *   AT45_C_FILL_BUFFER2 to read into buffer 2   * @param page Page to read (must be less than AT45_MAX_PAGES)   */  command void fill(uint8_t cmd, at45page_t page);  /**   * Signaled when fill command sent (use waitIdle to detect when   * fill command completes)   */  event void fillDone();  /**   * Write a buffer to a flash page. flushDone will be signaled.   * @param cmd AT45_C_FLUSH_BUFFER1 to write buffer 1 to flash,   *   AT45_C_FLUSH_BUFFER2 to write buffer 2 to flash,   *   AT45_C_QFLUSH_BUFFER1 to write buffer 1 to flash w/o erase   *   (page must have been previously erased),   *   AT45_C_QFLUSH_BUFFER2 to write buffer 2 to flash w/o erase   *   (page must have been previously erased),   * @param page Page to write (must be less than AT45_MAX_PAGES)   */  command void flush(uint8_t cmd, at45page_t page);  /**   * Signaled when flush command sent (use waitIdle to detect when   * flush command completes)   */  event void flushDone();  /**   * Compare a page from flash with a buffer. compareDone will be signaled.   * @param cmd AT45_C_COMPARE_BUFFER1 to compare buffer 1,    *   AT45_C_COMPARE_BUFFER2 to compare buffer 2   * @param page Page to compare with (must be less than AT45_MAX_PAGES)   */  command void compare(uint8_t cmd, at45page_t page);  /**   * Signaled when compare command sent (use waitCompare to detect when   * compare command completes and find out comparison result)   */  event void compareDone();  /**   * Erase a flash page. eraseDone will be signaled.   * @param cmd must be AT45_C_ERASE_PAGE   * @param page Page to compare with (must be less than AT45_MAX_PAGES)   */  command void erase(uint8_t cmd, at45page_t page);  /**   * Signaled when erase command sent (use waitIdle to detect when   * erase command completes)   */  event void eraseDone();  /**   * Read from a flash buffer. readDone will be signaled.   * @param cmd AT45_C_READ_BUFFER1 to read from buffer 1,   *   AT45_C_READ_BUFFER2 to read from buffer 2   * @param offset Offset in page at which to start reading - must be between   *   0 and AT45_PAGE_SIZE - 1    * @param data Buffer in which to place read data. The buffer is "returned"   *   at readDone time.   * @param n Number of bytes to read (> 0). offset + n must be <=    *   AT45_PAGE_SIZE   */  command void readBuffer(uint8_t cmd, at45pageoffset_t offset,  		    uint8_t *PASS COUNT_NOK(n) data, uint16_t n);  /**   * Read directly from flash. readDone will be signaled.   * @param cmd AT45_C_READ_CONTINUOUS or AT45_C_READ_PAGE. When the end of   *   a page is read, AT45_C_READ_CONTINUOUS continues on the next page,   *   while AT45_C_READ_PAGE continues at the start of the same page.   * @param page Page to read from   * @param offset Offset in page at which to start reading - must be between   *   0 and AT45_PAGE_SIZE - 1    * @param data Buffer in which to place read data. The buffer is "returned"   *   at readDone time.   * @param n Number of bytes to read (> 0).   */  command void read(uint8_t cmd, at45page_t page, at45pageoffset_t offset,  		    uint8_t *PASS COUNT_NOK(n) data, at45pageoffset_t n);  /**   * Signaled when data has been read from the buffer. The data buffer   * is "returned".   */  event void readDone();  /**   * Compute CRC of data in a flash buffer (using the CRC function from crc.h).   * crcDone will be signaled.   * @param cmd AT45_C_READ_BUFFER1 to compute CRC from buffer 1,   *   AT45_C_READ_BUFFER2 to compute CRC from buffer 2   * @param page ignored (reserved for future use)   * @param offset Offset in page at which to start reading - must be between   *   0 and AT45_PAGE_SIZE - 1    * @param n Number of bytes to read (> 0). offset + n must be <=    *   AT45_PAGE_SIZE   * @param baseCrc initial CRC value - use 0 if computing a "standalone"   *   CRC, or a previous crc result if computing a CRC over several   *   flash pages   */  command void crc(uint8_t cmd, at45page_t page, at45pageoffset_t offset,		   at45pageoffset_t n, uint16_t baseCrc);  /**   * Signaled when CRC has been computed.   * @param computedCrc CRC value   */  event void crcDone(uint16_t computedCrc);  /**   * Write some data to a flash buffer, and optionally the flash itself.    * writeDone will be signaled.   * @param cmd One of AT45_C_WRITE_BUFFER1/2 or AT45_C_WRITE_MEM_BUFFER1/2   *   to write respectively to buffer 1/2, or to buffer 1/2 and the    *   specified main memory page.   * @param page Page to write when cmd is AT45_C_WRITE_MEM_BUFFER1/2   * @param offset Offset in page at which to start writing - must be between   *   0 and AT45_PAGE_SIZE - 1    * @param data Data to write. The buffer is "returned" at writeDone time.   * @param n Number of bytes to write (> 0). offset + n must be <=    *   AT45_PAGE_SIZE   */  command void write(uint8_t cmd, at45page_t page, at45pageoffset_t offset,  		     uint8_t *PASS COUNT_NOK(n) data, at45pageoffset_t n);  /**   * Signaled when data has been written to the buffer. The data buffer   * is "returned".   */  event void writeDone();}

⌨️ 快捷键说明

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