娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

10.NandFlash的驅動_寫操作

發布者:yunhui最新更新時間:2024-11-04 來源: cnblogs關鍵字:NandFlash  驅動  寫操作 手機看文章 掃描二維碼
隨時隨地手機看文章

上一節,學習了NandFlash的按頁讀的操作,下面是實現NandFlash的按頁寫。首先還是查看NandFlash芯片K9F2G08U0A的時序圖

根據I/O pin角的信號信息,知道要實現NandFlash的寫操作需要的步驟如下:

最后實現按頁寫的函數:

int NF_WritePage(unsigned long addr, unsigned char* buff)

{

    int ret;

    int i;

    

    //選中flash芯片

    select_chip();

    

    //清除RnB

    clear_RnB();

    

    //發送命令0x80

    send_cmd(0x80);

    

    //發送列地址

    send_addr(0x00);

    send_addr(0x00);

    

    //發送行地址

    send_addr(addr&0xff);

    send_addr((addr>>8)&0xff);

    send_addr((addr>>16)&0xff);

    

    //寫入數據

    for(i=0;i<2048;i++)

    {

     NFDATA = buff[i];     

    }

    

    //發送命令0x10

    send_cmd(0x10);

    

    //等待RnB

    wait_RnB();

    

    //發送命令0x70

    send_cmd(0x70);

    

    //讀取寫入結果

    ret = NFDATA;

    

    //取消選中flash芯片

    deselect_chip();

    

    return ret;    

}

編譯make一下,沒有錯誤的情況下,還不能燒寫到開發板,因為不管是norflash或者是NandFlash,在進行寫之前必須進行擦除。接下來就是實現擦除函數:

void NF_Erase(unsigned long addr)

該函數有一個參數,就是頁地址。

接下來看NandFlash芯片K9F2G08U0A擦除的信息:

注意的是,在擦除的時候,不會按照頁擦除的,而是把該頁所在的整塊全部擦除。

根據上面擦除的時序圖,擦除函數的實現步驟:

void NF_Erase(unsigned long addr)

{

    int ret;

      

//選中flash芯片

    select_chip();

    

    //清除RnB

    clear_RnB();

    

    //發送命令0x60

    send_cmd(0x60);

    

    //發送行地址

    send_addr(addr&0xff);

    send_addr((addr>>8)&0xff);

    send_addr((addr>>16)&0xff);

    

    //發送命令D0

    send_cmd(0xD0);

    

    //等待RnB

    wait_RnB();

    

    //發送命令0x70

    send_cmd(0x70);

    

    //讀取擦除結果

    ret = NFDATA;

    

    //取消選中flash芯片

    deselect_chip();

    

    return ret;

    

}

 

最后在main.c里面添加測試代碼

上面的測試代碼中,先定義一個頁大小的char buffer。然后格式化一個塊大小的空間。接著將123寫入NandFlash,接著通過NF_PageRead函數把剛才寫入的值讀出。最后通過點燈判斷讀出的是不是剛才寫入的數字。來驗證對NandFlash的寫操作是否成功:成功就是沒加NandFlash的操作代碼,燒寫到開發板,燈亮。加上上面的代碼后燒寫到開發板,燈不亮。


關鍵字:NandFlash  驅動  寫操作 引用地址:10.NandFlash的驅動_寫操作

上一篇:9.NandFlash的驅動_讀操作2440
下一篇:8.NandFlash原理分析

推薦閱讀最新更新時間:2025-04-24 21:44

ARM9_S3C2440學習(五)norflash啟動,nandflash啟動,SDRAM總結
S3C2440的啟動時讀取的第一條指令是在0x00上,分為成nand flash和nor flash上啟動。 nand flash:適合大容量數據存儲,類似硬盤; nor flash:適合小容量的程序或數據存儲,類似小硬盤; sdram:主要用于程序執行時的程序存儲、執行或計算,類似內存。 Nor flash的有自己的地址線和數據線,可以采用類似于memory的隨機訪問方式,在nor flash上可以直接運行程序,所以nor flash可以直接用來做boot,采用nor flash啟動的時候會把地址映射到0x00上。 Nand flash是IO設備,數據、地址、控制線都是共用的,需要軟件區控制讀取時序,所以不能像nor
[單片機]
TDK推出第一款嵌入式柵極驅動器- 加強EV熱系統效率
亦可用于座椅、車門、尾門和充電門的智能 BLDC 執行器* 全面支持矢量控制(FOC)算法,從而實現低噪高效運行 TDK 株式會社 通過推出全新 HVC 5481G,進一步拓展其 Micronas HVC 5x 嵌入式電機控制器系列在汽車應用領域的功能。 HVC 5481G 是一款可編程Soc柵極驅動芯片,用于控制帶有 6 個 N 通道 FET 的外部功率橋,從而驅動各類執行器、風扇和泵。*HVC 5481G 樣品現已上市,預計 2026 年開始批量生產。 HVC 5481G SoC 與現有的 HVC 5x 系列軟件兼容,并集成一個配備 64 KB 閃存和 8 KB SRAM 的 ARM? Cortex?-M3 CPU
[電源管理]
TDK推出第一款嵌入式柵極<font color='red'>驅動</font>器- 加強EV熱系統效率
Linux驅動入門(二)操作硬件
Linux驅動入門(二)操作硬件 一、通用做法 ioremap iounmap 寄存器讀寫 二、gpiolib gpio.h gpiolib.c 三星平臺提供的gpio-cfg 三、總結 一、通用做法 玩過單片機的朋友應該懂得如何操作寄存器 舉個例子,例如現在想往寄存器地址0xFF223440寫數據,在單片機編程中的做法如下 volatile unsigned int *reg = (unsigned int*)0xFF223440; *reg = val; 在Linux中做法也是類似,只不過Linux不可以直接訪問寄存器地址,而要經過映射后才能訪問,下面開始介紹 ioremap 映射地址 /* * cookie:表示要映射的地址
[單片機]
上位機控制伺服驅動器故障怎么解決
本文詳細介紹了上位機控制伺服驅動器故障的診斷和解決方法。 一、引言 伺服驅動器是工業自動化領域中的關鍵組件,其性能直接影響到整個系統的穩定性和可靠性。上位機作為控制系統的核心,負責對伺服驅動器進行實時監控和控制。當伺服驅動器出現故障時,上位機的故障診斷和處理能力至關重要。本文將從故障原因、故障類型、故障診斷方法和故障處理策略等方面,為讀者提供一套詳盡的解決方案。 二、故障原因分析 電源問題:電源不穩定、電壓波動或電源線路故障可能導致伺服驅動器工作異常。 電氣連接問題:電纜連接不良、接觸器故障或繼電器損壞等電氣連接問題可能導致伺服驅動器無法正常工作。 控制系統問題:上位機軟件故障、通信故障或控制算法錯誤可能導致伺服驅動器無
[嵌入式]
panasonic伺服驅動器故障代碼介紹
Panasonic伺服驅動器是一種廣泛應用于工業自動化領域的高性能電機驅動設備。在使用過程中,可能會遇到各種故障,這些故障通常通過故障代碼來表示。本文將詳細介紹Panasonic伺服驅動器的故障代碼,幫助用戶快速定位問題并進行維修。 1. 概述 Panasonic伺服驅動器采用先進的控制技術和精密的制造工藝,具有高響應性、高精度和高可靠性。然而,由于各種內外因素,伺服驅動器在使用過程中可能會出現故障。故障代碼是Panasonic伺服驅動器用來表示故障狀態的一種編碼方式,通過故障代碼,用戶可以快速了解驅動器的故障類型和原因,從而進行相應的處理。 2. 故障代碼分類 Panasonic伺服驅動器的故障代碼主要分為以下幾類: 2.1
[嵌入式]
蜂鳴器驅動
蜂鳴器是S3C6410開發板上帶的一個硬件設備,可以通過向寄存器寫入特定的值來控制蜂鳴器發出尖叫。 (1)前提是eclipse中安裝了CDT插件。 (2)在eclipse中單擊File-New-Other,選擇C Project項,單擊next進行相應的設置,例如工程名為word_count,然后Finish建立一個空的C工程。 (3)單擊word_count工程右擊菜單中的New-Soruce Folder,打開New Soruce Folder對話框,在Folder name文本框中輸入src,然后Finish建立保存linux驅動源代碼文件的目錄。 (4)單擊src目錄,右鍵單擊Import打開對話框,選擇File Syst
[單片機]
電動汽車雙電機驅動系統扭矩分配策略研究
0 引言 近年來國內新能源汽車產業迎來了蓬勃發展的機遇,電動汽車具有的零排放、低能耗、低噪音等特點也逐漸被人們所接受 。當前市面上的電動汽車主要以單電機驅動為主,為了保證整車在各個工況下的動力性及經濟性 ,單電機驅動系統一般選用一個功率較大的電機,但在城市工況下整車需求的功率較小,導致單電機驅動系統始終工作在低效區 ,而高速工況下單電機驅動系統又因為功率不足導致整車動力性不足。 為了解決上述問題,調節整車動力性和經濟性對驅動系統性能需求的矛盾,研究人員們提出了單電機匹配雙級減速器、雙電機驅動系統等方法 ,其中雙電機驅動系統結合控制策略和算法具有更大的優勢。文獻 對單電機驅動系統匹配雙級減速器的動力性和經濟性進行了分析,在保證整
[嵌入式]
電動汽車雙電機<font color='red'>驅動</font>系統扭矩分配策略研究
linux-2.6.32在mini2440開發板上移植 移植UDA1341 音頻驅動
1 在初始化文件中加入UDA1341 設備結構 Linux-2.6.32.2 已經完美的支持UDA1341 音頻芯片的驅動, 我們只要在arch/arm/mach-s3c2440/mach-mini2440.c 文件中注冊UDA1341 平臺設備的控制端口就可以了,打開mach-mini2440.c,添加如下內容: ;在文件首部添加頭文件 #include sound/s3c24xx_uda134x.h ;在LCD 平臺設備后面添加UDA1341 設備結構 static struct s3c24xx_uda134x_platform_data s3c24xx_uda134x_data = { .l3_clk =
[單片機]
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 巢湖市| 岳普湖县| 五莲县| 克什克腾旗| 小金县| 宿松县| 巴青县| 武宁县| 石楼县| 南部县| 呼玛县| 双柏县| 金门县| 正宁县| 建平县| 浏阳市| 禄丰县| 昌平区| 桃江县| 肃南| 星子县| 花莲县| 云和县| 拉孜县| 庄河市| 五河县| 桓台县| 广南县| 龙胜| 正阳县| 兴义市| 竹北市| 津南区| 连云港市| 邻水| 曲松县| 高陵县| 蓬安县| 中方县| 咸丰县| 钟祥市|