国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

【GD32F303紅楓派開發(fā)板使用手冊(cè)】第二十講 SPI-SPI NAND FLASH讀寫實(shí)驗(yàn)

發(fā)布者:HeavenlyJoy444最新更新時(shí)間:2024-11-18 來源: elecfans關(guān)鍵字:GD32F303  NAND  FLASH  讀寫實(shí)驗(yàn) 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

20.1實(shí)驗(yàn)內(nèi)容

通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容:

  • SPI通信協(xié)議,參考19.2.1東方紅開發(fā)板使用手冊(cè)

  • GD32F303 SPI操作方式,參考19.2.2東方紅開發(fā)板使用手冊(cè)

  • NAND FLASH基本原理

  • SPI NAND介紹

  • 使用GD32F303 SPI接口實(shí)現(xiàn)對(duì)GD5F1GQ5UEYIGY的讀寫操作

20.2實(shí)驗(yàn)原理

20.2.1NAND FLASH基本原理

NAND Flash和NOR Flash都是兩種非易失性存儲(chǔ)器,其讀寫速度、讀寫方式,存儲(chǔ)區(qū)結(jié)構(gòu)、成本、容量、擦寫壽命都有很大區(qū)別。NAND在壽命、速度、讀寫方式上都不如NOR,但在成本和容量上有很大區(qū)別,故而決定了大容量數(shù)據(jù)存儲(chǔ)是NAND的主要應(yīng)用領(lǐng)域,而快速啟動(dòng)、快速數(shù)據(jù)讀取等場(chǎng)景是NOR的主要應(yīng)用領(lǐng)域。而SPI是目前NAND和NOR的主要通信接口形式,降低了器件體積,標(biāo)準(zhǔn)化了器件接口。

  • NAND Flash結(jié)構(gòu)示例

wKgaomZzie-ASHMCAACpYmz1joQ526.png

如上圖所示,以GD5F1GQ5UEYIGY為例,一個(gè)1Gb的存儲(chǔ)結(jié)構(gòu)下是由1024個(gè)block組成,每個(gè)block又64page組成,每個(gè)page是2K Main Area+Spare Area(ECC ON:64B;ECC OFF:128B)組成。

NAND的擦除單位是blocks,寫入單位是page,所以尋址的方式上和nor是有本質(zhì)區(qū)別的,需要按blocks、page、page字節(jié)偏移地址進(jìn)行一個(gè)數(shù)據(jù)的尋址。

20.2.2SPI NAND介紹

SPI NAND簡(jiǎn)化了NAND的接口設(shè)計(jì)和尺寸,SPI接口更是降低了主控對(duì)接口的要求,同時(shí)內(nèi)置ECC。下圖是GD5F1GQ5UEYIGY的命令表,常用的命令為擦除、編程、讀取命令。

wKgZomZzifqAdlMUAAKpHZv_HdQ326.png

  • block擦除命令

wKgZomZzigeAKIIUAAES6EvOPGw289.png

  • 編程

  • 編程流程

  1. 先用數(shù)據(jù)緩存寫入指令將數(shù)據(jù)寫入緩沖區(qū)

  2. 然后發(fā)送寫使能命令,并確認(rèn)寫使能成功

  3. 然后發(fā)送數(shù)據(jù)載入命令執(zhí)行緩沖區(qū)數(shù)據(jù)到FLASH的寫

  4. 最后查詢讀寄存器確認(rèn)P_FAIL是否有錯(cuò),OIP是否完成

注意(84h/C4h/34h) 和(FFh)指令是不會(huì)清除緩存中的內(nèi)容的,所以下次編程時(shí)要注意是否緩存區(qū)都是需要更新的數(shù)據(jù),所以必須是一次更新整個(gè)緩沖區(qū),不要部分更新。

編程page地址按照塊的順序

  • 數(shù)據(jù)緩存寫入命令

wKgZomZzihqAQqKoAADV6NvTRjk583.png

  • 數(shù)據(jù)載入命令

wKgZomZzij2AZf6eAAEgT0-fPeU146.png

  • 讀取

  • 讀取流程

  1. 讀需要先通過讀cache命令從FLASH中讀出數(shù)據(jù)到緩存中

  2. 然后通過讀cache指令從緩沖區(qū)中開始讀出數(shù)據(jù)

讀到2048+128后繞回從0開始繼續(xù)。

20.3硬件設(shè)計(jì)

紅楓派開發(fā)板SPI——NAND FLASH的硬件設(shè)計(jì)如下:

wKgZomZzikyAAxbIAADuwlzsORg877.pngwKgZomZyPjeALX0BAADP0lLHKYs115.png

從圖中可以看出,本實(shí)驗(yàn)使用的是普通單線SPI,GD5F1GQ5UEYIGY的片選由GD32F303ZET6的PG13控制(因PG14不是SPI的NSS管腳,所以本實(shí)驗(yàn)用主機(jī)NSS軟件模式,,通過普通IO控制片選),GD25Q32ESIGR的SO、SI和SCLK分別和GD32F303ZET6的PB4(SPI2_MISO)、PB5(SPI2_MOSI)以及PB3(SPI2_CLK)相連。

20.4代碼解析

20.4.1SPI初始化和讀寫B(tài)YTE函數(shù)實(shí)現(xiàn)

SPI初始化配置流程可參考19.4.1東方紅開發(fā)板使用手冊(cè);

SPI讀寫B(tài)YTE函數(shù)實(shí)現(xiàn)可參考19.4.2東方紅開發(fā)板使用手冊(cè);

20.4.2SPI NAND FLASH BSP驅(qū)動(dòng)層實(shí)現(xiàn)

操作NAND FLASH的函數(shù)都定義在bsp層文件bsp_spi_nand.c中,這個(gè)文件中定義的函數(shù)都是針對(duì)NAND FLASH命令來實(shí)現(xiàn)的,我們選取幾個(gè)函數(shù)進(jìn)行介紹。

  • NOR FLASH按block擦除函數(shù)bsp_nandflash_block_erase,輸入block號(hào)即可擦除;該函數(shù)流程是:使能NAND FLASH的寫功能->向NOR FLASH發(fā)送block擦除指令0xD8->發(fā)送左移6位的Block NO->查詢OIP標(biāo)志等待完成

C

/*!

brief erase the nandflash blcok

param[in] block_No:the serial number of erase block

param[out] none

retval SPI_NAND_FAIL: erase the nandflash block fail

retval SPI_NAND_SUCCESS: erase the nandflash block success

*/

uint8_t bsp_spi_nandflash_block_erase(uint32_t block_No)

{

uint8_t result = SPI_NAND_SUCCESS;


block_No<<=6;        //block_No=block_No*64

bsp_spi_nandflash_write_enable();

/* select the flash: chip select low */

bsp_spi_nand_cs_low();

/* send 'ERASE BLOCK' command */

driver_spi_master_transmit_receive_byte(&BOARD_SPI,SPI_NAND_BLOCK_ERASE);

/* send the address of memory */

driver_spi_master_transmit_receive_byte(&BOARD_SPI,(block_No>>16)&0xFF);

driver_spi_master_transmit_receive_byte(&BOARD_SPI,(block_No>>8)&0xFF);

driver_spi_master_transmit_receive_byte(&BOARD_SPI,block_No&0xFF);

/* deselect the flash: chip select high */

bsp_spi_nand_cs_high();

while(bsp_spi_nandflash_get_status_flag(OIP)==SPI_NAND_BUSY);

/* check program result */


return result;

}

NOR FLASH按page寫入函數(shù)bsp_nandflash_page_program,輸入待寫入數(shù)據(jù)指針、block號(hào)、page號(hào);該函數(shù)流程是:

寫緩沖區(qū),實(shí)現(xiàn)流程:向NOR FLASH發(fā)送寫緩沖區(qū)指令0x02->發(fā)送寫入的page偏移地址->發(fā)送待寫入數(shù)據(jù)

載入數(shù)據(jù)到page,實(shí)現(xiàn)流程:使能NAND FLASH的寫功能->發(fā)送載入命令0x10->發(fā)送寫入的page號(hào)

查詢OIP標(biāo)志等待完成

C

/*!

brief send the program load command,write data to cache

param[in] buffer: the data of array

param[in] address_in_page: the address in nandflash page

param[in] byte_cnt: the number of data

param[out] none

retval none

*/

void bsp_spi_nandflash_program_load(uint8_t *buffer,uint16_t address_in_page,uint32_t byte_cnt)

{

uint32_t i=0;


/* select the flash: chip select low */

bsp_spi_nand_cs_low();

#ifdef SPI_NANDFLASH

/* send 'PAGE READ' command */

driver_spi_master_transmit_receive_byte(&BOARD_SPI,SPI_NAND_PAGE_LOAD);

/* send the serial number of page */

driver_spi_master_transmit_receive_byte(&BOARD_SPI,(address_in_page>>8)&0xFF);

driver_spi_master_transmit_receive_byte(&BOARD_SPI,address_in_page&0xFF);

#endif



/* deselect the flash: chip select high */



for(i=0;i driver_spi_master_transmit_receive_byte(&BOARD_SPI,*buffer++);

}

//printf('cache program %x %xnr',m32record[0],m32record[1]);


bsp_spi_nand_cs_high();

qspi_disable(BOARD_SPI.spi_x);

}


/*!

brief send the program excute command

param[in] page_No: the serial number of nandflash page

param[out] none

retval none

*/

void bsp_spi_nandflash_program_execute(uint32_t page_No)

{

/* enable the write access to the flash */

bsp_spi_nandflash_write_enable();

/* select the flash: chip select low */

bsp_spi_nand_cs_low();

/* send 'PAGE READ' command */

driver_spi_master_transmit_receive_byte(&BOARD_SPI,SPI_NAND_PROGRAM_EXEC);

/* send the serial number of page */

driver_spi_master_transmit_receive_byte(&BOARD_SPI,(page_No>>16)&0xFF);

driver_spi_master_transmit_receive_byte(&BOARD_SPI,(page_No>>8)&0xFF);

driver_spi_master_transmit_receive_byte(&BOARD_SPI,page_No&0xFF);

/* deselect the flash: chip select high */

bsp_spi_nand_cs_high();

}


/*!

brief write the data to nandflash

param[in] *buffer:the data of array

param[in] page_No: the serial number of nandflash page

param[in] address_in_page: the address of nandflash page

param[in] byte_cnt:the number of data

param[out] none

retval SPI_NAND_FAIL,SPI_NAND_SUCCESS

*/

uint8_t spi_nandflash_write_data(uint8_t *buffer,uint32_t page_No,uint16_t address_page,uint32_t byte_cnt)

{



/*sned the program load command,write data to cache*/

bsp_spi_nandflash_program_load(buffer, address_page, byte_cnt);

/*sned the program excute command*/

bsp_spi_nandflash_program_execute(page_No);

/* Check program result */

while(bsp_spi_nandflash_get_status_flag(OIP)==SPI_NAND_BUSY);



#ifdef WRITE_PAGE_VERIFY_EN

spi_nandflash_read_data (tem_buffer,page_No, address_page, byte_cnt);

if (memcmp(tem_buffer, buffer, byte_cnt) != 0){

return SUCCESS;

}

#endif

return 1;


}

NOR FLASH按page讀取函數(shù)spi_nandflash_read_data,輸入讀取數(shù)據(jù)指針、page號(hào)、page內(nèi)地址偏移、讀取長(zhǎng)度;該函數(shù)流程是:

讀page到緩沖區(qū),實(shí)現(xiàn)流程:向NOR FLASH發(fā)送寫緩沖區(qū)指令0x13->送要讀取的page號(hào)

等待OIP標(biāo)志(NAND讀取page到緩沖區(qū)完成)

從緩沖區(qū)讀取數(shù)據(jù),實(shí)現(xiàn)流程:發(fā)送讀cache命令0x03->發(fā)送要讀取的page地址偏移->讀取所需長(zhǎng)度的數(shù)據(jù)

查詢是否有ecc錯(cuò)誤

C

/*!

brief send the read page command

param[in] page_No: the serial number of nandflash page

param[out] none

retval none

*/

void bsp_spi_nandflash_page_read(uint32_t page_No)

{

/* select the flash: chip select low */

bsp_spi_nand_cs_low();

/* send 'PAGE READ' command */

driver_spi_master_transmit_receive_byte(&BOARD_SPI,SPI_NAND_PAGE_READ);

/* send the serial number of page */

driver_spi_master_transmit_receive_byte(&BOARD_SPI,(page_No>>16)&0xFF);

driver_spi_master_transmit_receive_byte(&BOARD_SPI,(page_No>>8)&0xFF);

driver_spi_master_transmit_receive_byte(&BOARD_SPI,page_No&0xFF);

/* deselect the flash: chip select high */

bsp_spi_nand_cs_high();

}


/*!

brief send the read cache command

param[in] buffer: a pointer to the array

param[in] address_in_page: the address in nandflash page

param[in] byte_cnt: the number of data

param[out] none

retval none

*/

void bsp_spi_nandflash_read_cache(uint8_t *buffer,uint16_t address_in_page,uint32_t byte_cnt)

{

uint32_t i=0;


/* select the flash: chip select low */

bsp_spi_nand_cs_low();

#ifdef SPI_NANDFLASH

/* send 'PAGE READ' command */

driver_spi_master_transmit_receive_byte(&BOARD_SPI,SPI_NAND_READ_CACHE);

//driver_spi_master_transmit_receive_byte(&BOARD_SPI,DUMMY_BYTE);//Q4UC ++ Q5 --

/* send the address of page */

driver_spi_master_transmit_receive_byte(&BOARD_SPI,(address_in_page>>8)&0xFF);

driver_spi_master_transmit_receive_byte(&BOARD_SPI,address_in_page&0xFF);

driver_spi_master_transmit_receive_byte(&BOARD_SPI,DUMMY_BYTE);//Q4UC -- Q5 ++


#endif




for(i=0;i *buffer++=driver_spi_master_transmit_receive_byte(&BOARD_SPI,DUMMY_BYTE);

}


/* deselect the flash: chip select high */

bsp_spi_nand_cs_high();

qspi_disable(BOARD_SPI.spi_x);

}


/*!

brief read the data from nandflash

param[in] *buffer:the data of array

param[in] page_No: the serial number of nandflash page

param[in] address_in_page: the address in nandflash page

param[in] byte_cnt:the number of data

param[out] none

retval SPI_NAND_FAIL,SPI_NAND_SUCCESS

*/

uint8_t spi_nandflash_read_data(uint8_t *buffer,uint32_t page_No,uint32_t address_in_page,uint32_t byte_cnt)

{

uint8_t result = SPI_NAND_SUCCESS;

uint8_t status = 0;

uint8_t retrycnt = 0;


/* the capacity of page must be equal or greater than the taotal of address_in_page and byte_cnt */

if((address_in_page+byte_cnt)>SPI_NAND_PAGE_TOTAL_SIZE){

return SPI_NAND_FAIL;

}

ReadRetry:

/* send the read page command */

bsp_spi_nandflash_page_read(page_No);

/* wait for NANDFLASH is ready */

while(bsp_spi_nandflash_get_status_flag(OIP)==SPI_NAND_BUSY);

/* read data from cache */

bsp_spi_nandflash_read_cache(buffer, address_in_page, byte_cnt);


bsp_spi_nandflash_get_feature( STATUS, &status );

if(( (status & ECCS0) == 0 )&&( (status & ECCS1) == ECCS1 )){ //UECC

if(retrycnt < 3)

{

retrycnt++;


printf('rReadretry:%x %xn',retrycnt,page_No);


goto ReadRetry;

}

else

{

printf('rRead Fail %xn',page_No);

}

}

return result;

}

20.4.3main函數(shù)實(shí)現(xiàn)


main函數(shù)中實(shí)現(xiàn)了擦除一個(gè)block,并對(duì)該block中的page進(jìn)行寫入操作,然后讀取后進(jìn)行數(shù)據(jù)對(duì)比校驗(yàn)的功能。


C

/*!

* 說明 main函數(shù)

* 輸入 無

* 輸出 無

* 返回值 無

*/

int main(void)

{


//延時(shí)、共用驅(qū)動(dòng)部分初始化

driver_init();


//初始化LED組和默認(rèn)狀態(tài)

bsp_led_group_init();

bsp_led_on(&LED0);

bsp_led_off(&LED1);


//初始化UART打印

bsp_uart_init(&BOARD_UART);


//初始化SPI

bsp_spi_init(&BOARD_SPI);


//初始化SPI NAND

bsp_spi_nand_init();


printf('nrSPI NAND:GD5F1G configured...nr');


//讀取flash id

flash_id=bsp_spi_nandflash_read_id();

printf('nrThe NAND_ID:0x%Xnr',flash_id);


//比對(duì)flash id是否一致

if(NAND_ID != flash_id)

{

printf('nrnrWrite to tx_buffer:nrnr');


//準(zhǔn)備數(shù)據(jù)

for(uint16_t i = 0; i < BUFFER_SIZE; i ++){

tx_buffer[i] = i;

printf('0x%02X ',tx_buffer[i]);


if(15 == i%16)

printf('nr');

}


printf('nrnrRead from rx_buffer:nr');


//擦除要寫入的block

bsp_nandflash_block_erase(0);

//寫入數(shù)據(jù)

bsp_nandflash_page_program((uint8_t*)tx_buffer,0,0,0);


//回讀寫入數(shù)據(jù)

bsp_nandflash_page_read(rx_buffer,0,0);


/* printf rx_buffer value */

for(uint16_t i = 0; i <= 255; i ++){

printf('0x%02X ', rx_buffer[i]);

if(15 == i%16)

printf('nr');

}


//比較回讀和寫入數(shù)據(jù)

if(ERROR == memory_compare(tx_buffer,rx_buffer,BUFFER_SIZE)){

printf('Err:Data Read and Write aren't Matching.nr');

/* spi flash read id fail */

printf('nrSPI nand: Read ID Fail!nr');


//寫入錯(cuò)誤

/* turn off all leds */

bsp_led_on(&LED0);

/* turn off all leds */

bsp_led_on(&LED1);

while(1);

}else{

printf('nrSPI-GD5F1G Test Passed!nr');

}

}else{ //ID讀取錯(cuò)誤

/* spi flash read id fail */

printf('nrSPI Nand:Read ID Fail!nr');

/* turn off all leds */

bsp_led_on(&LED0);

/* turn off all leds */

bsp_led_on(&LED1);

[1] [2]
關(guān)鍵字:GD32F303  NAND  FLASH  讀寫實(shí)驗(yàn) 引用地址:【GD32F303紅楓派開發(fā)板使用手冊(cè)】第二十講 SPI-SPI NAND FLASH讀寫實(shí)驗(yàn)

上一篇:GD32F303固件庫開發(fā)(13)----定時(shí)器TIM捕獲PWM測(cè)量頻率與占空比
下一篇:GD32330C-START開發(fā)板試用體驗(yàn):GD32F330開發(fā)環(huán)境構(gòu)建

推薦閱讀最新更新時(shí)間:2025-06-12 15:45

GD32F303紅楓開發(fā)板使用手冊(cè)】第十九講 SPI-SPI NOR FLASH讀寫實(shí)驗(yàn)
19.1實(shí)驗(yàn)內(nèi)容 通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容: SPI簡(jiǎn)介 GD32F303 SPI簡(jiǎn)介 SPI NOR FLASH——GD25Q32ESIGR簡(jiǎn)介 使用GD32F303 SPI接口實(shí)現(xiàn)對(duì)GD25Q32ESIGR的讀寫操作 19.2實(shí)驗(yàn)原理 19.2.1SPI簡(jiǎn)介 SPI(Serial Peripheral interface),顧名思義是串行外設(shè)接口,和UART不同的是,SPI是同步通訊接口,所以帶有時(shí)鐘線,而UART是異步通訊接口,不需要時(shí)鐘線。 SPI通常使用4根線,分別為SCK、MOSI、MISO、NSS(CS): SCK:串列時(shí)脈,由主機(jī)發(fā)出 MOSI:主機(jī)輸出從機(jī)輸入信號(hào)(數(shù)據(jù)由主機(jī)發(fā)出) MISO:主
[單片機(jī)]
【<font color='red'>GD32F303</font><font color='red'>紅楓</font><font color='red'>派</font><font color='red'>開發(fā)板</font>使用手冊(cè)】第十九講 <font color='red'>SPI-SPI</font> NOR <font color='red'>FLASH</font><font color='red'>讀寫</font><font color='red'>實(shí)驗(yàn)</font>
ARM的Nand Flash入門使用手冊(cè)(以K9F2G08X0M為例)
1. 組織結(jié)構(gòu): 存儲(chǔ)芯片有幾個(gè)重要的單位 device block page ,在這個(gè)芯片中 1 Device = 2048 block = 2k block 1 block = 64 page 1 page = (2048 + 64) Byte 其中: 塊Block,是Nand Flash的擦除操作的基本/最小單位。 頁P(yáng)age,是Nand Flash的讀寫操作的基本單位/最小單位。 共256M,也就是需要28根地址線來尋址,但是文檔中是29根線,因?yàn)樵趯ぶ返臅r(shí)候,我們必須先找到page地址然后再找到頁內(nèi)地址。 頁地址共有: 2048 * 64 page ,也就是2的(11+6)次方 ,即17跟地址線 頁內(nèi)地址: 20
[單片機(jī)]
ARM的<font color='red'>Nand</font> <font color='red'>Flash</font>入門使用手冊(cè)(以K9F2G08X0M為例)
第六章、Tiny4412 U-BOOT移植六 Nand Flash源碼分析
一、U-Boot參考源碼 NandFlash的初始化代碼我們放在board/samsung/tiny4412/lowlevel_init.S ,這一段代碼是三星SMDK4212中沒有提供的,所以我們需要自己寫。我們?cè)诶锩嬖黾右粋€(gè)函數(shù)叫nand_asm_init。當(dāng)然,由于 Nand Flash 的操作是有一定的規(guī)律的,所以,我們可以去別的地方找一段寫好的NandFlash源碼,然后根據(jù)自己的電路原理圖進(jìn)行移植即可。 二、代碼分析 1、初始化Nand Flash 打開原理圖,參看原理圖配置各個(gè)功能引腳----狀態(tài)引腳R/nB,讀使能引用腳nRE,片選信號(hào)nCE,命令使能引腳CLE,地址使能引腳ALE,寫使能引腳nWE。
[單片機(jī)]
第六章、Tiny4412 U-BOOT移植六 <font color='red'>Nand</font> <font color='red'>Flash</font>源碼分析
下季度NAND Flash產(chǎn)業(yè)供過于求將致價(jià)格走跌
集微網(wǎng)消息,根據(jù)集邦咨詢半導(dǎo)體研究中心(DRAMeXchange)研究指出,2018年第一季在需求端面臨到傳統(tǒng)淡季的沖擊,包含平板電腦、筆記本電腦以及以中國(guó)品牌為主的智能手機(jī)裝置量需求將較2017年第四季下跌逾15%,而服務(wù)器需求相對(duì)持平,整體位元需求量較2017年第四季呈現(xiàn)0-5%下跌。另一方面,NAND Flash供貨商仍持續(xù)提升3D-NAND Flash的產(chǎn)能及良率,位元產(chǎn)出成長(zhǎng)亦較第四季高于5%,預(yù)期NAND Flash市場(chǎng)將進(jìn)入供過于求態(tài)勢(shì),2018年第一季固態(tài)硬盤、NAND Flash顆粒及wafer等合約價(jià)皆將翻轉(zhuǎn)走跌。 回顧2017年上半年,第一季在供給端由于2D-NAND轉(zhuǎn)往3D-NAND導(dǎo)致產(chǎn)能損失,加上中
[手機(jī)便攜]
HP發(fā)布SSD新品,采用3D NAND Flash優(yōu)質(zhì)顆粒
隨著IT硬件市場(chǎng)日趨成熟,核心配件的更替速度明顯減緩,但在存儲(chǔ)方面卻恰恰相反。作為限制整機(jī)性能最大的瓶頸,硬盤成為普通用戶和企業(yè)共同關(guān)注的焦點(diǎn)。如今, SSD 固態(tài)硬盤 顯然更為活躍,新技術(shù)、新品層出不窮。 ? 最近,來自 惠普 的兩款HP SSD新品全新上市,型號(hào)分別為HP SSD S700 PRO 和HP SSD S700。 ? 兩款新品同屬HP SSD SATA2.5寸系列,采用3D? NAND Flash 優(yōu)質(zhì)顆粒,以立體堆疊方式,大幅提升性能,并且可靠度和耐久度也明顯提升,是追求優(yōu)異運(yùn)算效能、暢玩大型游戲、專業(yè)設(shè)計(jì)編輯軟件操作及企業(yè)等不同用戶節(jié)省時(shí)間,提升效率的不錯(cuò)選擇。 ? ? 其中S700 PRO產(chǎn)品讀取和寫入的
[嵌入式]
51單片機(jī)控制K9K8G08U0C NAND Flash讀寫程序
#include STC12C5A60S2.H #include intrins.h #include SMG.h /********************************************/ sbit NF_CLE=P0^3; //命令鎖存使能(輸出) CLE D3 sbit NF_ALE=P3^4; //地址鎖存使能(輸出) ALE RS sbit NF_WE=P1^3; //NAND Flash寫使能(輸出) /WE DB4 sbit NF_RE=P1^2; //NAND Flash讀使能(輸出) /RE DB3 sbit NF_CE
[單片機(jī)]
基于VxWorks的NAND FLASH驅(qū)動(dòng)程序設(shè)計(jì)
   0 引 言   目前,隨著電子技術(shù)的不斷發(fā)展,計(jì)算機(jī)技術(shù)也得到飛速的發(fā)展,產(chǎn)生了很多新技術(shù)。但就計(jì)算機(jī)的基本結(jié)構(gòu)來說,還是基本采用了馮·諾依曼結(jié)構(gòu)。然而馮·諾依曼結(jié)構(gòu)的一個(gè)中心點(diǎn)就是存儲(chǔ)一控制,所以存儲(chǔ)器在計(jì)算機(jī)系統(tǒng)中的作用是非常重要的。嵌入式計(jì)算機(jī)作為計(jì)算機(jī)中的一個(gè)類別,對(duì)執(zhí)行速度和系統(tǒng)可靠性都有較強(qiáng)的要求,這也決定了嵌入式系統(tǒng)不僅要有實(shí)時(shí)性很強(qiáng)的操作系統(tǒng),同時(shí)也需要一種安全、快速的存儲(chǔ)設(shè)備。同時(shí),嵌入式系統(tǒng)經(jīng)常會(huì)涉及到海量數(shù)據(jù)的存儲(chǔ),這就要求存儲(chǔ)設(shè)備必須具有可靠性高,功耗低,容量大,掉電數(shù)據(jù)不丟失等特點(diǎn),而NAND FLASH芯片正好具有這些優(yōu)點(diǎn)。   VxWorks是嵌入式領(lǐng)域內(nèi)公認(rèn)的最有特色的高性能實(shí)時(shí)操作系
[嵌入式]
NAND閃存批發(fā)價(jià)16個(gè)月首漲
集微網(wǎng)消息,SSD、服務(wù)器需求激增下,7月NAND閃存批發(fā)價(jià)格16個(gè)月來首次上升,指標(biāo)性產(chǎn)品TLC 256Gb價(jià)格達(dá)3.35美元/個(gè),較6月提高3%。不過業(yè)內(nèi)指出,這種漲勢(shì)可能是暫時(shí)的。 日經(jīng)新聞報(bào)道指出,NAND閃存漲價(jià)主要是受益于PC用SSD以及數(shù)據(jù)中心用服務(wù)器需求的增加,供應(yīng)端實(shí)際上自今年初春以來就已開始緊繃。但隨著三星、鎧俠今年下半年新產(chǎn)能的開出,價(jià)格預(yù)計(jì)最快可能在明年轉(zhuǎn)跌。 根據(jù)鎧俠第二季度財(cái)報(bào),NAND閃存市場(chǎng)供需平衡改善,售價(jià)上升超過10%,為四個(gè)季度以來首次揚(yáng)升。展望后市,鎧俠認(rèn)為隨著居家辦公、在線教育的普及,NAND閃存整體需求將維持在高水位,供需情況有望在下半年保持穩(wěn)定。
[手機(jī)便攜]
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved