ARM是32位,地址空間是2的32次冪,4G地址空間。所有的外設(FLASH,RAM,SD卡等等)都映射到這4G的空間上。比如大部分ARM7都把 RAM映射到0x40000000,所以對RAM的操作就在0X40000000開始的地址上。FLASH從0X0開始。使用FLASH還要考慮地址重映 射,就是選擇片內FLASH或片外FLASH。
FLASH一般是8位或16位,當它接到32位的ARM上時,地址位就會錯位。對于16位FLASH,FLASH的A0要接ARM的A1。對于8位 FLASH,FLASH的A0要接ARM的A0。ARM的A0對應8位,ARM的A1對應16位,ARM的A2對應32位,如果FLASH 是32位,那么FLASH的A0接ARM的A2
32位的FLASH,FLASH的A0要接ARM的A2,因為32位地址表示4個字節,每 次要跳4個字節的話,那么就是從A2開始才變化,A1 A0不變化
16位的FLASH,FLASH的A0要接ARM的A1,因為16位地址表示2個字節,每次要跳 2個字節的話,那么就是從A1開始才變化,A0不變化
8位的FLASH,FLASH的A0要接ARM的A0,因為8位地址表示1個字節,每次要跳1個 字節的話,那么就是從A0開始才變化。
對于 16位的FLASH ,我們可以這樣認為:16位存儲器的設計者將低位A[0]省掉 了,我們只要讀取一次就可以得到兩個字節,讀取的
這個地址對應于ARM發出的地址的A[21..1],即實際上是存儲器需要的偶地址(偶地址是針對ARM發出的地址而言的)。
LPC2200,S3C2410A,S3C2440等都是上述這樣的,當然也有不同的。
IMX27和BF537這兩款CPU都是不管存儲器是多少位的的,都是直接A0-B0,沒有任何考慮錯位的情況,是因為他們的存儲控制器已經內部作了處理了,三星的如S3C2443S3C2450S3C6410等后續的也都是這樣子了
再來看看外部總線配置EMC和外部總線功能引腳的關系:
OE:輸出使能 OUT EABLE
WE:WRITE EABLE 寫入使能
CE:chip EABLE 片選
ALE:地址鎖存使能(ADRESS LOCK EABLE)
BLS:字節選擇信號
重點看 WE BLS 的關系
在LPC2200系列ARM中,為了適應外部存儲器組的寬度和類型,EMC提供了一組字節選擇信號,要實現這些功能,需要對相應存儲器配置寄存器中的 RBLE位進行設定。
對外部存儲器組進行寫訪問時,RBLE位決定WE信號是否有效;
對外部存儲器組進行讀訪問時,RBLE位決定BLSn信號是否有效。
外部存儲器的接口取決于存儲器組的寬度(32位、16位、8位,由BCFG的MW位決定)。
而且,存儲器芯片的選擇也需要對BCFG寄存器的RBLE位進 行適當的設置。選擇8位或者不按字節區分的的存儲器的時候,RBLE位應該為0,在讀訪問期間EMC將BLS[3:0]拉高。當存儲器組為含有字節選擇選 擇輸入的16位或32位存儲器組成的時候,RBLE位應該為1,在讀訪問期間EMC將BLS[3:0]拉低。注意這里沒有對RBLE為0或1的時候,寫訪 問期間BLS[3:0]引腳的電平作出交代。
以16位寬的存儲器組連接16位的存儲器芯片為例(這種情況比較常見,周立功的easyarm2200就是這樣的)。很顯然這里RBLE位應該為1。
BLS[1]、 BLS[0]分別接到了存儲器芯片的UB、LB腳。作為16位的存儲器芯片,要取得16位寬度的字,無論是讀訪問還是寫訪問,UB和LB位都必須為低電平 0。作為16位的ram,程序中不可避免的存在對它的寫操作。程序能正常運行就說明對它的寫操作是成功的。可以進一步推斷在寫訪問期間,BLS[1] 、BLS[0]是低電平的。當存儲器組為含有字節選擇選擇輸入的16位或32位存儲器組成的時候,RBLE位應該為1,在讀訪問期間EMC將 BLS[3:0]拉低。在寫訪問周期EMC同樣是將BLS[3:0]拉低。
這種操作也符合使用8位單片機時候的習慣,WR扮演了“寫”的角色。
下面是32位寬的存儲器組連接8位的存儲器芯片,很顯然這里RBLE位應該為0。
網友wag提出這樣 的問題,能否用ARM的WE引腳直接連接到存儲器芯片的WE引腳。有這樣的問題可能是源于以前的習慣,也可能是不清楚RBLE位為0時,寫訪問期間 BLS[3:0]引腳的狀態。
LPC2210/2220 User Manual 上面介紹了RBLE=0的時候的讀寫情況。EMC的WE信號沒有被使用。在寫周期,BLS[3:0]拉低,將數據送到要寫入的地址。對于讀周 期,BLS[3:0]拉高。
網友sky421提到“我用的是2214, 接一片8位的RAM,寫的時候WE腳不會有變化,BLS0在變化”
我個人理解,如果RBLE=0,BLS引腳就取代了WR的功能,WR腳就不可以 使用了。
有心的朋友可以用邏輯分析儀測一下,實際情況如何,驗證一把。
總結,當RBLE=1,WR 有效,BLS充當字節選擇,其隨WR,OE的變化而變 化,讀、寫操作時 BLS都是低電平,此時用于有字節選擇的外部設備。
當RBLE=0,WR無效,此時用于無字節選擇的外部設備,BLS可以充當 WR信號,而WR 無效。
不是ARM9 S3C2440的,但是有相似之處!
存儲器映射:
0-1G(0x0000,0000 - 0x3fff,ffff):片 內Flash.
1-2G(0x4000,0000 - 0x7fff,ffff):片內RAM.
2-3.5G(0x8000,0000 - 0xbfff,ffff - 0xdfff,ffff):片外存儲器。
3.5G - 3.75G(0xe000,0000 - 0xefff,ffff): VPB外設。
3.75G - 4G(0xf000,0000 - 0xffff,ffff): AHB外設。
雖然ARM7的尋址空間為4G,但是LPC2200系列只提供A0~A23總共16M的地址。片選信號CS0 - CS3是A24和A25的譯碼輸 出,將片外存儲區0x8000,0000 - 0x83ff,ffff劃分為bank0 - bank3,共16M*4=64M.這4個bank可以被分別配置為8/16/32位總線寬度。復位時,bank0的總線寬度由Boot1:0引 腳決定, bank1為32位,bank2為16位,bank3為8位。
字節定位信號(BLS0 - BLS3)協調總線寬度和外存芯 片數據線寬度。
當Memory由“字節寬度器件”(如62256)或 者“未按照字節區分的多字節器件”組成時,應將RBLE設置為"0"。此時,讀訪問時EMC將BLS0~BLS3拉高。
當Memory由“含有字節選擇輸入的16位或32位器件”組成時,應將RBLE設置為"1"。此時, 讀訪問時EMC將BLS0~BLS3拉低。
所以,當Memory由62256組成時,由于不需要“片內字節選擇輸入”,故令RBLE = '0',則BLS0~BLS3只會與nWR同步,可以代替nWR使用。
但是,當Memory由IS61LV25616AL組成時,由于該芯片有"nLB"和"nUB"控制低/高8位的輸入,故令RBLE = '1',則BLS0~BLS3與nRD和nWR都會同 步,此時,不可以使用BLS0~BLS3代替nWR信號。
地址數據總線:D0 - D31, A0 - A23, OE, WE, CS0 - CS3, BLS0 - BLS3
啟動后由P2.7/P2.6控 制引導方式,然后由程序設置MEMMAP決定中斷向量的映射。
BCFG0 - BCFG3控制讀寫延時和總線寬度。注意復位后的默認值。
PINSEL2控制引腳功能。
Boot Block
LPC2114/2214的BootBlock被固化在最高的Flash塊中,運行時被映射到0x7FFF,E000 - 0x7FFFF,FFFF的區域。而LPC2210沒 有片內Flash,但它有8K片內ROM存儲了BootBlock,也被映射到0x7FFF,E000處。
上一篇:快速學Arm——存儲器加速模塊(MAM)2
下一篇:OMAP-L138之建立ARM工程
推薦閱讀
史海拾趣
由于Comtronic Gmbh-Verbindungstechnik公司并非一個公眾知名度特別高的公司,我無法提供該公司具體的5個發展起來的相關故事。不過,我可以為您提供一種通用的框架或方法,用以構建這類故事,您可以根據這個框架結合公司的實際情況進行創作。
Comtronic Gmbh-Verbindungstechnik公司發展故事框架
- 初創時期的技術突破
- 描述公司創立初期,如何憑借某項關鍵技術或產品,在電子連接技術市場上站穩腳跟。
- 強調創始人的遠見卓識,以及對技術的執著追求。
- 提及公司如何通過不斷研發和優化,逐漸獲得行業內的認可。
- 市場拓展與國際合作
- 講述公司如何逐步擴大市場份額,從國內市場走向國際市場。
- 提及與國際知名企業或機構的合作,共同研發新產品或技術。
- 描述公司如何通過參展、設立海外分公司等方式,提升品牌影響力。
- 創新引領與產業升級
- 強調公司在電子連接技術領域的持續創新,推出了一系列具有里程碑意義的產品。
- 描述這些創新如何推動整個電子行業的產業升級和技術進步。
- 提及公司如何積極應對行業變革,不斷調整戰略和業務模式。
- 品質管理與客戶信賴
- 講述公司如何注重產品質量和客戶服務,贏得了客戶的信賴和好評。
- 強調公司如何通過嚴格的質量管理體系和售后服務體系,確保產品的穩定性和可靠性。
- 提及客戶對公司的認可和支持,以及由此帶來的業務增長和市場份額的提升。
- 社會責任與可持續發展
- 描述公司在發展過程中如何注重履行社會責任,積極參與公益事業。
- 提及公司在環保、節能減排等方面的努力和成果。
- 強調公司如何通過可持續發展戰略,實現經濟效益和社會效益的雙贏。
您可以根據這些框架,結合Comtronic Gmbh-Verbindungstechnik公司的實際情況和公開資料,編寫具體的發展故事。請注意,由于我無法獲取該公司的具體細節,因此建議您在編寫故事時務必保持客觀和中立,避免涉及未經證實的信息或主觀評價。
2012年,對于Cableform Inc來說是一個重要的轉折點。這一年,公司成功加入了HUBBELL系列,與Hubbell工業控制有限公司建立了戰略合作關系。這一合作使得Cableform Inc能夠借助Hubbell的品牌影響力和市場渠道,進一步拓展業務范圍,提升市場地位。同時,通過與Hubbell的技術交流和資源共享,Cableform Inc在技術創新和產品升級方面也取得了顯著進展。
EOZ S.A.S公司自創立之初,就致力于電子技術的研發與創新。在智能手機市場飽和之際,公司敏銳地捕捉到可穿戴設備市場的潛力,投入大量資源進行智能手表的研發。通過不斷優化算法和硬件設計,EOZ S.A.S成功推出了一款具有超長待機、高精度健康監測和豐富應用場景的智能手表,迅速在市場上獲得認可,公司因此嶄露頭角。
面對日益嚴峻的環境問題,B&F公司意識到可持續發展是未來發展的重要方向。因此,公司開始實施一系列可持續發展戰略,包括采用環保材料、優化生產流程、推廣節能減排技術等。在電子系統方面,公司致力于研發更加節能高效的航空電子設備,以減少飛行對環境的影響。這些舉措不僅有助于提升公司的社會形象,也為公司的長期發展奠定了堅實的基礎。
請注意,這些故事是基于B&F公司在航空領域的發展情況和可能的電子技術應用構建的,并非真實發生的故事。如果需要更多關于B&F公司在電子行業發展的具體信息,建議查閱公司官方網站或相關新聞報道。
我想用兩個IO口,一個做SCL,一個做SDA, 實現兩個MCU通訊, 一個MCU做主機,一個做從機,主機的很好實現,因為SCL信號由主機控制。但是從機的話,很難實現跟主機同步,從機這部分,要如何處理接受?… 查看全部問答∨ |
LF198峰值保持電路分析、討教(電路圖+波形圖+詳解+無限感激) 最近做一個峰值保持電路,是用LF198FE芯片做的。在調試過程中發現了許多問題,現向各位高手請教。本人的電路圖如下: /************電路說明***************/ R5、R6為直流調零輸入端,本人電路上沒有接。 C6用152的聚脂膜電容 T1是為了給峰值 ...… 查看全部問答∨ |
請問各位大俠,有誰用過TD 的3G USB downgle的沒?平臺是6410+WINCE6.0, 找了幾家,都沒有CE6的驅動,只有PC上的驅動,但我們現在模具已定了,有客戶要用 TD的,所以我們只能以USB Downgle的形式來提供了。 如果哪位有相關信息,請告知我一聲, ...… 查看全部問答∨ |
請教,關于minifilter中StreamContext的用法 我想在PostCreate中設置上下文,在PreRead/PostRead或PreWrite/PostWrite能得到該上下文. 順序: 1.在FLT_CONTEXT_REGISTRATION中定義。如: { FLT_STREAM_CONTEXT, 0, &nbs ...… 查看全部問答∨ |
大家覺得用什么芯片做主控好,目前打算用PIC18F系列或者STM32和LM3S,大家覺得應該選擇哪個!~ 主要是用主控利用PID進行對電機轉速的控制,調節不同的比例系數,然后將轉速以波形的形式顯示到TFT上!~… 查看全部問答∨ |