之前我寫過一篇文章來介紹硬改tp-link路由器,就是更換它的flash。那個時候就發現路由器這種裝置硬碟(flash)的容量比記憶體容量小得多,flash是16mb,記憶體是64mb。今天買了本嵌入式的教程才知道,儲存器的分類是這樣的。flash不是硬碟,但可以當個硬碟用。這和我們的pc機的儲存裝置不一樣,如下圖:
在這之前的程式,要麼是在片內記憶體(4k)裡執行的,要麼是從sdram執行的。在nandflash這課裡,開始用**從nand flash裡讀取資料。
先從**結構上分析分為哪幾步:
其中的第1、2、5以前面已經了解過,這節重點學習下nand初始化與nand讀取這兩步(3、4)如下圖:
上圖里的設定時序的值**於2440的資料手刪,查暫存器nfconf一節。同理控制也是查暫存器,暫存器名是nfcont。而寫位址裡為什麼要分5步,為什麼要發0命令與30命令,這是從nand flash的資料手冊查到的。
sections
second 0x30000000 : at(4096)
} 意思是把可檔案(bin)分成兩段,而第一段(head.o,init.o,nand.o)應該放到位址0裡去,第二段(main.o)應該放到位址0x3000000裡去。上面的4096是什麼意思?上電時會把nandflash的前4k內容(head.o,init.o,nand.o)複製到片內記憶體。sdram的起始位址是0x3000000,而4096之後的內容(main.o)複製到sdram裡面去,然後就執行sdram裡的main程式就可以了。
那些設定的棧位址還沒搞明白,後面再看看有沒有講的。我目前的學習經驗是,正常的每節課要聽3遍以上。第一遍就聽下是否是自己需要的,自己知道的知識不需要就刪了。第二遍要寫乙個時刻表,把這節課分成幾段,每段是什麼內容、開始結束時間是什麼都記錄好。第三遍再仔細分析功能,開啟**,對照著看。
使用樹莓派製作智慧型小車
小車的控制最主要有兩方面的控制,乙個是小車的前後左右的運動控制,乙個是攝像頭的拍攝 上下左右轉運的控制。複製 coding utf 8 import rpi.gpio as gpio import time 小車電機引腳定義 leftin1 20 leftin2 21 leftspeed 16 ri...
飛思卡爾智慧型小車計時器
智慧型小車之旅依然在繼續。實驗室非常簡陋。卻有乙個比較大的賽道。除此之外比較寒酸。想到要為小車做乙個計時系統。心血來潮。花一天時間學習51微控制器。一天時間設計100秒4位數碼管計時裝置。最後拼湊了乙個象模像樣的光電開關。終於把小車計時系統給弄起來了。為實驗室新增一工具。說什麼也是花了兩天時間沒日沒...
智慧型小車紅外避障模組 使用教程
今天就給 大家分享一下,何如在你的微控制器或者樹莓派上呼叫紅外避障模組。循跡模組和紅外避障模組類似。循跡模組的紅外發射二極體不斷發射紅外線,當放射出的紅外線被物理反射時,被紅外置收器接收,並輸出模擬值。輸出模擬值和物體距離以及物體顏色有關,可以通過兩路或者多路紅外感測器判斷黑線的位置,從而控制小車運...