XWOS API
4.0
XWOS C/C++ API参考手册
|
SPI Flash W25Qxx Driver 更多...
#include <xwos/standard.h>
#include <string.h>
#include <xwos/osal/thd.h>
#include <xwcd/ds/spi/peripheral.h>
#include <xwcd/peripheral/spi/flash/w25qxx/device.h>
#include <xwcd/peripheral/spi/flash/w25qxx/driver.h>
函数 | |
xwer_t | xwds_w25qxx_drv_start (struct xwds_device *dev) |
W25QXX基本驱动:启动设备 | |
xwer_t | xwds_w25qxx_drv_stop (struct xwds_device *dev) |
W25QXX基本驱动:停止设备 | |
xwer_t | xwds_w25qxx_drv_resume (struct xwds_device *dev) |
W25QXX基本驱动:暂停设备 | |
xwer_t | xwds_w25qxx_drv_suspend (struct xwds_device *dev) |
W25QXX基本驱动:继续设备 | |
xwer_t | xwds_w25qxx_ctrl (struct xwds_w25qxx *w25qxx, xwu8_t instruction, xwu8_t address_size, xwu32_t address, xwu32_t dummy_cycles, const xwu8_t txd[], xwu8_t *rxb, xwsz_t size, xwtm_t to) |
W25QXX API:向W25QXX发送指令 | |
xwer_t | xwds_w25qxx_reset (struct xwds_w25qxx *w25qxx, xwtm_t to) |
W25QXX API:向W25QXX发送复位命令 | |
xwer_t | xwds_w25qxx_init_parameter (struct xwds_w25qxx *w25qxx, xwtm_t to) |
W25QXX API:初始化W25QXX的参数 | |
xwer_t | xwds_w25qxx_write_enable (struct xwds_w25qxx *w25qxx, xwtm_t to) |
W25QXX API:开启W25QXX的写操作 | |
xwer_t | xwds_w25qxx_write_disable (struct xwds_w25qxx *w25qxx, xwtm_t to) |
W25QXX API:关闭W25QXX的写操作 | |
xwer_t | xwds_w25qxx_read_sr (struct xwds_w25qxx *w25qxx, xwu32_t sridx, xwu8_t *srbuf, xwtm_t to) |
W25QXX API:读取W25QXX的SR寄存器 | |
xwer_t | xwds_w25qxx_check_idle (struct xwds_w25qxx *w25qxx, xwtm_t to) |
W25QXX API:检测W25QXX是否空闲 | |
xwer_t | xwds_w25qxx_wait_idle (struct xwds_w25qxx *w25qxx, xwtm_t period, xwtm_t to) |
W25QXX API:等待W25QXX是否空闲 | |
xwer_t | xwds_w25qxx_read_uid (struct xwds_w25qxx *w25qxx, xwu64_t *uidbuf, xwtm_t to) |
W25QXX API:读取W25QXX的UID | |
xwer_t | xwds_w25qxx_read_mid (struct xwds_w25qxx *w25qxx, xwu16_t *midbuf, xwtm_t to) |
W25QXX API:读取W25QXX的MID | |
xwer_t | xwds_w25qxx_read_jid (struct xwds_w25qxx *w25qxx, xwu32_t *jidbuf, xwtm_t to) |
W25QXX API:读取W25QXX的JID | |
xwer_t | xwds_w25qxx_read (struct xwds_w25qxx *w25qxx, xwu32_t address, xwu8_t *rxb, xwsz_t *size, xwtm_t to) |
W25QXX API:向W25QXX读取数据 | |
xwer_t | xwds_w25qxx_write (struct xwds_w25qxx *w25qxx, xwu32_t address, xwu8_t *txb, xwsz_t *size, xwtm_t to) |
W25QXX API:向W25QXX写入数据 | |
xwer_t | xwds_w25qxx_erase_sector (struct xwds_w25qxx *w25qxx, xwu32_t address, xwtm_t to) |
W25QXX API:擦除W25QXX的sector | |
xwer_t | xwds_w25qxx_erase_32kblk (struct xwds_w25qxx *w25qxx, xwu32_t address, xwtm_t to) |
W25QXX API:擦除W25QXX的32KiB的块 | |
xwer_t | xwds_w25qxx_erase_64kblk (struct xwds_w25qxx *w25qxx, xwu32_t address, xwtm_t to) |
W25QXX API:擦除W25QXX的64KiB的块 | |
xwer_t | xwds_w25qxx_erase_chip (struct xwds_w25qxx *w25qxx, xwtm_t to) |
W25QXX API:擦除W25QXX的全部数据 | |
SPI Flash W25Qxx Driver
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
在文件 driver.c 中定义.
xwer_t xwds_w25qxx_check_idle | ( | struct xwds_w25qxx * | w25qxx, |
xwtm_t | to | ||
) |
W25QXX API:检测W25QXX是否空闲
[in] | w25qxx | W25QXX对象指针 |
[in] | to | 期望唤醒的时间点 |
XWOK | 空闲 |
-EBUSY | 繁忙 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_w25qxx_ctrl | ( | struct xwds_w25qxx * | w25qxx, |
xwu8_t | instruction, | ||
xwu8_t | address_size, | ||
xwu32_t | address, | ||
xwu32_t | dummy_cycles, | ||
const xwu8_t | txd[], | ||
xwu8_t * | rxb, | ||
xwsz_t | size, | ||
xwtm_t | to | ||
) |
W25QXX API:向W25QXX发送指令
[in] | w25qxx | W25QXX对象指针 |
[in] | instruction | 指令 |
[in] | address_size | 地址信息长度 |
[in] | address | 地址 |
[in] | dummy_cycles | SPI通讯过程中的无效时钟周期 |
[in] | txd | SPI通讯过程中的发送数据的缓冲区 |
[out] | rxb | SPI通讯过程中的接收数据的缓冲区 |
[in] | size | SPI通讯过程中的缓冲区大小 |
[in] | to | 期望唤醒的时间点 |
w25qxx->spip.buscfgid
定义。to
表示等待超时的时间点:to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_w25qxx_drv_resume | ( | struct xwds_device * | dev | ) |
W25QXX基本驱动:暂停设备
xwer_t xwds_w25qxx_drv_start | ( | struct xwds_device * | dev | ) |
xwer_t xwds_w25qxx_drv_stop | ( | struct xwds_device * | dev | ) |
xwer_t xwds_w25qxx_drv_suspend | ( | struct xwds_device * | dev | ) |
W25QXX基本驱动:继续设备
xwer_t xwds_w25qxx_erase_32kblk | ( | struct xwds_w25qxx * | w25qxx, |
xwu32_t | address, | ||
xwtm_t | to | ||
) |
W25QXX API:擦除W25QXX的32KiB的块
[in] | w25qxx | W25QXX对象指针 |
[in] | address | 起始地址 |
[in] | to | 期望唤醒的时间点 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_w25qxx_erase_64kblk | ( | struct xwds_w25qxx * | w25qxx, |
xwu32_t | address, | ||
xwtm_t | to | ||
) |
W25QXX API:擦除W25QXX的64KiB的块
[in] | w25qxx | W25QXX对象指针 |
[in] | address | 起始地址 |
[in] | to | 期望唤醒的时间点 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_w25qxx_erase_chip | ( | struct xwds_w25qxx * | w25qxx, |
xwtm_t | to | ||
) |
W25QXX API:擦除W25QXX的全部数据
[in] | w25qxx | W25QXX对象指针 |
[in] | to | 期望唤醒的时间点 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_w25qxx_erase_sector | ( | struct xwds_w25qxx * | w25qxx, |
xwu32_t | address, | ||
xwtm_t | to | ||
) |
W25QXX API:擦除W25QXX的sector
[in] | w25qxx | W25QXX对象指针 |
[in] | address | 起始地址 |
[in] | to | 期望唤醒的时间点 |
<No error
xwer_t xwds_w25qxx_init_parameter | ( | struct xwds_w25qxx * | w25qxx, |
xwtm_t | to | ||
) |
W25QXX API:初始化W25QXX的参数
[in] | w25qxx | W25QXX对象指针 |
[in] | to | 期望唤醒的时间点 |
<No error
xwer_t xwds_w25qxx_read | ( | struct xwds_w25qxx * | w25qxx, |
xwu32_t | address, | ||
xwu8_t * | rxb, | ||
xwsz_t * | size, | ||
xwtm_t | to | ||
) |
W25QXX API:向W25QXX读取数据
[in] | w25qxx | W25QXX对象指针 |
[in] | address | 起始地址 |
[out] | rxb | 指向缓冲区的指针,通过此缓冲区返回数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
[in] | to | 期望唤醒的时间点 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_w25qxx_read_jid | ( | struct xwds_w25qxx * | w25qxx, |
xwu32_t * | jidbuf, | ||
xwtm_t | to | ||
) |
W25QXX API:读取W25QXX的JID
[in] | w25qxx | W25QXX对象指针 |
[out] | jidbuf | 指向缓冲区的指针,通过此缓冲区返回JID |
[in] | to | 期望唤醒的时间点 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_w25qxx_read_mid | ( | struct xwds_w25qxx * | w25qxx, |
xwu16_t * | midbuf, | ||
xwtm_t | to | ||
) |
W25QXX API:读取W25QXX的MID
[in] | w25qxx | W25QXX对象指针 |
[out] | midbuf | 指向缓冲区的指针,通过此缓冲区返回MID |
[in] | to | 期望唤醒的时间点 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_w25qxx_read_sr | ( | struct xwds_w25qxx * | w25qxx, |
xwu32_t | sridx, | ||
xwu8_t * | srbuf, | ||
xwtm_t | to | ||
) |
W25QXX API:读取W25QXX的SR寄存器
[in] | w25qxx | W25QXX对象指针 |
[in] | sridx | SR寄存器的序号 |
[out] | srbuf | 指向缓冲区的指针,通过此缓冲区返回SR寄存器的值 |
[in] | to | 期望唤醒的时间点 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_w25qxx_read_uid | ( | struct xwds_w25qxx * | w25qxx, |
xwu64_t * | uidbuf, | ||
xwtm_t | to | ||
) |
W25QXX API:读取W25QXX的UID
[in] | w25qxx | W25QXX对象指针 |
[out] | uidbuf | 指向缓冲区的指针,通过此缓冲区返回UID |
[in] | to | 期望唤醒的时间点 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_w25qxx_reset | ( | struct xwds_w25qxx * | w25qxx, |
xwtm_t | to | ||
) |
W25QXX API:向W25QXX发送复位命令
[in] | w25qxx | W25QXX对象指针 |
[in] | to | 期望唤醒的时间点 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_w25qxx_wait_idle | ( | struct xwds_w25qxx * | w25qxx, |
xwtm_t | period, | ||
xwtm_t | to | ||
) |
W25QXX API:等待W25QXX是否空闲
[in] | w25qxx | W25QXX对象指针 |
[in] | to | 期望唤醒的时间点 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_w25qxx_write | ( | struct xwds_w25qxx * | w25qxx, |
xwu32_t | address, | ||
xwu8_t * | txb, | ||
xwsz_t * | size, | ||
xwtm_t | to | ||
) |
W25QXX API:向W25QXX写入数据
[in] | w25qxx | W25QXX对象指针 |
[in] | address | 起始地址 |
[in] | txb | 待写入的数据缓冲区 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
[in] | to | 期望唤醒的时间点 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_w25qxx_write_disable | ( | struct xwds_w25qxx * | w25qxx, |
xwtm_t | to | ||
) |
W25QXX API:关闭W25QXX的写操作
[in] | w25qxx | W25QXX对象指针 |
[in] | to | 期望唤醒的时间点 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_w25qxx_write_enable | ( | struct xwds_w25qxx * | w25qxx, |
xwtm_t | to | ||
) |
W25QXX API:开启W25QXX的写操作
[in] | w25qxx | W25QXX对象指针 |
[in] | to | 期望唤醒的时间点 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error