1. 程式人生 > >《嵌入式linux應用程式開發完全手冊》NAND FLASH硬體程式設計學習筆記

《嵌入式linux應用程式開發完全手冊》NAND FLASH硬體程式設計學習筆記

1.先看一下Flash的引腳圖,它與S3C2440連線比較少(相對nor flash),地址資料和命令都是在如圖示的一些使能訊號的配合下,通過8I/O引腳傳輸。寫地址,資料,命令時,nCE,nWE訊號必須為低電平,它們在nWE訊號的上升沿被鎖存,命令鎖存使用訊號CLE和地址鎖存訊號ALE用來區分I/O引腳上傳輸的是命令還是地址。

NAND FLASH

Main.o的執行地址是0x30000000,生成映像檔案中的偏移地址為4096

(2)程式主框架

(3)利用函式指標指向各個操作函式,並構成一個結構體以方便使用

 

(4)Nand_init函式

(5)Flash的基本命令操作

(6)nand_read函式

步驟如下:

1)選擇晶片

2)發出讀命令

3)發出地址

4)等待資料就緒

5)讀取資料

6flish,取消片選訊號

相關推薦

嵌入式linux應用程式開發完全手冊NAND FLASH硬體程式設計學習筆記

1.先看一下Flash的引腳圖,它與S3C2440連線比較少(相對nor flash),地址資料和命令都是在如圖示的一些使能訊號的配合下,通過8個I/O引腳傳輸。寫地址,資料,命令時,nCE,nWE訊號

嵌入式Linux應用程式開發——多執行緒4(執行緒的同步——訊號量)

#include <pthread.h> #include <stdlib.h> #include <unistd.h> #include <stdio.h> #include <semaphore.h> int

嵌入式初學者學習嵌入式必看必看書籍列表,有電子檔的同學可以共享出來,謝謝 Linux基礎 1、《Linux與Unix Shell 程式設計指南》 2、《嵌入式Linux應用程式開發詳解》

嵌入式初學者參考書目 無論學習哪方面的程式設計,都需要掌握基礎知識和程式語言,其中《深入理解計算機作業系統》是比較重要的。下面是一些計算機關於嵌入式方面的推薦,有些是借鑑他人的歸納。 Linux基礎 1、《Linux與Unix Shell 程式設計指南》 2、《嵌入式Linux應用程式開發詳

基於ARM的嵌入式Linux應用程式開發

0 引 言   當今社會,嵌入式系統已經滲透到人們工作、生活中的各個領域,嵌入式處理器已佔分散處理器市場份額的94%。而嵌入式Linux系統也蓬勃發展,不僅繼承了Linux原始碼開放、核心穩定高效、軟體豐富等優勢,還具備支援廣泛處理器結構和硬體平臺、佔有空間小、成本低廉、結構緊湊等特點。 1 ARM處理

Linux應用程式開發筆記:測試程式碼執行時間

  #include <stdio.h> #include <sys/times.h> #include <unistd.h> void main(void) { double duration; clock_t start,

Linux應用程式開發筆記:make menuconfig環境搭建

1、目的 Linux應用程式開發採用與Linux核心一致的menuconfig圖形配置,方便功能元件裁剪。   2、準備工作 下載:Kconfiglib原始碼(https://github.com/ulfalizer/Kconfiglib)   3、環境搭

嵌入式軟體應用程式開發框架淺見

最近在構思一個嵌入式系統上的應用程式開發框架,這個不單單是做一個應用程式的框架,是一個系統的。 要達到的目的就是為業務實現部分的程式提供一個框架,這個框架這麼說是一個很模糊打概念,下面詳細介紹一下這個框架。 框架要實現一些常用的功能封裝: 1. 程序間通訊的程式碼,

利用Eclipse和Sourcery G++ Lite通過GDBserver在Windows下單步除錯嵌入式Linux應用程式

我的開發平臺: 上位機:WIN7 32bit Home basic 下位機:AM3517, Linux 2.6.37  需要用的軟體資源: 1.      arm-2012.09-64-arm-none-linux-gnueabi.exe  (sourcery G++ L

Linux應用程式開發 基礎知識

7.6. 日誌資訊 使用syslog()函式處理日誌資訊。 函式宣告: #include void syslog(int priority, const char *message, arguments...); priority引數的格式(severity lev

Windows下ARM Linux應用程式開發環境搭建說明

這是因為工作寫的一個文件,主要是我們開發人員都不會Linux不會vi也不會命令列,於是研究了一下Windows系統除錯ARM Linux程式的辦法,在這共享一下。1. 概述嵌入式Linux系統的應用程式開發,編譯器一般是gcc,一般都說是要在Linux虛擬機器中進行開發和編譯。本文提供了一種能夠在Wind

嵌入式 Linux應用程式如何讀取(修改)晶片暫存器的值

這一問題來自專案中一個實際的需求: 我需要在Linux啟動之後,確認我指定的晶片暫存器是否與我在uboot的配置一致。 舉個例子: 暫存器地址:0x20000010負責對DDR2的時序配置,該暫存器是在uboot中設定,現在我想在Linux執行後,讀出改暫存器的值,再來檢查該暫存器是否與uboot的配置一致

嵌入式Linux驅動程式開發

嵌入式Linux驅動程式開發系統呼叫是作業系統核心和應用程式之間的介面,裝置驅動程式是作業系統核心和機器硬體之間的介面。裝置驅動程式為應用程式遮蔽了硬體的細節,這樣在應用程式看來,硬體裝置只是一個裝置檔案,應用程式可以象操作普通檔案一樣對硬體裝置進行操作。裝置驅動程式是核心的

應用程式中使用虛擬記憶體——Windows核心程式設計學習手札之十五

在應用程式中使用虛擬記憶體 ——Windows核心程式設計學習手札之十五 Windows提供了3種進行記憶體管理的方法: 1)虛擬記憶體,最適合用來管理大量物件或結構陣列; 2)記憶體對映檔案,最適合用

嵌入式Linux應用開發完全手冊(二)GPIO

5 GPIO介面 5.1 GPIO硬體介面介紹 GPIO General Purpose I/O Port,通用輸入、輸出埠。簡單說就是這個埠可以配成輸入的(讀電平訊號),也可以配成輸出的(設定電平訊號) 無論是輸入還是輸出都是通過暫存器來實現的

嵌入式Linux應用開發完全手冊(一)嵌入式Linux基礎知識

嵌入式Linux應用開發完全手冊 3 嵌入式Linux基礎知識 3.1 交叉編譯工具 編譯工具鏈,編譯工作由幾個步驟完成,分別用到了不同的工具 PC端應用 gcc ld objcopy

嵌入式Linux應用開發完全手冊(四)UART

11. 通用非同步收發器 UART 11.1 UART原理,部件使用方法 11.1.1UART原理 UART是Universal Asynchronous Receiver Transmitter的縮寫,即通用非同步收發器 UART用來傳輸序列資料: - 傳送時,CPU將

嵌入式Linux應用開發完全手冊(三)中斷

9 中斷體系結構 9.1 ARM中斷體系 ARM CPU工作模式和狀態 工作模式,7種,1種使用者模式,其他6選中特權模式 usr 使用者模式,ARM處理器正常的工作模式 fiq 快速中斷模式,高速資料傳輸或者通道處理 irq

嵌入式linux應用開發完全手冊(二) 第六章 儲存控制器

第二篇 ARM9 嵌入式系統基礎例項篇 第五章 GPIO介面 5.1 GPIO硬體介紹 GPIO(General Purpose I/O Ports)意思為通用輸入/輸出埠,通俗的說,就是一些引腳,可以通過它們輸出高低電平或者通過它們讀入引腳的狀態——是高電平還是低電平。 5.1.1 通

嵌入式linux應用開發完全手冊(一)

第一篇 嵌入式Linux開發環境構建 1.1.2 嵌入式發展 SCM(Single Chip Microcomputer)微控制器; MCU(Micro Controller Unit)微控制器; SoC(System on a Chip):系統級晶片,在一個晶片上由於廣泛使用

嵌入式linux應用開發完全手冊》核心筆記(全)

** 本文未附任何例項程式碼,基於目標板的不同操作不盡相同,網路資源針對比較成熟的開發板均可找到對應的成套例項程式碼【開發環境構建】 1. 開發環境搭建:作業系統或虛擬機器Ubuntu安裝、網路服務配置、工具安裝等     工具資源<雲盤>:https://pa