**小鍾 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的人來說..這都自已來
1 則留言:
最近在使用S3C6410開發版做專題研究,想請問如何將eclipse的程式燒寫到板子中呢?很需要你的回覆,謝謝喔^^
張貼留言