2010年5月3日 星期一

小村nandflash概念教學

**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 你工作是不是有做nandflash的read/write操作
小村 說:
 怎樣
 遇到什麼問題
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 想要學nandflash read/write的架構
 我最近買了一個學習版
 是s3c2410
 剛把qi放上去
 你知道qi嗎
 他是一個bootloader
 因為flash過小
 只有64MB
 想要請同事幫我換成1G
 但是要知道 nandflash的讀寫概念
 我才能在換完之後
 將qi正確的放上去
 你會nandflash的存取嗎
 像是block
 error的空間比例
 是不是得看nandflash spec.呢?
小村 說:
 嗯
 首先..你要了解spec..基本上妳1g的flash..  一個page大約是2k btyes size
 nand  flash有一個很重要的觀念就是..只能1變成0,0無法變成1
 每個動作都需要有command跟address
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 0無法變成1??
小村 說:
 嗯
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 有什麼道理在裡面嗎
小村 說:
 說白話一點就是無法覆寫
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 你是說
 我現在如果把eboot燒在某一塊nandflash
 下一次  就無法在燒到同一個區塊了嗎
小村 說:
 可以是可以...但是必需erase
 而且erase的單位是block
 一個block的單位.. 通常不一樣
 如果是大容量的話..一個block是64pgae
 小容量.. 一個block大約是32pgae
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 所以必須先erase
 再去write
 這樣子嗎
小村 說:
 嗯
 但erase是以block為單位
 write是以page為單位
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 nandflash都是這樣的操作原則
小村 說:
 read也是以page為單位
 所以使用上要注意
 嗯
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 所以commnd指的就是
 erase, read, write
 這三個動作
小村 說:
 嗯
 ex:寫一個page通常要的流程
 CMD+Addr+data+CMD
 而DATA就看你是用DMA 去做的還是CPU去做的
 速度就不同
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 DMA快於cpu
小村 說:
 費話
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 哈哈
小村 說:
 就看你的EVO BOARD的LIB有沒有給妳DMA的module
 沒有的話..就要自已寫
 不過通常是會付
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 嗯嗯
小村 說:
 每家IC公司用的方式不同..但是原理大同小異
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 每個nandflash的 一個block多少page
 就是要看spec嚕
小村 說:
 嗯
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 通常1G也會有不同的spec.嗎
 譬如說
小村 說:
 而且每個PAGE SIZE也不同
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 1G 有些廠商 64page
 有些事32 pages
小村 說:
 基本上來說..都是一樣
 因為1 G以上都是2K Bytes per page
 最簡單的就是看你手上的flash sample spce來決定
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 ok
 所以我需要研究一下spec.
小村 說:
 再來難一點就是..把file system內建在nand flash上
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 file system這個難
小村 說:
 要學一些演算法..因為flash每個page無法寫超過10萬次以上
 easy啦
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 果然是小村
 學了幾套file system阿
小村 說:
 我寫了二年
 最簡單用到就是FAT12/16/32
 再來就是Eta3
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 ext3也用到嚕
 有寫到linux喔  不然怎麼會用到ext3
小村 說:
 如果os走的是linux
 嗯
 現在很多公司不是走mirco linux
 不就是走RTOS
 如果是IC House
 因為是free license
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 嗯嗯
 所以看來  我吸取你的概念之後
小村 說:
 你要弄nand 哦
 是公司要你做的?
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 就是要去研究nandflash的spec了
 沒有啦
 自己信去
 自己興趣
 買了開發版
 想要加強自己這個部份
 接下來要搞sd card read write
小村 說:
 有幾點要注意
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 LCD處理
 ...等等
 應該會讓我搞好幾個月呢
小村 說:
 那妳要學的很多哦
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 還有什麼要注意阿
 對阿  要學的可多了
小村 說:
 因為光一個都可以買一個產品
 你買的evo board有沒有提供相關的lib給你
 我指的是fw lib
 因為通常會寫好
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 有一些tool
 還沒發現lib
 不過  他有給source code
小村 說:
 你只要學會用他的api就ok
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 還沒研究到
小村 說:
 建議你.. 先把flash spce看完
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 ^^  了解
小村 說:
 再看..source code有沒有相關的api
 要你重寫 ..我覺的有些強人所難
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 要重寫  非常難就是了
 還是說  針對新人來說
小村 說:
 因為這意味你要了解他的cpu 架構跟dma架構
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 筆記中 (cpu and dma架構要了解)
小村 說:
 如果你真的想走遷入式系統(soc)
 你可以去找fw的工作
 不過以ic house比較好
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 fw = firmware?
小村 說:
 因為學到很底層
 嗯
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 筆記中 (ic house可以學到很底層)
小村 說:
 因為寫ic fw的人...要到系統公司很簡單
 反之就有一些難度
 而且ic house的os很可能都自已porting
 而porting跟HW的特性有關
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 yes
小村 說:
 你現在說你寫bootloader到nand flash
 其實只是上層
 更底層的是..cpu本身自已也有開機程式在自已rom
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 這還指試算上層喔
 哇
小村 說:
 只要一上電..cpu會去run rom的code
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 這真的在做cpu的f/w工程師才會摸到
小村 說:
 那邊的code run完才會去load flash 的code
 嗯
 這邊我都做過了
 所以我了解整個過程
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 哇靠
 你們有做cpu喔
小村 說:
 rom的程式就像bios
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 我想rom的code
 應該跟做cpu初始話
 會有很大的關係喔
小村 說:
 IC house就是客制化的cpu
 市面上很多的ic其實都是8051
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 單晶片
小村 說:
 我們公司出了兩代8051的相機晶片
 一直到去年才加入arm
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 相機  用單晶片就可以做了喔
小村 說:
 再有機會玩RTOS
 也不完全
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 我一直以為要用多工的晶片ㄝ
小村 說:
 COST
 通常都是8051+其它模組
 產生一個自制型DSP
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 嗯嗯
小村 說:
 可以存放資料.. 影像處理
 這跟你玩Win CE是不一樣
 因為起跑點不一樣
**小鍾 Nelson**[有({)某某&禎禎&阿軒仔(})真好] - 夢想中的生活 我現在正在享受著 說:
 的確是
小村 說:
 Win CE是在Windows下玩他的driver
 至於OS要做的content switch的動作
 你就不需要了解
 但是寫ic fw的人來說..這都自已來

透過Facebook分享

1 則留言:

匿名 提到...

最近在使用S3C6410開發版做專題研究,想請問如何將eclipse的程式燒寫到板子中呢?很需要你的回覆,謝謝喔^^