深度分析NandFlash—物理結構及地址傳送(以TQ2440開發板上的K9F2G08U0A為例)

        K9F2G08U0A是三星公司生產的總容量為256M的NandFlash,常用於手持功能等消費電子產品。還是那句話,搞底層就得會看datasheet,我們就從它的datasheet看起。              這就是 K9F2G08U0A的內部結構,具體的各個組件的介紹,就不詳細介紹了,想瞭解的話可以參考偉東山的《嵌入式linux應用開發完全手冊》。      現在就看一下重點的,NandFlash的儲存單元的組織圖,K9F2G08U0A的儲存單元的組織圖如下:結合上面的圖,

arm B和BL指令淺析

B或BL指令引起處理器轉移到“子程式名”處開始執行。兩者的不同之處在於BL指令在轉移到子程式執行之前,將其下一條指令的地址拷貝到R14(LR,連結寄存器)。由於BL指令儲存了下條指令的地址,因此使用指令“MOV PC ,LR”即可實現子程式的返回。而B指令則無法實現子程式的返回,只能實現單純的跳轉。使用者在編程的時候,可根據具體應用選用合適的子程式調用語句。   AREA Init,CODE,READONLY  ;該偽指令定義了一個程式碼片段,段名為Init,屬性唯讀ENTRY         

深度分析NandFlash—控制器參數TACLS、TWRPH0和TWRPH1的確定(以TQ2440開發板上的K9F2G08U0A為例)

      這三個參數對於NandFlash的讀寫操作來說是比較重要的,沒搞清楚這三個參數,後面的事就不用提了,那這三個參數到底是幹什麼的呢,我們怎麼樣去配置他們呢,今天我花了點時間研究了一下這三個參數。在datasheet中對他們的時序有下面兩種圖示,一種是寫命令或者地址的情況,一種是讀寫資料的情況:  由可知,這三個參數控制的是Nand Flash 訊號線CLE/ALE與寫控制訊號nWE的時序關係。TACLS:表示CLT/ALE的建立時間(setup

S3C2440 U-Boot移植總結

U-Boot版本:2008.10        目標板:mini2440最基本的U-Boot修改如下:1,/Makefile 編譯規則2,/cpu/arm920t/start.S                 啟動並執行第一個啟動代碼3,/cpu/arm920t/s3c24x0/interrupts.c    中斷初始化4,/cpu/arm920t/s3c24x0/speed.c 時鐘初始化和設定5,/cpu/arm920t/s3c24x0/serial.c        uart初始化6,/

S3C2440 2.6.29 核心移植詳解

       核心版本為linux-2.6.29.4,目標開發板為mini2440開發板源碼下載:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.4.tar.bz2 移植步驟:1, 修改頂層Makefile           ARCH ?= $(SUBARCH)            CROSS_COMPILE ?=   改為:           ARCH ?= arm              CROSS_COMPILE ?

【#include

一、isalpha功能:判斷字元ch是否為英文字母,當ch為英文字母a-z或A-Z時,在標準c中相當於使用“isupper(ch)||islower(ch)”做測試,返回非零值(不一定是1),否則返回零。二、isupper功能:判斷字元c是否為大寫英文字母說明:當參數c為大寫英文字母(A-Z)時,返回非零值,否則返回零。三、islowerint islower(int c)檢查參數c是否為小寫英文字母。若參數c為小寫英文字母,則返回TRUE,否則返回NULL(0)。

Linux2.6進程調度分析(2)-調度演算法

2.調度演算法Linux2.4版本的核心調度演算法理解起來簡單:在每次進程切換時,核心依次掃描就緒隊列上的每一個進程,計算每個進程的優先順序,再選擇出優先順序最高的進程來運行;儘管這個演算法理解簡單,但是它花費在選擇優先順序最高進程上的時間卻不容忽視。系統中就緒進程越多,花費的時間就越大,時間複雜度為O(n)。而2.6核心所採用的O(1)演算法則很好的解決了這個問題,從它的名稱就可以看出,不管系統中可啟動並執行進程有多少,該演算法總能在有限的時間內選擇出優先順序最高的進程。2.1可運行隊列發送器

YAFFS檔案系統燒入NAND分析

本文轉自:http://blog.csdn.net/noodies/article/details/5620191和普通檔案系統不同,YAFFS檔案系統專門為Nand Flash設計,可以使用mkyaffsimage組建檔案系統的鏡像,但如果要將此鏡像燒入Flash,那麼有些地方需要注意。 硬體上,Nand Flash的設計已考慮到包含壞塊的情況,對於每扇區512位元組的Nand

Linux2.6進程調度分析(3)-與調度有關的函數分析

前面兩篇文章從原理角度分析了進程的調度,本文將從具體的源碼出發,分析與進程進程調度密切相關的幾個函數。1.時間片的分配:task_timeslice()正如我們所知的那樣,進程的時間片與進程的靜態優先順序有直接的關係。從代碼中可以看到,根據進程靜態優先順序static_prio與NICE_TO_PRIO(0)的大小關係,進程時間片的分配可以分為兩條路線。以下代碼如無特別說明均位於linux/kernel/sched.c下。1static unsigned int

636 一個水題

世界末日時間限制:1000 ms  |  記憶體限制:65535 KB難度:1描述世界末日馬上就要來臨了,當然,每個人都想買到船票,但是由於船票有限,因此需要回答對一個問題才能買票。問題是這樣的:給你一個數n (1 <= n <= 10000),之後給n個正整數 (<= 10000),問在這n個數中是否存在一些數的和是n的倍數。輸入多組測試資料(最多100組)。首先輸入一個數n,然後輸入n個數。輸出如果能找到一些數的和是n的倍數,輸出"YES",否則輸出"NO"。範例輸入55

【5.3.2 字母重排】

輸入一個字典(用******結尾),然後再輸入若干單詞。每輸入一個單詞w,你都需要在字典中找出所有可以用w的字母重排後得到的單詞,並按照字典序從小到大的順序在一行中輸出(如果不存在,輸出:()。輸入單詞之間用空格或空行隔開,且所有輸入單詞都由不超過6個小寫字母組成。注意,字典中的單詞不一定按字典序排列。範例輸入:tarp given score refund only trap work earn course pepper part ******resco nfudre aptr sett

error C3859: virtual memory range for PCH exceeded。 原因及解決

今天編譯一個項目時,出現如下編譯錯誤:1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\vector(203) : error C3859: virtual memory range for PCH exceeded; please recompile with a command line option of '-Zm110' or greater1>d:\program files

【字串替換 113】

字串替換時間限制:3000 ms  |  記憶體限制:65535 KB難度:2描述編寫一個程式實現將字串中的所有"you"替換成"we"輸入輸入包含多行資料 每行資料是一個字串,長度不超過1000 資料以EOF結束輸出對於輸入的每一行,輸出替換後的字串範例輸入you are what you do範例輸出we are what we do第一次想的方法:#include<stdio.h>#include<string.h>char

S3C2440 U-Bboot移植–支援NANDFLASH驅動 K9F2G08U0C

移植nandflash驅動,使U-Boot支援nand操作。 U-Boot版本:U-boot 2008.10   目標板:Mini2440   Nandflash型號: K9F2G08U0C  256M        在U-Boot的drivers/mtd下又兩個目錄,分別是nand和nand_leagcy。其中nand_legacy中也包含了nand實現的相關操作指令,不過由於這是為了支援一些老版本而保留的。本次移植採用nand目錄。修改include/configs/mini2440.h。1

【Cantor 的數表 5.4.1】

【題目】題目描述如下數列,前5項分別是1/1,1/2,2/1,3/1,2/2……。輸入n,輸出第n項。1/1   1/2   1/3   1/4   1/52/1   2/2   2/3   2/43/1   3/2   3/34/1   4/25/1範例輸入314712345範例輸出2/12/41/459/99【演算法】首先要看懂題目是按什麼規律來排數的,首先是按斜線,然後,是一條斜線從上到下,另一條斜線從下到上交錯的。然後分析第i條斜線有i個數,前i條斜線一共有S(k)=1+2+3+···+

【317 兔子的煩惱(二) 】

兔子的煩惱(二)時間限制:1000 ms  |  記憶體限制:65535 KB難度:3描述在一座山上有n個山洞(每個洞從0~n-1分別編號),這山上有一隻兔子躲在山洞裡,有一隻狼,從編號為0的山洞開始入洞,每隔m個洞,再次入洞抓兔子,現在兔子想知道是否有能避免這場災難的山洞?例如:m=2 and n=6,

Boost 1.47.0編譯

1. 至http://sourceforge.net/projects/boost/files/boost/1.47.0/下載boost最新版1.47.0;2. 解壓縮後,運行bootstrap.bat批次檔,得到bjam.exe;3. 進入VS2008的Command Prompt (方法:Tools -> Visual Studio 2008 Command Prompt),轉到boost目錄。(例如,我的boost目錄:D:\boost_1_47_0)4. 輸入“bjam

【16進位的簡單運算 244】

16進位的簡單運算時間限制:1000 ms  | 

【23 取石子(一)】

取石子(一)時間限制:3000 ms

【#include 】

一:fgets原型是char *fgets(char *buf, int bufsize, FILE

總頁數: 61357 1 .... 24365 24366 24367 24368 24369 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.