国产精品成人免费视频_91丝袜美腿美女视频网站_国产一区二区三区在线看_亚洲欧美另类中文字幕_在线电影av不卡网址_国产视频丨精品|在线观看_日韩一区二区三区国产_国产欧美va欧美va香蕉在线_热re91久久精品国99热蜜臀_亚洲第一精品电影_久久九九亚洲综合_国产成人综合精品_97视频在线观看网址_精品视频久久久久久_日韩av片免费在线观看_久久精品国产99国产精品澳门

聚集網(jujiwang.com) - 收錄免費分類目錄信息軟文發布網址提交
免費加入

掌握 ARM 體系結構的奧秘:針對工程師和開發人員的深入培訓 (8小時學透arm體系架構)

文章編號:11265時間:2024-09-30人氣:


體系結構的奧秘

概述

ARM 體系結構是嵌入式系統和移動設備中的事實標準處理器,因其低功耗、高性能和廣泛的可擴展性而受到廣泛認可。對于工程師和開發人員來說,深入了解 ARM 體系結構至關重要,使他們能夠設計和開發出高效、可靠且優化的系統。本深入培訓將提供一個全面的 ARM 體系結構概述,涵蓋基本概念、高級特性和最佳實踐。

目標受眾

本培訓面向希望獲得 ARM 體系結構全面理解的工程師和開發人員,包括:嵌入式系統設計人員移動應用程序開發人員硬件設計工程師軟件架構師

培訓內容

本培訓涵蓋以下主題:

模塊 1:ARM 體系結構概述

ARM 處理器系列指令集架構 (ISA)處理器管道和執行模型

模塊 2:ARM 指令集

數據處理指令程序控制指令浮點和 SIMD 指令異常和中斷處理

模塊 3:ARM 的內存系統

存儲器層級緩存架構內存保護和虛擬化

模塊 4:ARM 的 I/O 系統

總線體系結構外圍設備接口中斷和 DMA

模塊 5:ARM 的高級特性

拇指指令集NEON SIMD 擴展虛擬化技術安全功能

模塊 6:ARM 體系結構的最佳實踐

性能優化技術功耗管理策略調試和故障排除技巧

培訓特點

由經驗豐富的 ARM 專家授課以案例研究和動手練習為基礎的互動式學習涵蓋最新的 ARM 體系結構進展提供參加者證書

培訓詳情

日期: 2023 年 3 月 13-14 日 時間: 每天上午 9:00 至下午 5:00 地點: 在線 費用: 1200 美元

報名

通過以下鏈接注冊:

結論

通過參加本深入培訓,工程師和開發人員將獲得對 ARM 體系結構的全面理解,這將使他們能夠設計和開發出高效、可靠且優化的嵌入式系統和移動應用程序。

嵌入式系統工程的研究領域

嵌入式系統工程主要是完成整個嵌入式系統的設計,例如車載導航GPS,系統工程就要完成整個機器的電路設計和操作系統是屬于嵌入式技術與應用中的。 嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一,像常見到的手機、PDA、機頂盒、高清電視(HDTV)、路由器、汽車電子、醫療儀器、航天航空設備等等都是典型的嵌入式系統。 目前我國嵌入式系統發展最大制約因素是稀缺人才,這主要有兩方面的原因:一是與我們高校的專業設置有關,我國高校的計算機教育普遍以應用軟件為主,很少涉及嵌入式軟件的課程,因此企業很難招聘到馬上可以投入嵌入式軟件開發的實戰型人才;二是嵌入式領域門檻相對較高,知識要求比較全面,而且需要一定的實驗環境(開發板和工具軟件)和有經驗的人進行指導。 嵌入式主要是基于LINUX操作系統下面的C開發,在ARM9(目前企業最流行的)開發平臺下進行的,當然還有WINCE操作系統。 所以在嵌入式里用得最多的編程語言就是C語言以及匯編語言(主要用于單片機的開發)。 嵌入式系統(Embedded System ),IEEE對于嵌入式系統的定義是:An Embedded system is the devices used to control, monitor, or assist the operation of equipment, machinery or plants.嵌入式系統是“用于控制、監視或者輔助操作機器和設備的裝置”。 在中國嵌入式系統領域,比較認同的嵌入式系統概念是:嵌入式系統是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,適用于應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。 它一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶的應用程序等四個部分組成,用于實現對其他設備的控制、監視或管理等功能。 嵌入式系統一般指非PC系統,它包括硬件和軟件兩部分。 硬件包括處理器/微處理器、存儲器及外設器件和I/O端口、圖形控制器等。 軟件部分包括操作系統軟件(OS)(要求實時和多任務操作)和應用程序編程。 有時設計人員把這兩種軟件組合在一起。 應用程序控制著系統的運作和行為;而操作系統控制著應用程序編程與硬件的交互作用。 嵌入式系統的核心是嵌入式微處理器。 嵌入式微處理器一般就具備以下4個特點:1)對實時多任務有很強的支持能力,能完成多任務并且有較短的中斷響應時間;從而使內部的代碼和實時內核心的執行時間減少到最低限度。 2)具有功能很強的存儲區保護功能。 這是由于嵌入式系統的軟件結構已模塊化,而為了避免在軟件模塊之間出現錯誤的交叉作用,需要設計強大的存儲區保護功能,同時也有利于軟件診斷。 3)可擴展的處理器結構,以能最迅速地開展出滿足應用的最高性能的嵌入式微處理器。 4)嵌入式微處理器必須功耗很低,尤其是用于便攜式的無線及移動的計算和通信設備中靠電池供電的嵌入式系統更是如此,如需要功耗只有mW甚至μW級。 嵌入式計算機系統同通用型計算機系統相比具有以下特點:1.嵌入式系統通常是面向特定應用的嵌入式CPU與通用型的最大不同就是嵌入式CPU大多工作在為特定用戶群設計的系統中,它通常都具有低功耗、體積小、集成度高等特點,能夠把通用CPU中許多由板卡完成的任務集成在芯片內部,從而有利于嵌入式系統設計趨于小型化,移動能力大大增強,跟網絡的耦合也越來越緊密。 2.嵌入式系統是將先進的計算機技術、半導體技術和電子技術與各個行業的具體應用相結合后的產物。 這一點就決定了它必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統。 3.嵌入式系統的硬件和軟件都必須高效率地設計,量體裁衣、去除冗余,力爭在同樣的硅片面積上實現更高的性能,這樣才能在具體應用中對處理器的選擇更具有競爭力。 4.嵌入式系統和具體應用有機地結合在一起,它的升級換代也是和具體產品同步進行,因此嵌入式系統產品一旦進入市場,具有較長的生命周期。 5.為了提高執行速度和系統可靠性,嵌入式系統中的軟件一般都固化在存儲器芯片或單片機本身中,而不是存貯于磁盤等載體中。 6.嵌入式系統本身不具備自舉開發能力,即使設計完成以后用戶通常也是不能對其中的程序功能進行修改的,必須有一套開發工具和環境才能進行開發。 嵌入式系統一般指非 PC 系統,有計算機功能但又不稱之為計算機的設備或器材。 它是以應用為中心,軟硬件可裁減的,適應應用系統對功能、可靠性、成本、體積、功耗等綜合性嚴格要求的專用計算機系統。 簡單地說,嵌入式系統集系統的應用軟件與硬件于一體,類似于 PC 中 BIOS 的工作方式,具有軟件代碼小、高度自動化、響應速度快等特點,特別適合于要求實時和多任務的體系。 嵌入式系統主要由嵌入式處理器、相關支撐硬件、嵌入式操作系統及應用軟件系統等組成,它是可獨立工作的“器件”。 嵌入式系統幾乎包括了生活中的所有電器設備,如掌上 PDA 、移動計算設備、電視機頂盒、手機上網、數字電視、多媒體、汽車、微波爐、數字相機、家庭自動化系統、電梯、空調、安全系統、自動售貨機、蜂窩式電話、消費電子設備、工業自動化儀表與醫療儀器等。 嵌入式系統的硬件部分,包括處理器 / 微處理器、存儲器及外設器件和 I/O 端口、圖形控制器等。 嵌入式系統有別于一般的計算機處理系統,它不具備像硬盤那樣大容量的存儲介質,而大多使用 EPROM 、 EEPROM 或閃存 (Flash Memory) 作為存儲介質。 軟件部分包括操作系統軟件 ( 要求實時和多任務操作 ) 和應用程序編程。 嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一。 嵌入式系統用在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應要求很高等。 特別是隨著消費家電的智能化,嵌入式更顯重要。 像我們平常常見到的手機游戲、PDA、電子字典、可視電話、VCD/DVD/MP3Player、數字相機(DC)、數字攝像機(DV)、U-Disk、機頂盒(Set Top Box)、高清電視(HDTV)、游戲機、智能玩具、交換機、路由器、數控設備或儀表、汽車電子、家電控制系統、醫療儀器、航天航空設備等等都是典型的嵌入式系統。 嵌入式系統是軟硬結合的東西,搞嵌入式開發的人有兩類。 一類是學電子工程、通信工程等偏硬件專業出身的人,他們主要是搞硬件設計,有時要開發一些與硬件關系最密切的最底層軟件,如BootLoader、Board Support Package(像PC的BIOS一樣,往下驅動硬件,往上支持操作系統),最初級的硬件驅動程序等。 他們的優勢是對硬件原理非常清楚,不足是他們更擅長定義各種硬件接口,但對復雜軟件系統往往力不從心(例如嵌入式操作系統原理和復雜應用軟件等)。 另一類是學軟件、計算機專業出身的人,主要從事嵌入式操作系統和應用軟件的開發。 如果我們學軟件的人對硬件原理和接口有較好的掌握,我們完全也可寫BSP和硬件驅動程序。 嵌入式硬件設計完后,各種功能就全靠軟件來實現了,嵌入式設備的增值很大程度上取決于嵌入式軟件,這占了嵌入式系統的最主要工作(有很多公司將硬件設計包給了專門的硬件公司,稍復雜的硬件都交給臺灣或國外公司設計,國內的硬件設計力量很弱,很多嵌入式公司自己只負責開發軟件,因為公司都知道,嵌入式產品的差異很大程度在軟件上,在軟件方面是最有“花頭“可做的),所以我們搞軟件的人完全不用擔心我們在嵌入式市場上的用武之地,越是智能設備越是復雜系統,軟件越起關鍵作用,而且這是趨勢。 從事嵌入式軟件開發的好處是:(1)國內外這方面的人都很稀缺。 一方面,是因為這一領域入門門檻較高,不僅要懂較底層軟件(例如操作系統級、驅動程序級軟件),對軟件專業水平要求較高(嵌入式系統對軟件設計的時間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業IT人員很難切入這一領域;另一方面,是因為這一領域較新,發展太快,很多軟硬件技術出現時間不長或正在出現(如ARM處理器、嵌入式操作系統、MPEG技術、無線通信協議等),掌握這些新技術的人當然很找。 嵌入式人才稀缺,身價自然就高,越有經驗價格就越高。 其實嵌入式人才稀少,根本原因可能是大多數人無條件接觸,這需要相應的嵌入式開發板和軟件,另外需要有經驗的人進行指導開發流程。 (2)與企業計算等應用軟件不同,嵌入式領域人才的工作強度通常低一些(但收入不低)。 搞企業應用軟件的IT企業,這個用戶的系統搞完了,又得去搞下一個用戶的,而且每個用戶的需求和完成時間都得按客戶要求改變,往往疲于奔命,重復勞動。 相比而言,搞嵌入式系統的公司,都有自己的產品計劃,按自己的節奏行事。 所開發的產品通常是通用的,不會因客戶的不同而修改。 一個產品型號開發完了,往往有較長一段空閑時間(或只是對軟件進行一些小修補),有時間進行充電和休整。 另外,從事嵌入式軟件的每個人工作范圍相對狹窄,所涉及的專業技術范圍就是那些(ARM、RTOS、MPEG、802.11等),時間長了這些東西會越搞越有經驗,賣賣老本,幾句指導也夠讓那些初入道者琢磨半年的。 若搞應用軟件,可能下一個客戶要換成一個完全不同的軟件開發平臺,那就苦了。 (3)哪天若想創業,搞自已的產品,那么嵌入式是一個不錯的主意,這可不像應用軟件那樣容易被盜版。 土木學院有一個叫啟明星的公司開發出一個好象叫“工程e”的掌上PDA(南校區門口有廣告),施工技術人員用該PDA可當場進行土木概預算和其它土木計算,據說銷路特好。 我認識的某大學老師,他開發的飯館用的點菜PDA(WinCE平臺,可無線連網和上網),據他說銷路不錯,飯館點點PDA讓客戶點菜,多顯派頭檔次。 我記得00級2+2班當年有一組同學在學Windows程序設計課程時用VC++設計了一個功能很強的點菜系統做為課程項目,當時真想建議他們將這個軟件做成PDA,估計會有些銷路(上?;疖囌灸蠌V場的Macdonald便使用很漂亮的PDA給用戶點食品,像摸像樣的)。 這些PDA的硬件設計一般都是請其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設計軟件就變成自己的產品了。 從事嵌入式軟件開發的缺點是:(1)入門起點較高,所用到的技術往往都有一定難度,若軟硬件基礎不好,特別是操作系統級軟件功底不深,則可能不適于此行。 (2)這方面的企業數量要遠少于企業計算類企業。 特別是從事嵌入式的小企業數量較多(小企業要搞自己的產品創業),知名大公司較少(搞嵌入式的大公司主要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半導體、Microtek、研華、華為、中興通信、上廣電等制造類企業)。 這些企業的習慣思維方式是到電子、通信等偏硬專業找人。 (3)有少數公司經常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。 但大多數公司也并無此要求,只要有經驗即可。 對于搞嵌入式軟件的人,最重要的是:(1) 掌握主流嵌入式微處理器的結構與原理(2) 必須掌握一個嵌入式操作系統(3) 必須熟悉嵌入式軟件開發流程并至少做過一個嵌入式軟件項目。 嵌入式軟件方面最重要的課程包括:(1)嵌入式微處理器結構與應用:這是一門嵌入式硬件基礎課程。 我們說過,嵌入式是軟硬件結合的技術,搞嵌入式軟件的人應對ARM處理器工作原理和接口技術有充分了解,包括ARM的匯編指令系統。 若不了解處理器原理,怎么能控制硬件工作,怎么能寫出節省內存又運行高速的最優代碼(嵌入式軟件設計特別講究時空效率),怎么能寫出驅動程序(驅動程序都是與硬件打交道的),很多公司招聘嵌入式軟件人員時都要求熟悉ARM處理器,將來若同學到公司中從事嵌入式軟件開發,公司都會給你一本該設備的硬件規格說明書(xxx Specification),您必須能看懂其中的內存分布和端口使用等最基本的說明(就像x86匯編一樣),否則怎么設計軟件。 有些同學覺得嵌入式處理器課程較枯燥,這主要是硬件課程都較抽象的原因。 還有同學對ARM匯編不感興趣,以為嵌入式開發用C語言就足夠了。 其實不應僅是將匯編語言當成一個程序設計語言,學匯編主要是為了掌握處理器工作原理的。 一個不熟悉匯編語言的人,怎么能在該處理器寫出最優的C語言代碼。 在嵌入式開發的一些關鍵部分,有時還必須寫匯編,如Bootloader等(可能還包括BSP)。 特別是在對速度有極高要求的場合(如DSP處理器的高速圖像采集和圖像解壓縮),主要還要靠匯編寫程序(我看到過很多公司是這樣做的)。 當您在一個嵌入式公司工作時,在查看描述原理的手冊時,可能很多都是用匯編描述的(我就遇到過),這是因為很多硬件設計人員只會寫或者喜歡用匯編描述,此時您就必須看懂匯編程序,否則軟硬件人員可能就無法交流。 很多嵌入式職位招聘時都要求熟悉匯編。 (2) 嵌入式操作系統類課程除了WinCE的實時性稍差外,大多數嵌入式操作系統的實時性都很強,所以也可稱為實時操作系統Real Time Operating System.從事嵌入式的人至少須掌握一個嵌入式操作系統(當然掌握兩個更好),這在嵌入式的所有技術中是最為關鍵的了。 目前最重要的RTOS主要包括:第一類傳統的經典RTOS:最主要的便是Vxworks操作系統,以及其Tornado開發平臺。 Vxworks因出現稍早,實時性很強(據說可在1ms內響應外部事件請求),并且內核可極微(據說最小可8K),可靠性較高等,所以在北美,Vxworks占據了嵌入式系統的多半疆山。 特別是在通信設備等實時性要求較高的系統中,幾乎非Vxworks莫屬。 Vxworks的很多概念和技術都和Linux很類似,主要是C語言開發。 像Bell-alcatel、Lucent、華為等通信企業在開發產品時,Vxworks用得很多。 但Vxworks因價格很高,所以一些小公司或小產品中往往用不起。 很多公司都在往嵌入式Linux轉(聽說華為正在這樣轉)。 但無論如何,Vxworks在一段長時間內仍是不可動搖的。 與Vxworks類似的稍有名的實時操作系統還有pSOS、QNX、Nucleus等RTOS。 第二類嵌入式Linux操作系統:Linux的前途除作為服務器操作系統外,最成功的便是在嵌入式領域的應用,原因當然是免費、開源、支持軟件多、呼擁者眾,這樣嵌入式產品成本會低。 Linux本身不是一個為嵌入式設計的操作系統,不是微內核的,并且實時性不強。 應用在嵌入式領域的Linux系統主要有兩類:一類是專為嵌入式設計的已被裁減過的Linux系統,最常用的是uClinux(不帶MMU功能),占較大應用份額,可在ARM7上跑;另一類是跑在ARM 9上的,一般是將Linux 2.4.18內核移植在其上,可使用更多的Linux功能(當然uClinux更可跑在ARM 9上)。 很多人預測,嵌入式Linux預計將占嵌入式操作系統的50%以上份額,非常重要。 缺點是熟悉Linux的人太少,開發難度稍大。 另外,我們能發現很多教材和很多大學都以ucOS/II為教學用實時操作系統,這主要是由于ucOS/II較簡單,且開源,非常適合入門者學習實時操作系統原理,但由于ucOS/II功能有限,實用用得較少,要學習就應學直接實用的,比如 uClinux就很實用。 況且熟悉了Linux開發,不僅在嵌入式領域有用,對開發Linux應用軟件,對加深操作系統的認識也有幫助,可謂一舉多得。 據我所知,Intel、Philip都在大搞ARM+LINUX的嵌入式開發,Fujitum則是在自己的處理器上大搞Linux開發。 在嵌入式Linux領域,以下幾個方面的人特別難找,一是能將Linux移植到某個新型號的開發版上;二是能寫Linux驅動程序的人;三是熟悉Linux內核裁減和優化的人。 第三類、 Windows CE嵌入式操作系統:Microsoft也看準了嵌入式的巨大市場,MS永遠是最厲害的,WinCE出來只有幾年時間,但已占據了很大市場份額,特別是在PDA、手機、顯示儀表等界面要求較高或者要求快速開發的場合,WinCE已很流行(據說有一家賣工控機的公司板子賣得太好,以至來不及為客戶裁減WinCE)。 Win CE主要為4.2版(),開發平臺主要為WinCE Platform Builder,有時也用EVC環境開發一些較上層的應用,由于WinCE開發都是大家熟悉的VC++環境,這也是WinCE容易被人們接受的原因,開發環境方便快速,微軟的強大技術支持,WinCE開發難度遠低于嵌入式Linux。 對于急于完成,不想拿嵌入式Linux冒險的開發場合,WinCE是最合適了(找嵌入式Linux的人可沒那么好找的),畢竟公司不能像學生學習那樣試試看,保證開發成功更重要。 根據不同的側重點 ,WinCE還有兩個特殊版本,一個是MS PocketPC操作系統專用于PDA上(掌上電腦),另一個是MS SmartPhone操作系統用于智能手機上(帶PDA功能的手機),兩者也都屬于WinCE平臺。 在PDA和手機市場上,除WinCE外,著名的PDA嵌入式操作系統還有Palm OS(因出現很早,很有名)、Symbian等,但在WinCE的強勁沖擊下,Palm和Symbian來日還能有多長?很顯然,嵌入式Linux永遠不可能替代WinCE,而且將來誰占份額大還很難講,畢竟很多人更愿意接受MS的平臺,就像各國政府都在大力推LINUX已好長時間,但您能看到幾個在PC機上真正使用LINUX的用戶?據我觀察,在嵌入式平臺上,LINUX是叫得最響,但還是WinCE實際用得更多.嵌入式LINUX可能更多地是一些有長遠產品計劃的公司,為降低成本而進行長遠考慮。 WinCE和多媒體(如MPEG技術)是微軟亞洲工程院做得較多的項目領域之一,他們很需要精通WinCE的人。 總結關于嵌入式操作系統類課程,若您覺得自己功底較深且能鉆研下去,則可去學嵌入式Linux。 (3) 嵌入式開發的其它相關軟件課程搞嵌入式若能熟悉嵌入式應用的一些主要領域,這樣的人更受企業歡迎。 主要的相關領域包括:A、數字圖像壓縮技術:這是嵌入式最重要最熱門的應用領域之一,主要是應掌握MPEG編解碼算法和技術,如DVD、MP3、PDA、高精電視、機頂盒等都涉及MPEG高速解碼問題。 B、通信協議及編程技術:這包括傳統的TCP/IP協議和熱門的無線通信協議。 首先,大多數嵌入式設備都要連入局域網或Internet,所以首先應掌握TCP/IP協議及其編程,這是需首要掌握的基本技術;其次,無線通信是的大趨勢,所以掌握無線通信協議及編程也是是很重要的。 無結通信協議包括無線局域網通信協議802.11系列,Bluetooth,以及移動通信(如GPRS、GSM、CDMA等)。 C、網絡與信息安全技術:如加密技術,數字證書CA等。 D、DSP技術:DSP是Digital Signal Process數字信號處理的意思,DSP處理器通過硬件實現數字信號處理算法,如高速數據采集、壓縮、解壓縮、通信等。 數字信號處理是電子、通信等硬件專業的課程,對于搞軟件的人若能了解一下最好。 目DSP人才較缺。 如果有信號與系統、數字信號處理等課程基礎,對于學習MPEG編解碼原理會有很大幫助。 (4)嵌入式開發的相關硬件基礎對于軟件工程專業的學生,從事嵌入式軟件開發,像數字電路、計算機組成原理、嵌入式微處理器結構等硬件課程是較重要的。 另外,匯編語言、C/C++、數據結構和算法、特別是操作系統等軟件基礎課也是十分重要的。 嵌入式本身就是從單片機發展過來的,只是單片機不帶OS,而很多嵌入式應用越來越復雜,以至不得不引入嵌入式操作系統。 另外,為追求更高速的信號處理速度,在一些速度要求較高的場合,有不少公司是將一些DSP算法,如MPEG壓縮解壓縮算法等用硬件來實現,這就涉及到HDL數字電路設計技術及其FPGA/IP核實現技術,這方面的人市場上也很缺。 題外話,另外,能寫驅動程序的人是非常緊缺的(驅動程序也可歸于嵌入式范疇),包括桌面Windows中的DDK開發環境和WDM驅動程序。 公司每時每刻都要推出新產品,每一個新產品出來了,要能被操作系統所使用,是必須寫驅動程序的。 寫驅動程序就必須掌握操作系統(如Windows或Linux)的內部工作原理,還涉及到少量硬件知識,難度較大,所以這方面的人很難找。 想成為高手的同學,也可從驅動程序方面獲得突破。 我可說一下自己的經歷,2011年前我曾短暫地在一家公司寫過WinCE驅動程序(正是因為知道這方面的人緊缺,所以才要做這方面的事),盡管那以前從未做過驅動程序,應聘那個職位時正是看準了公司是很難招聘到這方面的人,既然都找不到人,驅動還得有人做,這正是可能有機會切入這一領域的大好機會。 面試時大講自己寫過多少萬行匯編程序,對計算機工作原理如何清楚,簡歷中又寫著我曾閱讀完兩本關于Windows Driver Model的兩本英文原版書,寫過幾個小型的驅動程序練習程序(其實根本沒寫過,我們的同學將來千萬不要像我這樣,早練就些過硬功夫,就不至于淪落到我這等地步,就不用像我那樣去“欺騙”公司了,我這是一個典型的反面教材),居然一切都PASS(當然最重要的是筆試和面試問題還說得過去),這只能說明這一領域找人的困難程度。 公司本就未指望找到搞過驅動的人,找個有相關基礎的人就算不錯了。 做了以后,發現也并不是怎樣難的。 其實搞驅動程序的工作是很舒服的,搞完一個版本就會空一段時間,只有等公司新的芯片推出或新的OS出現后,才需要再去開發新一版驅動,那時有將近一個月時間空閑著在等WinCE Beta版推出,準備將驅動程序升級到CE 上,在軟件學院工作整日忙,無限懷念那段悠閑時光。 很巧合,本人無意中再次體會到了嵌入式的迷人之處。 我那用了3年的手機終于不能WORK了。 此次更新,除要求有手機常見功能外,最好有MP3功能(很多英語聽力都有MP3文件),最好有英漢詞典,最好還能讀WORD文檔。 最后選了個滿足以上條件的最便宜的手機DOPOD 515(斬了我2.2K,但想想這也算自己對嵌入式事業的支持,這樣便也想開了),算得上最低檔的智能手機了。 回來一查,手機的about顯示,本手機Processor是ARM,其OS是MS Smartphone(即WinCE 4.2),這么巧合,簡直可做為學習嵌入式課程的產品案例了(等我們的WinCE課程開得有聲有色后,希望能從微軟研究院搞些Smartphone來開發開發)。 有OS的手機果然了得,金山詞霸、WORD、EXCEL、REGEDIT等居然都有smartphone版的,PC上的MP3、DOC等居然在download時都可被自動轉換成smartphone格式,真是爽。 完全可用Windows CE自己開發一些需要的程序download到自己的手機上。 市面銷售PDA智能手機火爆,MS總是財源滾滾。 但我已發現國產的ARM+LINUX手機出現在市面上,價格只1.2K。 在GOOGLE網上能搜索太多的關于嵌入式系統的討論了,有很多有經驗者談自己的體會,投入到其中的論壇中,你會切身感到嵌入式學習的熱潮。 要么走ARM+WinCE,要么走ARM+LINUX,要么走ARM+VXWORKS。 每個搞嵌入式的人都可選一條路,條條大路通羅馬。

自學嵌入式的流程是什么?

原文鏈接:網頁鏈接

嵌入式Linux學習路線圖

我是1999年上的大學,物理專業。 在大一時,我們班里普遍彌漫著對未來的不安,不知道學習了物理后出去能做什么。 你當下的經歷、當下的學習,在未來的一天肯定會影響到你。 畢業后我們也各自找到了自己的職業:出國深造轉行做金融、留校任教做科研、設計芯片、寫程序、創辦公司等等,這一切都離不開在校時學到的基礎技能(數學、IT、電子電路)、受過煅煉的自學能力。

所以,各位正在迷茫的在校生,各位正在嘗試轉行的程序員,未來一定有你的位置,是好是壞取決于你當下的努力與積累。

我不能預言幾年后什么行業會熱門,也不能保證你照著本文學習可以發財。 我只是一個有十幾年經驗的程序員,給對編程有興趣的你,提供一些建議。

1.程序員的三大方向

程序員的方向,一般可以分為3類:專業領域、業務領域、操作系統領域。 你了解它們后,按興趣選擇吧。

對于專業領域,我提供不了建議。

業務,也就是應用程序,它跟操作系統并不是截然分開的:

①開發實體產品時,應用程序寫得好的人,有時候需要操作系統的知識,比如調度優先級的設置、知道某些函數可能會令進程休眠。

②寫應用程序的人進階為系統工程師時,他需要從上到下都了解,這時候就需要有操作系統領域的知識了,否則,你怎么設計整個系統的方案呢?

③做應用程序的人,需要了解行業的需求,理解業務的邏輯。 所以,當領導的人,多是做應用的。 一旦鉆入了某個行業,很難換行業。

④而操作系統領域,做好了這是通殺各行業:他只負責底層系統,在上面開發什么業務跟他沒關系。 這行很多是技術宅,行業專家。

⑤操作系統和業務之間并沒有一個界線。 有操作系統經驗,再去做應用,你會對系統知根知底,碰到問題時都有解決思路。 有了業務經驗,你再了解一下操作系統,很快就可以組成一個團隊自立門戶,至少做個CTO沒問題。

1.1 專業領域

它又可以分為下面2類。

1.1.1 學術研究

比如語音、圖像處理、人工智能,這類工作需要你有比較強的理論知識,我傾向于認為這類人是“科學家”,他們鉆研多年,很多時候是在做學術研究。

在嵌入式領域,需要把他們的成果用某種算法表達出來,針對某種芯片進行優化,這部分工作也許有專人來做。

1.1.2 工程實現

也有這樣一類人,他們懂得這些專業領域的概念,但是沒有深入鉆研。 可以使用各類開源資料實現某個目標,做出產品。 比如圖像處理,他懂得用opencv里幾百個復雜函數來實現頭像識別。 有時候還可以根據具體芯片來優化這些函數。

“專業領域”不是我的菜,如果你要做這一塊,我想最好的入門方法是在學校學習研究生、博士課程。

1.2 業務領域

換句話說,就是應用程序,這又可以分為下面2類。

1.2.1 界面顯示

做產品當然需要好的界面,但是,不是說它不重要,是沒什么發展后勁。

現在的熱門詞是Android APP和IOS APP開發。 你不要被Android、IOS兩個詞騙了,它們跟以前的VC、VB是同一路貨色,只是、僅僅是一套GUI控件的實現。

希望沒有冒犯到你,我有理由。

一個程序需要有GUI界面,但是程序的內在邏輯才是核心。 Android、IOS的開發工具給我們簡化了GUI的開發,并提供了這些控件的交互機制,封裝并提供了一些服務(比如網絡傳輸)。 但是程序內部的業務邏輯、對視頻圖像聲音的處理等等,這才是核心。 另外別忘了服務器那邊的后臺程序:怎樣更安全地保存數據、保護客戶的隱私,怎樣處理成千上萬上百萬的并發訪問,等等,這也是核心。

但是,從Android、IOS APP入門入行,這很快!如果你是大四,急于找到一份工作,那么花上1、2個月去學習Android或IOS,應該容易找到工作,畢竟APP的需求永遠是最大的,現在這兩門技術還算熱門。 在2011、2012年左右,Android程序員的起薪挺高,然后開始下滑。 Android APP的入門基本只要1個月,所以懂的人也越來越多。 2013、2014年,IOS開發的工資明顯比Android高了,于是各類IOS培訓也火曝起來。 中華大地向來不缺速成人才,估計再過一陣子IOS工程師也是白菜價了。

會Android、IOS只是基本要求,不信去51job搜搜Android或IOS,職位要求里肯定其他要求。

1.2.2 業務邏輯

舉個簡單例子,做一個打卡軟件,你需要考慮這些東西:

①正常流程是上班下班時都要打卡

②有人忘記了怎么辦?作為異常記錄在案,推送給管理員

③請假時怎么處理?

④加班怎么處理?

對于更復雜的例子,視頻會議系統里,各個模塊怎么對接,各類協議怎么兼容,你不深入這個行業,你根本搞不清楚。

應用開發的職位永遠是最多的,入門門檻也低。 基本上只要你會C語言,面試時表現比較得體,一般公司都會給你機會。 因為:

①你進公司后,還需要重新培訓你:熟悉它們的業務邏輯。

②你要做的,基本也就是一個個模塊,框架都有人給你定好了,你去填代碼就可以了。

說點讓你高興的事:軟件公司里,做領導的基本都是寫應用程序的(當然還有做市場的)。寫應用程序的人,對外可以研究市場接待客戶,對內可以管理程序員完成開發,不讓他做領導讓誰做?

如果你的志向是寫應用程序,那么我建議你先練好基本功:數據結構、算法是必備,然后憑興趣選擇數據庫、網絡編程等等進行深入鉆研。

最后,選擇你看好的、感興趣的行業深耕個10年吧。做應用開發的人選擇了某個行業,后面是很難換行業的,選行很重要!

1.3 操作系統領域

UCOS太簡單,VxWorks太貴太專業,Windows不玩嵌入式了,IOS不開源,所以對于操作系統領域我們也只能玩Linux了。

在嵌入式領域Linux一家獨大!

Android呢?Android跟QT一樣,都是一套GUI系統。 只是Google的實力太強了,現在Android無處不在,所以很多時候Linux+Android成了標配。 注意,在這里我們關心的是Android的整個系統、里面的機制,而不是學習幾個API然后開發界面程序。 操作系統領域所包含的內容,簡單地說,就是制作出一臺裝好系統的專用“電腦”,可以分為:

①為產品規劃硬件:

按需求、性能、成本選擇主芯片,搭配周邊外設,交由硬件開發人員設計。

②給單板制作、安裝操作系統、編寫驅動

定制維護、升級等系統方案

④還可能要配置、安裝Android等GUI系統:

⑤為應用開發人員配置開發環境

⑥從系統角度解決疑難問題

這個領域,通常被稱為“底層系統”或是“驅動開發”。

先解決2個常見誤區:

①這份工作是寫驅動程序嗎?

看看上面羅列的6點,應該說,它包含驅動開發,但遠遠不只有驅動開發。

②我們還需要寫驅動嗎?不是有原廠嗎?或者只需要改改就可以?

經常有人說,芯片原廠都做好驅動了,拿過來改改就可以了。 如果,你的硬件跟原廠的公板完全一樣,原廠源碼毫無BUG,不想優化性能、削減成本,不想做一些有特色的產品,那這話是正確的。

但是在這個不創新就是找死的年代,可能嗎?!原因有二:

①即使只是修改代碼,能修改的前提是能理解;能理解的最好煅煉方法是從零寫出若干驅動程序。

②很多時候,需要你深度定制系統。

以前做聯發科手機只需要改改界面就可以出貨了,現在山寨廠一批批倒下。 大家都使用原廠的方案而不加修改時,最后只能拼成本。

舉個例子,深圳有2家做交通攝像頭、監控攝像頭的廠家,他們曾經找我做過4個項目:

①改進廠家給的SD卡驅動性能,使用DMA。

②換了Flash型號后,系統經常出問題,需要修改驅動BUG。

③觸摸屏點擊不準,找原因,后來發現是旁路電容導致的。

④裁減成本,把4片DDR換為2片DDR,需要改bootloader對DDR的初始化。

這些項目都很急,搞不定就無法出貨,這時候找原廠?除非你是中興華為等大客戶,否則誰理你?

我在中興公司上班時,寫驅動的時間其實是很少的,大部分時間是調試:系統調優,上幫APP工程師、下幫硬件工程師查找問題。 我們從廠家、網上得到的源碼,很多都是標準的,當然可以直接用。 但是在你的產品上也許優化一下更好。 比如我們可以把攝像頭驅動和DMA驅動揉合起來,讓攝像頭的數據直接通過DMA發到DSP去。 我們可以在軟件和硬件之間起橋梁作用,對于實體產品,有可能是軟件出問題也可能是硬件出問題,一般是底層系統工程師比較容易找出問題。

當硬件、軟件應用出現問題,他們解決不了時,從底層軟件角度給他們出主意,給他們提供工具。 再比如方案選擇:芯片性能能否達標、可用的BSP是否完善等等,這只能由負責整個方案的人來考慮,他必須懂底層。

在操作系統領域,對知識的要求很多:

①懂硬件知識才能看懂電路圖

②英文好會看芯片手冊

③有編寫、移植驅動程序的能力

④對操作系統本身有一定的理解,才能解決各類疑難問題

⑤理解Android內部機制

⑥懂匯編、C語言、C++、JAVA

它絕對是一個大坑,沒有興趣、沒有毅力的人慎選。

①這行的入門,絕對需要半年以上,即使全天學習也要半年。

②它的職位,絕對比APP的職位少

③并且你沒有1、2年經驗,招你到公司后一開始你做的還是APP。

優點就是:

①學好后,行業通殺,想換行就換行;想自己做產品就自己做產品。

②相比做應用程序的人,不會被經常變動的需求搞得天天加班。

③門檻高,當然薪水相對就高。

操作系統領域,我認為適合于這些人:

①硬件工程師想轉軟件工程師,從底層軟件入門會比較好

②單片機工程師,想升級一下。 會Linux底層的人肯定會單片機,會單片機的人不一定會Linux。

③時間充足的學生:如果你正讀大二大三,那么花上半年學習嵌入式Linux底層多有益處。

④想掌握整個系統的人,比如你正在公司里寫APP,但是想升為系統工程師,那么底層不得不學。

⑤想自己創業做實體產品的工程師,你有錢的話什么技術都不用學,但是如果沒錢又想做產品,那么Linux底層不得不學。

⑥做Linux APP的人,沒錯,他們也要學習。

這部分人不需要深入,了解個大概就可以:bootloader是用來啟動內核,Linux的文件系統(第1個程序是什么、做什么、各目錄干嘛用)、APP跟驅動程序的調用關系、工具鏈,有這些概念就可以了

本文中,就把操作系統默認為Linux,講講怎么學習嵌入式Linux+Android系統。

1.4 嵌入式Linux+Android系統包含哪些內容

嵌入式Linux系統包含哪些東西?不要急,舉一個例子你就知道了。

①電腦一開機,那些界面是誰顯示的?

是BIOS,它做什么?一些自檢,然后從硬盤上讀入windows,并啟動它。

類似的,這個BIOS對應于嵌入式Linux里的bootloader。 這個bootloader要去Flash上讀入Linux內核,并啟動它。

②啟動windows的目的是什么?

當然運行應用程序以便上網、聊天什么的了。

這些上網程序、聊天程序在哪?

在C盤、D盤上。

所以,windows要先識別出C盤、D盤。 在Linux下我們稱之為根文件系統。

③windows能識別出C盤、D盤,那么肯定有讀寫硬盤的能力。

這個能力我們稱之為驅動程序。 當然不僅僅是操作硬盤,還有網卡、USB等等其他硬件。 嵌入式Linux能從Flash上讀出并執行應用程序,肯定也得有Flash的驅動程序啊,當然也不僅僅是Flash。

簡單地說,嵌入式LINUX系統里含有bootloader、內核、驅動程序、根文件系統、應用程序這5大塊。 而應用程序,我們又可以分為:C/C++、Android。

所以,嵌入式Linux+Android系統包含以下6部分內容:

①bootloader

②Linux內核

③驅動程序

④使用C/C++編寫的應用程序

⑤Android系統本身

⑥Android應用程序

Android跟Linux的聯系實在太大了,它的應用是如此廣泛,學習了Linux之后沒有理由停下來不學習Android。 在大多數智能設備中,運行的是Linux操作系統;它上面要么安裝有Android,要么可以跟Android手機互聯。 現在,Linux+Android已成標配。

2. 怎么學習嵌入式Linux操作系統

本文假設您是零基礎,以實用為主,用最快的時間讓你入門;后面也會附上想深入學習時可以參考的資料。

在實際工作中,我們從事的是“操作系統”周邊的開發,并不會太深入學習、修改操作系統本身。

①操作系統具有進程管理、存儲管理、文件管理和設備管理等功能,這些核心功能非常穩定可靠,基本上不需要我們修改代碼。我們只需要針對自己的硬件完善驅動程序

②學習驅動時必定會涉及其他知識,比如存儲管理、進程調度。當你深入理解了驅動程序后,也會加深對操作系統其他部分的理解

③Linux內核中大部分代碼都是設備驅動程序,可以認為Linux內核由各類驅動構成

但是,要成為該領域的高手,一定要深入理解Linux操作系統本身,要去研讀它的源代碼。

在忙完工作,閑暇之余,可以看看這些書:

①趙炯的《linux內核完全注釋》,這本比較薄,推薦這本。 他后來又出了《Linux 內核完全剖析》,太厚了,搞不好看了后面就忘記前面了。

②毛德操、胡希明的《LINUX核心源代碼情景分析》,此書分上下冊,巨厚無比。 當作字典看即可:想深入理解某方面的知識,就去看某章節。

③其他好書還有很多,我沒怎么看,沒有更多建議

基于快速入門,上手工作的目的,您先不用看上面的書,先按本文學習。

2.1 入門路線圖

假設您是零基礎,我們規劃了如下入門路線圖。 前面的知識,是后面知識的基礎,建議按順序學習。 每一部分,不一定需要學得很深入透徹,下面分章節描述。

2.2 學習驅動程序之前的基礎知識

2.2.1 C語言

只要是理工科專業的,似乎都會教C語言。 我見過很多C語言考試90、100分的,一上機就傻了,我懷疑他們都沒在電腦上寫過程序。

理論再好,沒有實踐不能干活的話,公司招你去干嘛?

反過來,實踐出真知,學習C語言,必須練練練、寫寫寫!

當你掌握基本語法后,就可以在電腦上練習一些C語言習題了;

當你寫過幾個C程序后,就可以進入下一階段的裸機開發了。

①不需要太深入

作為快速入門,只要你會編寫“Hello, world!”,會寫冒泡排序,會一些基礎的語法操作,暫時就夠了。

指針操作是重點,多練習;

不需要去學習過多的數據結構知識,只需要掌握鏈表操作,其他不用學習,比如:隊列、二叉樹等等都不用學;不需要去學習任何的函數使用,比如文件操作、多線程編程、網絡編程等等;這些知識,在編寫Linux應用程序時會用,但是在操作系統特別是驅動學習時,用不著!

永往直前吧,以后碰到不懂的C語言問題,我們再回過頭來學習。

在后續的“裸機開發”中,會讓你繼續練習C語言,那會更實戰化。

C語言是在寫代碼中精進的。

②可以在Visual Studio下學習,也可以在Linux下學習,后者需要掌握一些編譯命令,我們暫時沒有提供C語言的教程,找一本C語言書,網上找找免費的C語言視頻(主要看怎么搭建環境),就可以自學了。

2.2.2 PC Linux基本操作:

對于PC Linux,我們推薦使用Ubuntu,在它上面安裝軟件非常簡便。

我們的工作模式通常是這樣:在Windows下閱讀、編寫代碼,然后把代碼上傳到PC Linux去編譯。 實際上,Ubuntu的桌面系統已經很好用了,我們拿到各種智能機可以很快上手,相信Ubuntu的桌面系統也可以讓你很快上手。 為了提高工作效率,我們通常使用命令行來操作Ubuntu。

不用擔心,你前期只需要掌握這幾條命令就可以了,它們是如此簡單,我干脆列出它們:

①cd : Change Directory(改變目錄)

cd 目錄名 // 進入某個目錄cd ..// cd “兩個點”:返回上一級目錄cd - // cd “短橫”:返回上一次所在目錄

②pwd : Print Work Directory(打印當前目錄 顯示出當前工作目錄的絕對路徑)

③mkdir : Make Directory(創建目錄)

mkdir abc // 創建文件夾abcmkdir -p a/b/c// 創建文件夾a,再a下創建文件夾b,再在b下創建文件夾c

④rm : Remove(刪除目錄或文件)

rm file // 刪除名為file的文件rm -rf dir// 刪除名為dir的目錄

⑤ls : List(列出目錄內容)

⑥mount : 掛載

mount -t nfs -o nolock,vers=2 192.168.1.123:/work/nfs_root /mntmount -t yaffs /dev/mtdblock3 /mnt

⑦chown : Change owner(改變文件的屬主,即擁有者)

chown book:book /work -R //對/work目錄及其下所有內容,屬主改為book用戶,組改為book

⑧chmod : Change mode(改變權限),下面的例子很簡單粗暴

chmod 777 /work -R // 對/work目錄及其下所有內容,權限改為可讀、可寫、可執行

⑨vi : Linux下最常用的編輯命令,使用稍微復雜,請自己搜索用法。

要練習這些命令,你可以進入Ubuntu桌面系統后,打開終端輸入那些命令;或是用SecureCRT、putty等工具遠程登錄Ubuntu后練習。

2.2.3 硬件知識

我們學習硬件知識的目的在于能看懂原理圖,看懂通信協議,看懂芯片手冊;不求能設計原理圖,更不求能設計電路板。

對于正統的方法,你應該這樣學習:

①學習《微機原理》,理解一個計算機的組成及各個部件的交互原理。

②學習《數字電路》,理解各種門電路的原理及使用,還可以掌握一些邏輯運算(與、或等)。

③《模擬電路》?好吧,這個不用學,至少我在工作中基本用不到它,現在全忘光了。

就我個人經驗來說,這些課程是有用的,但是:

①原理有用,實戰性不強。

比如《微機原理》是基于x86系統,跟ARM板子有很大差別,當然原理相通。

我是在接觸嵌入式編程后,才理解了這些課程。

②每本書都那么厚,內容都很多,學習時間過長,自學有難度。

針對這些校園教材的不足,并結合實際開發過程中要用到的知識點,我們推出了《學前班_怎么看原理圖》的系列視頻:

學前班第1課第1節___怎么看原理圖之GPIO和門電路

掌握

學前班第1課第2.1節_怎么看原理圖之協議類接口之

學前班第1課第2.2節_怎么看原理圖之協議類接口之

學前班第1課第2.3節_怎么看原理圖之協議類接口之

學前班第1課第2.4節_怎么看原理圖之協議類接口之NAND

學前班第1課第2.5節_怎么看原理圖之協議類接口之

學前班第1課第3節___怎么看原理圖之內存類接口

學前班第1課第4.1節_怎么看原理圖之分析S3C2410開發板

學前班第1課第4.2節_怎么看原理圖之分析S3C2440開發板

學前班第1課第4.3節_怎么看原理圖之分析S3C6410開發板

即使你只具備初中物理課的電路知識,我也希望能通過這些視頻,讓你可以看懂原理圖,理解一些常見的通信協議;如果你想掌握更多的硬件知識,這些視頻也可以起個索引作用,讓你知道缺乏什么知識。

這些視頻所講到的硬件知識,將在《裸板開發》系列視頻中用到,到時可以相互對照著看,加深理解。

2.2.4 要不要專門學習Windows下的單片機開發

很多學校都開通了單片機的課程,很多人都是從51單片機、AVR單片機,現在比較新的STM32單片機開始接觸嵌入式領域,并且使用Windows下的開發軟件,比如keil、MDK等。

問題來了,要不要專門學習Windows下的單片機開發?

①如果這是你們專業的必修課,那就學吧

②如果你的專業跟單片機密切相關,比如機械控制等,那就學吧

③如果你只是想從單片機入門,然后學習更廣闊的嵌入式Linux,那么放棄在Windows下學習單片機吧!

理由如下:

①Windows下的單片機學習,深度不夠

Windows下有很好的圖形界面單片機開發軟件,比如keil、MDK等。

它們封裝了很多技術細節,比如:

你只會從main函數開始編寫代碼,卻不知道上電后第1條代碼是怎么執行的;

你可以編寫中斷處理函數,但是卻不知道它是怎么被調用的;

你不知道程序怎么從Flash上被讀入內存;

也不知道內存是怎么劃分使用的,不知道棧在哪、堆在哪;

當你想裁剪程序降低對Flash、內存的使用時,你無從下手;

當你新建一個文件時,它被自動加入到工程里,但是其中的機理你完全不懂;

等等等。

②基于ARM+Linux裸機學習,可以學得更深,并且更貼合后續的Linux學習。 實際上它就是Linux下的單片機學習,只是一切更加原始:所有的代碼需要你自己來編寫;哪些文件加入工程,需要你自己來管理。

在工作中,我們當然傾向于使用Windows下更便利的工具,但是在學習階段,我們更想學習到程序的本質。

一切從零編寫代碼、管理代碼,可以讓我們學習到更多知識:

你需要了解芯片的上電啟動過程,知道第1條代碼如何運行;

你需要掌握怎么把程序從Flash上讀入內存;

需要理解內存怎么規劃使用,比如棧在哪,堆在哪;

需要理解代碼重定位;

需要知道中斷發生后,軟硬件怎么保護現場、跳到中斷入口、調用中斷程序、恢復現場;

你會知道,main函數不是我們編寫的第1個函數;

你會知道,芯片從上電開始,程序是怎么被搬運執行的;

你會知道,函數調用過程中,參數是如何傳遞的;

你會知道,中斷發生時,每一個寄存器的值都要小心對待;

等等等。

你掌握了ARM+Linux的裸機開發,再回去看Windows下的單片機開發,會驚呼:怎么那么簡單!并且你會完全明白這些工具沒有向你展示的技術細節。

驅動程序=Linux驅動程序軟件框架+ARM開發板硬件操作,我們可以從簡單的裸機開發入手,先掌握硬件操作,并且還可以:

①掌握如何在PC Linux下編譯程序、把程序燒錄到板子上并運行它

②為學習bootloader打基礎:掌握了各種硬件操作后,后面一組合就是一個bootloader

2.2.5 為什么選擇ARM9 S3C2440開發板,而不是其他性能更好的?

有一個錯誤的概念:S3C2440過時了、ARM9過時了。

這是不對的,如果你是軟件工程師,無論是ARM9、ARM11、A8還是A9,對我們來說是沒有差別的。

一款芯片,上面有CPU,還有眾多的片上設備(比如UART、USB、LCD控制器)。 我們寫程序時,并不涉及CPU,只是去操作那些片上設備。

所以:差別在于片上設備,不在于CPU核;差別在于寄存器操作不一樣。

因為我們寫驅動并不涉及CPU的核心,只是操作CPU之外的設備,只是讀寫這些設備的寄存器。

之所以推薦S3C2440,是因為它的Linux學習資料最豐富,并有配套的第1、2期視頻。

2.2.6 怎么學習ARM+Linux的裸機開發

學習裸機開發的目的有兩個:

①掌握裸機程序的結構,為后續的u-boot作準備

②練習硬件知識,即:怎么看原理圖、芯片手冊,怎么寫代碼來操作硬件

后面的u-boot可以認為是裸機程序的集合,我們在裸機開發中逐個掌握各個部件,再集合起來就可以得到一個u-boot了。

后續的驅動開發,也涉及硬件操作,你可以在裸機開發中學習硬件知識。

注意:如果你并不關心裸機的程序結構,不關心bootloader的實現,這部分是可以先略過的。 在后面的驅動視頻中,我們也會重新講解所涉及的硬件知識。

推薦兩本書:杜春蕾的《ARM體系結構與編程》,韋東山的《嵌入式Linux應用開發完全手冊》。 后者也許是國內第1本涉及在PC Linux環境下開發的ARM裸機程序的書,如果我說錯了,請原諒我書讀得少。

對于裸機開發,我們提供有2部分視頻:

①環境搭建

第0課第1節_剛接觸開發板之接口接線

第0課第2節_剛接觸開發板之燒寫裸板程序

第0課第3節_剛接觸開發板之重燒整個系統

第0課第4節_剛接觸開發板之使用vmwae和預先做好的

第0課第5節_剛接觸開發板之u-boot打補丁編譯使用及建sourceinsight工程

第0課第6節_剛接觸開發板之內核u-boot打補丁編譯使用及建sourceinsight工程

第0課第7節_剛接觸開發板之制作根文件系統及初試驅動

第0課第8節_在TQ2440,MINI2440上搭建視頻所用系統

第0課第9節_win7下不能使用dnw燒寫的替代方法

.................未完

原文鏈接:網頁鏈接

嵌入式技術需要學習什么

嵌入式Linux操作系統學習規劃\x0d\x0aARM+LINUX路線,主攻嵌入式Linux操作系統及其上應用軟件開發目標: \x0d\x0a(1) 掌握主流嵌入式微處理器的結構與原理(初步定為arm9) \x0d\x0a(2) 必須掌握一個嵌入式操作系統 (初步定為uclinux或linux,版本待定) \x0d\x0a(3) 必須熟悉嵌入式軟件開發流程并至少做一個嵌入式軟件項目。 \x0d\x0a從事嵌入式軟件開發的好處是: \x0d\x0a(1)目前國內外這方面的人都很稀缺。 這一領域入門門檻較高,所以非專業IT人員很難切入這一領域;另一方面,是因為這一領域較新,目前發展太快,大多數人無條件接觸。 \x0d\x0a(2)與企業計算等應用軟件不同,嵌入式領域人才的工作強度通常低一些(但收入不低)。 \x0d\x0a(3)哪天若想創業,搞自已的產品,嵌入式不像應用軟件那樣容易被盜版。 硬件設計一般都是請其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設計軟件就變成自己的產品了。 \x0d\x0a(4)興趣所在,這是最主要的。 \x0d\x0a從事嵌入式軟件開發的缺點是: \x0d\x0a(1)入門起點較高,所用到的技術往往都有一定難度,若軟硬件基礎不好,特別是操作系統級軟件功底不深,則可能不適于此行。 \x0d\x0a(2)這方面的企業數量要遠少于企業計算類企業。 \x0d\x0a(3)有少數公司經常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。 但大多數公司也并無此要求,只要有經驗即可。 \x0d\x0a(4)平臺依托強,換平臺比較辛苦。 \x0d\x0a興趣的由來: \x0d\x0a1、成功觀念不同,不虛度此生,就是我的成功。 \x0d\x0a2、喜歡思考,挑戰邏輯思維。 \x0d\x0a3、喜歡C \x0d\x0aC是一種能發揮思維極限的語言。 關于C的精神的一些方面可以被概述成短句如下: \x0d\x0a相信程序員。 \x0d\x0a不要阻止程序員做那些需要去做的。 \x0d\x0a保持語言短小精干。 \x0d\x0a一種方法做一個操作。 \x0d\x0a使得它運行的夠快,盡管它并不能保證將是可移植的。 \x0d\x0a4、喜歡底層開發,討厭vb類開發工具(并不是說vb不好)。 \x0d\x0a5、發展前景好,適合創業,不想自己要死了的時候還是一個工程師。 \x0d\x0a方法步驟: \x0d\x0a1、基礎知識: \x0d\x0a目的:能看懂硬件工作原理,但重點在嵌入式軟件,特別是操作系統級軟件,那將是我的優勢。 \x0d\x0a科目:數字電路、計算機組成原理、嵌入式微處理器結構。 \x0d\x0a匯編語言、C/C++、編譯原理、離散數學。 \x0d\x0a數據結構和算法、操作系統、軟件工程、網絡、數據庫。 \x0d\x0a方法:雖科目眾多,但都是較簡單的基礎,且大部分已掌握。 不一定全學,可根據需要選修。 \x0d\x0a主攻書籍:the c++ programming language(一直沒時間讀)、數據結構-C2。 \x0d\x0a\x0d\x0a2、學習linux: \x0d\x0a目的:深入掌握linux系統。 \x0d\x0a 方法:使用linux—〉linxu系統編程開發—〉驅動開發和分析linux內核。 先看深,那主講原理。 看幾遍后,看情景分析,對照深看,兩本交叉,深是綱,情是目。 剖析則是0.11版,適合學習。 最后深入代碼。 \x0d\x0a主攻書籍:linux內核完全剖析、unix環境高級編程、深入理解linux內核、情景分析和源代。 \x0d\x0a3、學習嵌入式linux: \x0d\x0a目的:掌握嵌入式處理器其及系統。 \x0d\x0a方法:(1)嵌入式微處理器結構與應用:直接arm原理及匯編即可,不要重復x86。 \x0d\x0a (2)嵌入式操作系統類:ucOS/II簡單,開源,可供入門。 而后深入研究uClinux。 \x0d\x0a (3)必須有塊開發板(arm9以上),有條件可參加培訓(進步快,能認識些朋友)。 \x0d\x0a 主攻書籍:毛德操的《嵌入式系統》及其他arm9手冊與arm匯編指令等。 \x0d\x0a\x0d\x0a4、深入學習: \x0d\x0a A、數字圖像壓縮技術:主要是應掌握MPEG、mp3等編解碼算法和技術。 \x0d\x0a B、通信協議及編程技術:TCP/IP協議、802.11,Bluetooth,GPRS、GSM、CDMA等。 \x0d\x0a\x0d\x0a2010-8-21 16:46 回復\x0d\x0a122.90.173.* 2樓\x0d\x0a\x0d\x0a C、網絡與信息安全技術:如加密技術,數字證書CA等。 \x0d\x0a D、DSP技術:Digital Signal Process,DSP處理器通過硬件實現數字信號處理算法。 \x0d\x0a 說明:太多細節未說明,可根據實際情況調整。 重點在于1、3,不必完全按照順序作。 對于學習c++,理由是c++不只是一種語言,一種工具,她還是一種藝術,一種文化,一種哲學理念、但不是拿來炫耀得東西。 對于linux內核,學習編程,讀一些優秀代碼也是有必要的。 \x0d\x0a 注意: 要學會舉一反多,有強大的基礎,很多東西簡單看看就能會。 想成為合格的程序員,前提是必須熟練至少一種編程語言,并具有良好的邏輯思維。 一定要理論結合實踐。 \x0d\x0a 不要一味鉆研技術,雖然擠出時間是很難做到的,但還是要留點余地去完善其他的愛好,比如宇宙,素描、機械、管理,心理學、游戲、科幻電影。 還有一些不愿意做但必須要做的! \x0d\x0a 技術是通過編程編程在編程編出來的。 永遠不要夢想一步登天,不要做浮躁的人,不要覺得路途漫上。 而是要編程編程在編程,完了在編程,在編程!等機會來了在創業(不要相信有奇跡發生,盲目創業很難成功,即便成功了發展空間也不一定很大)。 \x0d\x0a\x0d\x0a 嵌入式書籍推薦 \x0d\x0a Linux基礎 \x0d\x0a 1、《Linux與Unix Shell 編程指南》 \x0d\x0a C語言基礎 \x0d\x0a 1、《C Primer Plus,5th Edition》【美】Stephen Prata著 \x0d\x0a 2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)著 \x0d\x0a 3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE) \x0d\x0a 4、《嵌入式Linux應用程序開發詳解》 \x0d\x0a Linux內核 \x0d\x0a 1、《深入理解Linux內核》(第三版) \x0d\x0a 2、《Linux內核源代碼情景分析》毛德操 胡希明著 \x0d\x0a 研發方向 \x0d\x0a 1、《UNIX Network Programming》(UNP) \x0d\x0a 2、《TCP/IP詳解》 \x0d\x0a 3、《Linux內核編程》 \x0d\x0a 4、《Linux設備驅動開發》(LDD) \x0d\x0a 5、《Linux高級程序設計》 楊宗德著\x0d\x0a 硬件基礎 \x0d\x0a 1、《ARM體系結構與編程》杜春雷著 \x0d\x0a 2、S3C2410 Datasheet \x0d\x0a 英語基礎 \x0d\x0a 1、《計算機與通信專業英語》 \x0d\x0a 系統教程 \x0d\x0a 1、《嵌入式系統——體系結構、編程與設計》 \x0d\x0a 2、《嵌入式系統——采用公開源代碼和StrongARM/Xscale處理器》毛德操 胡希明著 \x0d\x0a 3、《Building Embedded Linux Systems》\x0d\x0a 4、《嵌入式ARM系統原理與實例開發》 楊宗德著\x0d\x0a 理論基礎 \x0d\x0a 1、《算法導論》 \x0d\x0a 2、《數據結構(C語言版)》 \x0d\x0a 3、《計算機組織與體系結構?性能分析》 \x0d\x0a 4、《深入理解計算機系統》【美】Randal E. Bryant David OHallaron著 \x0d\x0a 5、《操作系統:精髓與設計原理》 \x0d\x0a 6、《編譯原理》 \x0d\x0a 7、《數據通信與計算機網絡》 \x0d\x0a 8、《數據壓縮原理與應用》 \x0d\x0a\x0d\x0a C語言書籍推薦 \x0d\x0a 1. The C programming language 《C程序設計語言》 \x0d\x0a 2. Pointers on C 《C和指針》 \x0d\x0a 3. C traps and pitfalls 《C陷阱與缺陷》 \x0d\x0a 4. Expert C Lanuage 《專家C編程》 \x0d\x0a 5. Writing Clean Code -----Microsoft Techiniques for Developing Bug-free C Programs \x0d\x0a 《編程精粹--Microsoft 編寫優質無錯C程序秘訣》 \x0d\x0a 6. Programming Embedded Systems in C and C++ 《嵌入式系統編程》 \x0d\x0a 7.《C語言嵌入式系統編程修煉》 \x0d\x0a 8.《高質量C++/C編程指南》林銳 \x0d\x0a 盡可能多的編碼,要學好C,不能只注重C本身。 算法,架構方式等都很重要。 \x0d\x0a\x0d\x0a這里很多書其實是推薦而已,不必太在意,關鍵還是基礎,才是重中之重!??!

針對工程師和開發人員的深入培訓

嵌入式硬件工程師證書怎么考?

嵌入式硬件工程師可以考什么認證

如果剛剛從電子專業畢業的新人來說,認證可以讓企業更好的認識你的能力,擁有更大的競爭力。

對于非電子專業畢業,希望在嵌入式硬件領域進行發展的人員來說,經過認證學習的過程,可以對這個行業中涉及到的各個領域和基礎知識有個系統性的概念,比起光憑興趣學習其中的某些方面要有更強的適應性,也更能培養更寬的知識面。

目前可以進行的認證有以下幾類:

軟考:這是人事部、信息產業部進行的全國范圍的專業技術人員職業資格證書。 對于評定職稱是很有幫助的。

CESE是ChinaEDA嵌入式系統工程師認證的英文縮寫,是國內最早、最專業、最權威的嵌入式系統工程師企業認證,是由ChinaEDA嵌入式技術認證中心統一頒發的行業資格證書。 CESE時刻把握國際脈搏,保持與國際先進技術水平同步,為國家培養一流的高端嵌入式技人才。

CESE證書目前以嵌入式ARM-Linux為主體內容,主要分為:CESE認證嵌入式系統應用開發工程師(CESAE)、CESE認證嵌入式系統移植工程師(CESTE)、CESE認證嵌入式系統驅動開發工程師(CESDE)三個級別的認證。

硬件工程師需要考什么證書?需要了解哪些知識

硬件工程師對于證書沒有要求,不需要額外的證書。 主要是學歷和項目經驗。

硬件工程師必備知識:

1、基本設計規范;

2、CPU基本知識、架構、性能及選型指導;

3、MOTOROLA公司的PowerPC系列基本知識、性能詳解及選型指導;

4、網絡處理器(INTEL、MOTOROLA、IBM)的基本知識、架構、性能及選型;

5、常用總線的基本知識、性能詳解;

6、各種存儲器的詳細性能介紹、設計要點及選型;

7、Datacom、Telecom領域常用物理層接口芯片基本知識,性能、設計要點及選型;

8、常用器件選型要點與精華;

9、FPGA、CPLD、EPLD的詳細性能介紹、設計要點及選型指導;

10、HDL和Verilog;HDL介紹;

11、網絡基礎。

擴展資料:

硬件工程師從業要求:

1.熟悉電路設計、PCB布板、電路調試,能熟練使用PROTEL等電路設計軟件;

2.熟練應用常用電子元器件,熟練檢索各種元器件材料;

3.掌握常用的硬件設計工具,調試儀器儀表的使用方法;

4.熟悉嵌入式系統的硬件及軟件開發;

5.工作態度積極,責任心強,良好的溝通與團隊配合;

6.獨立設計過完整的電子產品,能讀懂英文產品規格書。

求解嵌入式工程師證書好不好考?

好不好看要看自身學習能力呢,可以考創客學院的嵌入式系統設計師;

嵌入式系統設計師的考試要求:掌握計算機科學基礎知識;掌握嵌入式系統的硬件、軟件知識;掌握嵌入式系統分析的方法;掌握嵌入式系統設計與開發的方法及步驟;掌握嵌入式系統實施的方法;掌握嵌入式系統運行維護知識;了解信息化基礎知識、計算機應用的基礎知識;了解信息技術標準、安全性,以及有關法律法規的基本知識;了解嵌入式技術發展趨勢;正確閱讀和理解計算機及嵌入式系統領域的英文資料。

找單片機嵌入式系統開發的工作需要考什么證嗎

考ARM證書、Atmel證書、NXP證書、微軟的證書、紅帽證書、工信部證書等。

熟習摹擬電子技術和數字電子技術等硬件知識。 了解處理器體系結構。

嵌入式工程師是指具有C/C++語言、匯編語言等基礎,熟悉模擬電子技術等硬件知識,了解處理器體系結構,做嵌入式系統設計和開發,包括硬件系統的建立和相關軟件開發、移植、調試等工作的人。 前者同樣是使用現成工具進行簡單勞動,比如使用J2ME開發小游戲或者進行一些界面開發,而后者是根據芯片具體情況把操作系統(如Linux)移植到上面,同時編寫必要的驅動程序,改寫相應的內核代碼。

該怎樣學習嵌入式Linux的基礎課程

嵌入式Linux操作系統學習規劃ARM+LINUX路線,主攻嵌入式Linux操作系統及其上應用軟件開發目標: (1) 掌握主流嵌入式微處理器的結構與原理(初步定為arm9) (2) 必須掌握一個嵌入式操作系統 (初步定為uclinux或linux,版本待定) (3) 必須熟悉嵌入式軟件開發流程并至少做一個嵌入式軟件項目。 從事嵌入式軟件開發的好處是: (1)目前國內外這方面的人都很稀缺。 這一領域入門門檻較高,所以非專業IT人員很難切入這一領域;另一方面,是因為這一領域較新,目前發展太快,大多數人無條件接觸。 (2)與企業計算等應用軟件不同,嵌入式領域人才的工作強度通常低一些(但收入不低)。 (3)哪天若想創業,搞自已的產品,嵌入式不像應用軟件那樣容易被盜版。 硬件設計一般都是請其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設計軟件就變成自己的產品了。 (4)興趣所在,這是最主要的。 從事嵌入式軟件開發的缺點是: (1)入門起點較高,所用到的技術往往都有一定難度,若軟硬件基礎不好,特別是操作系統級軟件功底不深,則可能不適于此行。 (2)這方面的企業數量要遠少于企業計算類企業。 (3)有少數公司經常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。 但大多數公司也并無此要求,只要有經驗即可。 (4)平臺依托強,換平臺比較辛苦。 興趣的由來: 1、成功觀念不同,不虛度此生,就是我的成功。 2、喜歡思考,挑戰邏輯思維。 3、喜歡C C是一種能發揮思維極限的語言。 關于C的精神的一些方面可以被概述成短句如下: 相信程序員。 不要阻止程序員做那些需要去做的。 保持語言短小精干。 一種方法做一個操作。 使得它運行的夠快,盡管它并不能保證將是可移植的。 4、喜歡底層開發,討厭vb類開發工具(并不是說vb不好)。 5、發展前景好,適合創業,不想自己要死了的時候還是一個工程師。 方法步驟: 1、基礎知識: 目的:能看懂硬件工作原理,但重點在嵌入式軟件,特別是操作系統級軟件,那將是我的優勢。 科目:數字電路、計算機組成原理、嵌入式微處理器結構。 匯編語言、C/C++、編譯原理、離散數學。 數據結構和算法、操作系統、軟件工程、網絡、數據庫。 方法:雖科目眾多,但都是較簡單的基礎,且大部分已掌握。 不一定全學,可根據需要選修。 主攻書籍:the c++ programming language(一直沒時間讀)、數據結構-C2。 2、學習linux: 目的:深入掌握linux系統。 方法:使用linux—〉linxu系統編程開發—〉驅動開發和分析linux內核。 先看深,那主講原理。 看幾遍后,看情景分析,對照深看,兩本交叉,深是綱,情是目。 剖析則是0.11版,適合學習。 最后深入代碼。 主攻書籍:linux內核完全剖析、unix環境高級編程、深入理解linux內核、情景分析和源代。 3、學習嵌入式linux: 目的:掌握嵌入式處理器其及系統。 方法:(1)嵌入式微處理器結構與應用:直接arm原理及匯編即可,不要重復x86。 (2)嵌入式操作系統類:ucOS/II簡單,開源,可供入門。 而后深入研究uClinux。 (3)必須有塊開發板(arm9以上),有條件可參加培訓(進步快,能認識些朋友)。 主攻書籍:毛德操的《嵌入式系統》及其他arm9手冊與arm匯編指令等。 4、深入學習: A、數字圖像壓縮技術:主要是應掌握MPEG、mp3等編解碼算法和技術。 B、通信協議及編程技術:TCP/IP協議、802.11,Bluetooth,GPRS、GSM、CDMA等。 2010-8-21 16:46 回復122.90.173.* 2樓 C、網絡與信息安全技術:如加密技術,數字證書CA等。 D、DSP技術:Digital Signal Process,DSP處理器通過硬件實現數字信號處理算法。 說明:太多細節未說明,可根據實際情況調整。 重點在于1、3,不必完全按照順序作。 對于學習c++,理由是c++不只是一種語言,一種工具,她還是一種藝術,一種文化,一種哲學理念、但不是拿來炫耀得東西。 對于linux內核,學習編程,讀一些優秀代碼也是有必要的。 注意: 要學會舉一反多,有強大的基礎,很多東西簡單看看就能會。 想成為合格的程序員,前提是必須熟練至少一種編程語言,并具有良好的邏輯思維。 一定要理論結合實踐。 不要一味鉆研技術,雖然擠出時間是很難做到的,但還是要留點余地去完善其他的愛好,比如宇宙,素描、機械、管理,心理學、游戲、科幻電影。 還有一些不愿意做但必須要做的! 技術是通過編程編程在編程編出來的。 永遠不要夢想一步登天,不要做浮躁的人,不要覺得路途漫上。 而是要編程編程在編程,完了在編程,在編程!等機會來了在創業(不要相信有奇跡發生,盲目創業很難成功,即便成功了發展空間也不一定很大)。 嵌入式書籍推薦 Linux基礎 1、《Linux與Unix Shell 編程指南》 C語言基礎 1、《C Primer Plus,5th Edition》【美】Stephen Prata著 2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)著 3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE) 4、《嵌入式Linux應用程序開發詳解》 Linux內核 1、《深入理解Linux內核》(第三版) 2、《Linux內核源代碼情景分析》毛德操 胡希明著 研發方向 1、《UNIX Network Programming》(UNP) 2、《TCP/IP詳解》 3、《Linux內核編程》 4、《Linux設備驅動開發》(LDD) 5、《Linux高級程序設計》 楊宗德著 硬件基礎 1、《ARM體系結構與編程》杜春雷著 2、S3C2410 target=_blank>



相關標簽: 8小時學透arm體系架構、 體系結構的奧秘針對工程師和開發人員的深入培訓、 掌握ARM、

上一篇:提升您的嵌入式設計能力探索ARM培訓的寶貴

下一篇:從初學者到專業人士ARM培訓課程,釋放您的嵌

內容聲明:

1、本站收錄的內容來源于大數據收集,版權歸原網站所有!
2、本站收錄的內容若侵害到您的利益,請聯系我們進行刪除處理!
3、本站不接受違法信息,如您發現違法內容,請聯系我們進行舉報處理!
4、本文地址:http://m.sycxjdsbhs.com/article/cfa824701fd43c1dd45a.html,復制請保留版權鏈接!


溫馨小提示:在您的網站做上本站友情鏈接,訪問一次即可自動收錄并自動排在本站第一位!
隨機文章
從頭開始構建 Delphi TreeView,逐步深入了解其工作原理 (從頭開始構建大型語言模型 pdf)

從頭開始構建 Delphi TreeView,逐步深入了解其工作原理 (從頭開始構建大型語言模型 pdf)

TreeView控件是用于在Delphi中顯示層次數據的強大工具,它是一個可視組件,允許用戶展開和折疊節點,并與數據項交互,本教程將引導你從頭開始構建一個DelphiTreeView,深入了解其工作原理,1.創建一個新的Delphi項目打開DelphiIDE,并創建一個新的VCL應用程序項目,在工具欄中,單擊,組件,按鈕,錘子和扳手圖...。

最新資訊 2024-09-27 23:21:52

烏龜的智慧:從它們的壽命中汲取教訓 (烏龜的智慧告訴我們什么道理)

烏龜的智慧:從它們的壽命中汲取教訓 (烏龜的智慧告訴我們什么道理)

烏龜是一種以其長壽而聞名的動物,一些烏龜甚至可以活到150歲以上,這種非凡的壽命為我們提供了許多有價值的教訓,讓我們可以應用到自己的生活中,耐心和毅力烏龜是出了名的耐心且有毅力的動物,它們可以花上好幾個小時一動不動地等待獵物,或者不懈地向目標爬行,這種耐心和毅力教會我們,即使在面臨挑戰和困難時,也要保持堅定,只要我們不放棄,最終就能達...。

本站公告 2024-09-26 05:29:04

可定制性:CSS 使您可以輕松更改網站的外觀和感覺,而不必更改 HTML 代碼。(可定制的品牌)

可定制性:CSS 使您可以輕松更改網站的外觀和感覺,而不必更改 HTML 代碼。(可定制的品牌)

CSS是一種強大的工具,它使您可以輕松更改網站的外觀和感覺,而無需更改HTML代碼,這對于創建可定制的品牌非常有用,因為您可以輕松地更改顏色、字體和布局,以匹配您的特定需求,可定制的品牌CSS可用于創建可定制的品牌,方法如下,使用自定義顏色主題來匹配您的品牌標識,使用自定義字體來創建獨特的品牌形象,使用自定義布局來創建易于導航且視覺上...。

技術教程 2024-09-24 12:28:28

removeChild 入門:用于移除 DOM 子節點的全面指南 (remove是什么意思)

removeChild 入門:用于移除 DOM 子節點的全面指南 (remove是什么意思)

removeChild是什么,removeChild,方法是JavaScript中的DOM方法,用于從父節點中移除子節點,語法parentNode.removeChild,childNode,其中,parentNode是要從中移除子節點的父節點,childNode是要移除的子節點,示例以下示例演示如何使用removeChild,...。

技術教程 2024-09-16 00:00:12

深入了解createfile錯誤:排查失敗的詳盡策略 (深入了解茶文化)

深入了解createfile錯誤:排查失敗的詳盡策略 (深入了解茶文化)

創建文件失敗是一個常見的Windows錯誤,通常由CreateFile函數引發,此函數用于訪問和創建文件和目錄,因此它在應用程序開發中至關重要,排查CreateFile錯誤排查CreateFile錯誤可能很困難,因為原因可能有多種,以下是一個詳盡的策略,可幫助您識別并解決這些錯誤,檢查路徑和文件名確保您正在使用的路徑和文件名有效,驗證...。

最新資訊 2024-09-14 20:08:43

Java 遞歸函數的常見錯誤和陷阱:堆棧溢出、無限循環和邏輯故障 (java遞歸生成樹形菜單)

Java 遞歸函數的常見錯誤和陷阱:堆棧溢出、無限循環和邏輯故障 (java遞歸生成樹形菜單)

堆棧溢出堆棧溢出是指遞歸函數調用次數過多,導致Java虛擬機,JVM,堆??臻g耗盡,這通常發生在以下情況下,遞歸沒有明確的結束條件,導致函數無限遞歸,遞歸函數調用自身過于頻繁,導致堆??臻g不夠用,為了避免堆棧溢出,需要確保遞歸函數具有明確的結束條件,并且調用頻率受到限制,可以使用尾遞歸優化來減少堆棧空間的消耗,但僅限于滿足特定條件的函...。

最新資訊 2024-09-12 03:15:39

面向未來的數據存儲:新興趨勢和創新 (面向未來的數字政府要強調()的建設)

面向未來的數據存儲:新興趨勢和創新 (面向未來的數字政府要強調()的建設)

在面向未來的數字政府建設中,數據存儲至關重要,隨著數據量的不斷增長和數據處理需求的日益復雜,傳統的存儲方式已難以滿足需求,本文將介紹當今數據存儲領域的新興趨勢和創新,為面向未來的數據存儲提供指引,1.云存儲云存儲是一種通過互聯網訪問數據的存儲方式,它具有可擴展性、高可用性和低成本等優勢,企業和政府可以通過云存儲服務商租用存儲空間,并按...。

技術教程 2024-09-11 13:26:31

揭秘擬合函數的奧秘:如何用數學捕捉數據行為 (擬合函數方法)

揭秘擬合函數的奧秘:如何用數學捕捉數據行為 (擬合函數方法)

當我們觀察現實世界中的數據時,我們經常會發現它們遵循某種規律或趨勢,這種趨勢通??梢杂脭祵W函數來表示,這種將數學函數與數據相匹配的過程稱為擬合函數,擬合函數方法有許多不同的擬合函數方法,每種方法都適用于不同類型的數據,最常見的擬合函數方法包括,最小二乘法,該方法通過最小化函數與數據點之間的平方誤差來擬合函數,加權最小二乘法,該方法類似...。

互聯網資訊 2024-09-10 11:07:45

聚合函數在分布式系統中的擴展:處理大規模數據集的挑戰 (聚合函數分組使用方法)

聚合函數在分布式系統中的擴展:處理大規模數據集的挑戰 (聚合函數分組使用方法)

引言聚合函數是數據分析中用于對大數據集執行計算的重要工具,它們可以執行求和、計數、最大值和最小值等操作,并返回一個單個值作為結果,在分布式系統中,聚合函數需要擴展才能處理大規模數據集,聚合函數分組使用方法在分布式系統中擴展聚合函數的一種常見方法是使用分組技術,分組將數據集分成較小的塊,并在每個塊上單獨計算聚合函數,將每個塊的聚合結果組...。

互聯網資訊 2024-09-10 11:02:48

解鎖 Java 編程的潛力:下載《Java 編程思想》第 6 版 PDF,開啟您的編程之旅 (解鎖jaeger)

解鎖 Java 編程的潛力:下載《Java 編程思想》第 6 版 PDF,開啟您的編程之旅 (解鎖jaeger)

對于志在掌握Java編程語言的編程愛好者和開發者來說,,Java編程思想,第6版無疑是不可或缺的參考手冊,本書由Java大師BruceEckel撰寫,全面且深入地介紹了Java的各個方面,是初學者和經驗豐富的開發者都必備的寶典,Java編程思想,第6版PDF的優勢全面覆蓋,本書涵蓋了Java編程語言的方方面面,從基礎語法到高級特性,...。

本站公告 2024-09-08 10:34:18

希望通過自學掌握 Java 的個人(希望自己能學有所獲)

希望通過自學掌握 Java 的個人(希望自己能學有所獲)

前言對于希望通過自學掌握Java的個人來說,這是一個激動人心且有益的旅程,Java是一種用途廣泛且功能強大的編程語言,在各種行業和領域中有著廣泛的應用,通過自學Java,你可以開辟新的職業道路,提升你的技能,并解鎖個人和職業發展的新機遇,入門選擇學習資源選擇合適的學習資源對于自學成功至關重要,以下是推薦的資源,在線課程,Courser...。

最新資訊 2024-09-06 11:52:20

PHP substr() 函數:大師級指南 (phpsubstr)

PHP substr() 函數:大師級指南 (phpsubstr)

介紹PHPsubstr,函數用于從字符串中提取子字符串,它是一個非常有用的字符串操作函數,可以滿足各種字符串處理需求,語法substr,string$string,int$start,int$length=null,$string,要從中提取子字符串的字符串,$start,子字符串的起始位置,從0開始,$length,可選,子字...。

技術教程 2024-09-05 17:38:35

Copyright ? 2025 聚集網 All Rights Reserved
此內容系本站根據來路自動抓取的結果,不代表本站贊成被顯示網站的內容或立場。
本頁閱讀量次 | 本站總訪問次 | 本站總訪客人 | 今日總訪問次 | 今日總訪客人 | 昨日總訪問次 | 昨日總訪客人 |
技術支持:聚集網

国产精品成人免费视频_91丝袜美腿美女视频网站_国产一区二区三区在线看_亚洲欧美另类中文字幕_在线电影av不卡网址_国产视频丨精品|在线观看_日韩一区二区三区国产_国产欧美va欧美va香蕉在线_热re91久久精品国99热蜜臀_亚洲第一精品电影_久久九九亚洲综合_国产成人综合精品_97视频在线观看网址_精品视频久久久久久_日韩av片免费在线观看_久久精品国产99国产精品澳门
日韩av中文字幕在线| 亚洲国产精品高清久久久| 欧美性猛交丰臀xxxxx网站| 国产精品人成电影| 这里只有精品在线观看| 尤物yw午夜国产精品视频| 欧美插天视频在线播放| 国产精品午夜国产小视频| 亚洲欧美视频在线| 久久色免费在线视频| 久久69精品久久久久久国产越南| 欧美成人午夜免费视在线看片| 国模gogo一区二区大胆私拍| 欧美国产极速在线| 亚洲成人精品av| 亚洲黄色成人网| 91中文字幕一区| 欧美影院成年免费版| 国内精品久久影院| 精品视频偷偷看在线观看| 91精品国产综合久久香蕉的用户体验| 成人免费网站在线| 国产精品丝袜久久久久久高清| 国产日韩欧美影视| 中文字幕精品一区二区精品| 亚洲天堂免费在线| 日韩电影中文 亚洲精品乱码| 日韩一区视频在线| 免费不卡在线观看av| 精品人伦一区二区三区蜜桃免费| 亚洲国产成人精品一区二区| 茄子视频成人在线| 欧美电影在线观看高清| 国产精品视频成人| 亚洲一区二区三区视频播放| 久久久久久这里只有精品| 国产视频观看一区| 欧洲美女7788成人免费视频| 亚洲日本成人女熟在线观看| 26uuu亚洲伊人春色| 欧美日韩国产成人| 日韩美女毛茸茸| 91久久久在线| 国产91精品不卡视频| 久久影院模特热| 中文字幕欧美日韩精品| 性欧美视频videos6一9| 日韩综合视频在线观看| 亚洲免费成人av电影| 成人在线免费观看视视频| 欧美大片大片在线播放| 青草青草久热精品视频在线网站| 久久色免费在线视频| 久久中文字幕国产| 欧美精品激情视频| 伊人亚洲福利一区二区三区| 91精品视频网站| 国内精品在线一区| 亚洲精品白浆高清久久久久久| 国产精品极品美女在线观看免费| 欧美资源在线观看| 97视频免费在线看| 国产一区二区免费| 精品久久久国产精品999| 日本精品在线视频| 久久精品国产v日韩v亚洲| 精品香蕉在线观看视频一| 色婷婷综合成人| 亚洲一区第一页| 日韩中文字幕免费视频| 国产精品黄色av| 亚洲free嫩bbb| 亚洲午夜av久久乱码| 欧美xxxx18性欧美| 欧美日韩国产在线| 久久久免费av| 亚洲电影免费观看高清完整版| 国内精品久久久久影院优| 欧美日本精品在线| 国产精品亚洲第一区| 色哟哟网站入口亚洲精品| 日韩国产激情在线| 在线观看日韩av| 精品久久久久久久久久ntr影视| 国产精品久久久久久久久| 亚洲女同性videos| 久久久噜噜噜久噜久久| 久久精品视频播放| 8090理伦午夜在线电影| 欧美国产欧美亚洲国产日韩mv天天看完整| 国自在线精品视频| 亚洲性夜色噜噜噜7777| 日韩av免费在线播放| 欧美精品videossex性护士| 亚洲成人av中文字幕| 欧美日韩在线看| 国内免费久久久久久久久久久| 久久精品亚洲国产| 亚洲精品一区在线观看香蕉| 欧美电影在线免费观看网站| 久久久久久久久久av| 色久欧美在线视频观看| 中文字幕自拍vr一区二区三区| 日韩色av导航| 久久国产精品久久久久久| 日韩视频中文字幕| 亚洲激情在线观看视频免费| 亚洲精品国产suv| 欧美人与性动交| www国产精品com| 亚洲人线精品午夜| 久久夜色精品国产亚洲aⅴ| 久久久久久91| 91精品久久久久久久久久| 国产精品日韩欧美综合| 欧美日韩国产999| 国产亚洲精品久久久| 人体精品一二三区| 久久亚洲精品毛片| 综合国产在线视频| 亚洲aⅴ日韩av电影在线观看| 精品小视频在线| 黑人巨大精品欧美一区二区免费| 国产日韩欧美视频在线| 91国产视频在线| 日韩毛片在线观看| 久久福利网址导航| 成人国产精品免费视频| 国产精品国内视频| 成人网在线观看| 日韩在线观看免费高清| 国产精品视频xxx| 国产一区二区黑人欧美xxxx| 在线激情影院一区| 国产精品91久久久久久| 日韩av最新在线观看| 亚洲人成网站色ww在线| 亚洲视频第一页| 8050国产精品久久久久久| 欧美日韩国产精品| 久久影院资源网| 久久久久一本一区二区青青蜜月| 成人精品久久久| 国产精品久久久| 久久久久成人精品| 8090理伦午夜在线电影| 国产在线视频一区| 欧美极品第一页| 亚洲mm色国产网站| 久久影院免费观看| 国产999在线观看| 亚洲美女av在线| 久久偷看各类女兵18女厕嘘嘘| 色综合91久久精品中文字幕| 日韩专区在线播放| 国产偷亚洲偷欧美偷精品| 欧美日韩国产影院| 国产精品无av码在线观看| 亚洲视频网站在线观看| 欧美最猛性xxxxx免费| 爱福利视频一区| 欧美成人午夜视频| 夜夜嗨av一区二区三区四区| 91精品国产99|