主頁 > 軟體設計 > 嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

2021-11-15 11:34:32 軟體設計

在嵌入式開發中,如果芯片內部有Flash,應用程式通常保存在芯片內部FLASH中,比如Cortex-M系列的單片機;如果芯片內部沒有Flash,則應用程式通常保存于外部的NAND FLASH中,比如Cortex-A系列的芯片,這些Flash都是可以通過軟體編碼進行重新編程,

在計算機發展早期,資料是存盤在ROM中,ROM中的資料只讀不可寫,應用有限,直到后面出現的EEPROM、NAND存盤器,使得計算機存盤技術的應用得到快速發展,特別是近十年廣泛應用的高速存盤技術eMMC與UFS,推動消費電子領域的快速發展,比如手機存盤技術,現今最新款的小米11,使用了UFS3.1技術,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

一、存盤器的發展

存盤器的快速發展得益于半導體技術的發明與發展,特別是晶體管與CMOS管的發明,通過電信號來控制自身開合,以開關的斷開和閉合來代表0和1,這些就是存盤電路的基本邏輯構成,隨著集成電路的出現,ROM存盤技術也隨之產生,如下簡要了解存盤技術的發展史:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

二、ROM

ROM是Read Only Memory的簡稱,即為只讀存盤器,ROM內部的程式是在ROM的制造時被燒錄進去的,其中的內容只能讀不能改,一旦燒錄進去,用戶只能讀取內部的資料,不能再作任何修改,如果發現ROM的內容寫錯,則該ROM芯片只能報廢,由于ROM是在生產線上生產的,由于成本高,一般只用在大批量應用的場合,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

三、PROM

由于ROM在出廠時已被固化,用戶無法定制自己的程式和資料,因此進行了改進,出現了PROM(Programmable ROM,可編程ROM),也就是出廠時ROM里面沒有資料即全為1,用戶可以用專用工具進行固化程式資料到ROM中,但是這種機會只有一次,一旦寫入后也無法修改,若是出了錯誤,已寫入的芯片也只能報廢,

四、EPROM

PROM這種只能一次性編程顯然成本高不符合開發需求,因此EPROM(Erasable Programmable ROM,可擦除可編程ROM)芯片出現,通過紫外線可重復擦除和寫入,解決了PROM芯片只能寫入一次的弊端,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

EPROM芯片有一個很明顯的特征,在其正面的陶瓷封裝上,開有一個玻璃視窗,透過該視窗,可以看到其內部的集成電路,紫外線透過該孔照射內部芯片就可以擦除其內的資料,完成芯片擦除的操作要用到EPROM擦除器,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

EPROM的型號有以27開頭的系列,如2764(8*8K)是一片64K Bits容量的EPROM芯片,EPROM芯片在寫入程式后,還要以不透光的貼紙或膠布把視窗封住,以免受到周圍的紫外線照射而使程式丟失,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

四、EEPROM

雖然EPROM可多次擦除編程,但是由于需要編程器,所以EPROM還是不是很方便使用,因此 EEPROM(Electrically Erasable Programmable ROM,電可擦除可編程ROM)隨著產生,EEPROM的擦除不需要借助于其它設備,它是以電子信號來修改其內容的,而且是以Byte為最小修改單位,不需要全部擦除再寫入,很適合嵌入式設備的外部存盤器,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

目前EEPROM還有在使用,以Ateml公司的AT24C系列的CMOS E2PROM為例,其采用IIC通信介面,電壓1.8-3.6V,嵌入式設備應用很廣泛,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

五、Flash

Flash目前主要是Intel于1988年開發出的NOR flash技術和1989年東芝公司開發的NAND flash技術;它們的出現徹底改變了存盤器市場上由EPROM(Erasable Programmable Read-Only-Memory電可編程式只讀存盤器)和EEPROM(電可擦只讀存盤器Electrically Erasable Programmable Read - Only Memory)一統天下的局面,

這兩種技術區別在于介面與內部存盤結構,在介面方面,NOR flash有獨立的地址與資料線,而NAND flash沒有,他們的特性區別如下表所示:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

內部結構方面(基于SLC NAND),如下表所示區別:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

5.1、nor flash

NOR Flash最大特點是支持XIP(Execute On Chip),既程式可以直接在NOR flash的片內執行,在NOR Flash中的代碼運行時不需要重定位復制到RAM內,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

如上圖所示Nor Flash,型號為MX29LV160,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

NOR Flash的地址線和資料線分開,只要能夠提供資料地址,資料總線就能正確給出資料,不過不能直接對它進行寫操作,執行寫操作之前需要先發送固定的命令序列,然后發送寫操作的地址和資料,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

NOR Flash存盤器的最小訪問單元一般分為8位和16位的,也有一些NOR Flash器件同時支持8位和16位模式,這種Flash的位寬可以在設計硬體時選擇,當芯片的BYTE#引腳接為高電平,芯片作業在位寬16位模式,BYTE#引腳設為低電平時,芯片作業在位寬8位模式,

NOR Flash一般有多個扇區,扇區是NOR Flash擦除的最小單位,Nor Flash中每個扇區的大小也不是固定的,

MX29LV160為例,寫時序圖如下所示(地址與資料總線是獨立的):

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

讀時序圖如下所示,具體可參考資料手冊:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

5.2、nand flash

5.2.1、nand型別

Nand flash是現在使用最多的閃存技術,現在主流的SD卡、eMMC、UFS、SSD等都是基于Nand flash技術的,但是Nand flash根據其存盤單元的型別,可分為SLC、MLC、TLC、QLC、PLC、…… 后續會有很多型別的LC系列,這些型別的區別是同一個存盤單元可以表示的資料位數不同,以SLC、MLC、TLC、QLC為例如下圖所示:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

SLC:一個單元表示1bit資料;

MLC:一個單元表示2bit資料;

MLC:一個單元表示3bit資料;

QLC:一個單元表示4bit資料;

因此同樣尺寸大小的nand flash,基于QLC可以存盤的容量是SLC的4倍之多,但是雖然存盤容量多,但是在讀寫速率、擦除壽命及穩定性上卻是更低的,目前市面上比較多的是基于SLC、MLC、TLC單元結構的,特性對比如下:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

SLC讀寫快,壽命長,但價格貴,容量低;而TLC讀寫慢,壽命短,但價格便宜,容量高,所以市面上基于nand flash的產品中,低端產品大部分都是TLC,中端產品大部分都是mlc,企業級的高端產品就是用SLC,追求的是穩定,

5.2.2、2D與3D技術

現在市場上追求的是設備的小型化,但是容量要求最大化,因此通過不斷地提升制程工藝技術,減小每個存盤單元的大小,如從45nm到16nm(目前最先進制程為高通驍龍888處理器達5nm),能到達同樣的芯片體積存盤容量進行擴大,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

但是制程提高也帶來了一個瓶頸,當隨著制程工藝提高,每個存盤單元越小,nand單元顆粒的訊訓層越薄,可靠性越低,特別是QLC這種一個存盤單元表示4bit/cell資料,影響更大,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

假設存盤單元電壓是 1.8V,對 SLC 而言,一個 bit 有二個狀態,平均分配 1.8V 電壓,每個狀態可以分到 0.9V;對 MLC 而言,四個狀態平均分配電壓,每個狀態可以分到 0.45V,以此類推,TLC 每個狀態只可以分到 0.225V,而 QLC 更慘,每個狀態只可以分到 0.1125V,在這么小的電壓下,這么多的狀態以極小的電壓區隔,電壓區隔越小越難控制,干擾也越復雜,而這些問題都會影響 TLC 或 QLC 閃存的性能、可靠性及穩定性,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

Nand 2D技術屬于平面閃存(Planar NAND)范疇,其通過工藝提高容量瓶頸在10/9nm上;因此Nand 3D技術早在2007年就被提出來,即立體結構閃存,舉例說明:如果2D是平房,則3D就是高樓大廈,3D就是N層的2D閃存的堆疊,如上圖所示,

但是3D并不是簡單的進行堆疊,不同的公司有不同3D技術工藝,在3D閃存中具有代表性的工藝有:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

也正因為3D NAND的技術,使得部分采用相應技術的TLC產品達到了MLC的性能,就是我們常說的3D TLC,而三星、美光等大廠的第四代顆粒3D QLC產品也已經投入了市場,讓廣大消費者體驗到了更高的容量、更低的價格、更快的讀寫性能,

隨著3D Nand的出現,2D由于無法在縮小單元尺寸的瓶頸限制,已經走到盡頭,現在最新的3D堆疊層數達到了128層,如下圖所示:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

5.2.3、nand介面與時序

Nand flash比nor flash寫/擦除快,壽命長,成本低,得到更加廣泛的應用,但是其沒有獨立地址總線與資料總線,地址與資料共用8bit/16bit IO,因此其讀取速率方面比nor略低一些,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

以美光MT29F系列nand flash為例(如MT29F16G08),其復用8bit或16bit IO用于傳輸命令、地址、資料,同時有5組控制信號CE#,CLE,ALE,WE#,RE#,還有WP寫保護與R/B狀態信號線,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

各個引腳功能描述如下表所示:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

寫命令時序:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

寫地址時序:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

資料寫入時序:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

資料讀取時序:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

以上讀寫MT29F系列芯片的具體命令與地址資訊組成可參考MT29F系列的規格書,網盤地址為:

關注公眾號:一口Linux:后臺回復:

MT29F

六、MMC與SD系列存盤卡

6.1、存盤卡發展簡介

Nand Flash的出現使得資料存盤得到快速的發展,但是Nand Flash只是一種存盤介質,要在其上讀寫資料,需要外部加上主控和電路設計,因此會影響到讀寫速率的提升,同時也是有點復雜,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

基于此,控制器+Nand Flash組合的存盤結構模式開始出現,控制器用于處理Nand Flash的存盤邏輯,同時也可以管理NAND的壞塊、ECC校驗等,解放了外部主芯片的作業,提高了開發效率,于是,MMC卡、SD卡(TF卡)、eMMC卡、UFS等各種介面卡開始出現,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

MMC是比較早出現的一種卡型別,其所定義的總線介面型別及通信協議規范,后續都被SD卡規范及eMMC規范繼承和延續,參考如下圖:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

首先,在1997年,西門子公司和SanDisk推出MMC(MultiMedia Card)卡,成立了MMC協會(MultiMedia Card Association簡稱MMCA),MMC的發展目標主要是針對數碼影像、音樂、手機、PDA、電子書、玩具等產品,

其次,在1999年,日本松下、東芝及美國SanDisk公司共同開發研制了SD(Secure Digital Memory Card)卡,在MMC卡基礎上,擴展了總線協議,支持資料存盤的安全性,后續Mini SD(Mini Secure Digital Memory Card)從SD卡發展而來,體積是SD卡60%,性能跟SD卡一樣;

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

在2004年,摩托羅拉與SANDISK共同研發TF卡(TransFLash),體積更是只有SD卡的1/4,因此,后續早期智能手機的容量擴展都是用來TF卡,

早期SD規范只是針對資料存盤,即只連接SD卡;后面制定了SDIO規范,除了可以外接SD卡外,通過SD總線還可以連接外圍其他IO設備,如WiFi card,Bluetooth card,GPS card等,因此現在SDIO介面基本上可以兼容SD卡與MMC卡,

2010年,隨著智能手機的發展,需要更快速率的資料存盤,因此新的eMMC(Embedded Multi Media Card)規范也發展起來,在2011年至2016年,智能手機的存盤FLASH主要基于eMMC介面;而2016年后,更快的UFS規范的出現,將eMMC替換,UFS成為當下智能手機的主要存盤FLASH,

6.2、存盤卡介面

1、MMC介面:

MMC卡介面共只有7針,支持SPI模式與MMC模式,3根電源線,4根通信線,如下圖所示,分別是SPI模式(Do,Di,CLK,CS)與MMC模式(CMD,DAT,CLK),所以MMC只支持單根資料線,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

2、SD介面

SD介面從MMC中擴展而來,增加到了9針,SD卡大小和MMC卡差不多,比MMC稍微厚一點,其也是有分為SPI模式與SD模式,其中SD模式有1線和4線模式,1線模式可兼容MMC卡的MMC模式,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

上圖描述了SD與MMC介面的對于關系,MMC卡可以通過轉換配接器當作SD卡使用(即使用SD卡1線模式),SD介面個引腳含有如下表:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

3、TF卡介面

TF卡介面是SD卡介面的延續,只有8針,在SD介面上少第3腳VSS1,其它與SD介面一致,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

TF也稱為microSD卡,因此可以通過轉換器轉為SD使用,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

TF卡也支持SPI模式與SD模式,跟SD卡一致,但是體積比SD卡小很多,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

4、eMMC介面

eMMC介面有MMC發展而來,也是由MMC協會訂立,其資料總線擴展到了8位,主要應用是對存盤容量有較高要求的消費電子產品,比如手機,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

隨著eMMC規范版本的升級,其通信速率也不斷的提高,最大速率可達400MB/s,如下表所示,在UFS出現前,智能手機存盤器基本上是基于eMMC介面,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

5、UFS介面

UFS(Universal Flash Storage)是JEDEC發布的新一代通用閃存存盤標準,包括主機側和記憶體芯片側的標準,物理層是MIPI M-PHY,介面協議是SCSI,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

如上圖所示,下行資料流DOUT與上行資料流DIN是獨立的,走差分信號,因此可以進行全雙工通信,相比與eMMC的半雙工,速率提高幾倍,因此現在市面高端智能手機基本都是UFS存盤,最新小米11使用的是UFS3.1版本,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

UFS卡的外觀類似TF卡,有12針引線,每個引線的含義如下圖所示:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

由于UFS相比與TF卡,存盤速率有明顯優勢,將來替換TF卡不可避免,比如在運動相機、航拍飛機等對速率要求更高的領域,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

下圖描述的eMMC與UFS的發展時間表,UFS具體的規范資訊可參考官方網站下載:

https://www.jedec.org/document_search/field_committees/28?page=1

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

七、SSD硬碟

上面的那些存盤卡基本應用于嵌入式領域,比如消費電子和物聯網等設備,現在比較流行的SSD硬碟,內部存盤也是基于Nand Flash存盤,主要應用PC和服務器上,其內部也是由閃存芯片+控制器+快取構成,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

SSD硬碟通過主控連接的介面比較復雜,而且種類繁多,主要有SATA介面、PCIE等,如下表所示:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

目前使用比較多的是SATA3、PCI-E、Msata、SATA Express、M.2、U.2介面,它們的速率、尺寸大小等特性如下表所示:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

各種硬碟的介面常見的如下圖所示:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

八、HDD硬碟(傳統機械硬碟)

目前硬碟有三種型別,分別為:機械硬碟(HDD)、固態硬碟(SSD)、混合硬碟(SSHD),如下表所述:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

HDD硬碟出現時間甚至比ROM還更早,上個世紀50、60年代初,發明了機械硬碟HDD,體積巨大,容量奇小,HDD硬碟發展歷史如下表:

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

HDD硬碟的出現,促進了計算機快速發展,特別是90年代個人電腦的興起,現在許多臺式電腦還有很多的HDD硬碟,

嵌入式開發人員,這些ROM、FLASH、硬碟技術知識,必須要了解

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/357166.html

標籤:其他

上一篇:應屆生校招套路總結——看完同學們都能進大廠

下一篇:新概念炒冷飯——運算子進階詳解

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more