|
ARM是2003年登陸中國大陸的,而五年后其影響力與日俱增,越來越多的處理器開始選擇ARM架構,而中國大陸的工程師也開始集中進入ARM世界,而對于熟悉傳統MCU控制的工程師來說,這種轉型是有些痛苦的。
且看下面這位較早轉型的理工男的經歷吧。
1、基礎階段
話說06年第一份工作從事的是PLC開發,用protel畫原理圖和PCB,寫AVR單片機程序,焊焊板子,還去過華強北買器件,比較雜,但是接觸面比較廣,為進一步學ARM打下了基礎。
期間不甘心只停留在AVR單片機層次,買了邵貝貝的《uCOS-II嵌入式操作系統》,看了4-5遍,弄懂它的原理,還看了陳明計的《SmallRTOS嵌入式操作系統》,之后自己寫了一個AVR的時間片調度器。
2、接觸ARM
08年4月份換了工作,搞B超,接觸三星的S3C2410,看2410的數據手冊,開始接觸到ARM的32個寄存器、中斷管理、MMU、7種工作模式,還真的暈了好長一段時間,模模糊糊,弄不懂,挺痛苦的。工作中也開始實踐起來,基于ADS1.2,采用uCOS-II。
先不管ARM內核的細節、產品平臺底層的細節,也先不管USB、LCD、內存控制器等較復雜的部分。先搞單片機有的那些外設,發現單單寫2410的驅動程序,如SPI、USART、IO控制,發現跟單片機一樣,只要看2410數據手冊的SPI、USART、IO口部分就行了。這時,信心有了,感覺自己多少可以把2410玩起來了。
這時買了一塊2410開發板,帶有ADS1.2例程,這些例程有啟動匯編代碼,還有底層的一些C語言初始化代碼,看的很費勁,不知道是啥意思。沒關系,你總會找到main函數入口吧?其他我不管,先自己在main函數里面編編代碼玩玩先,試了URAT、SPI、I2C、RTC,跑起來了。這時再學學中斷,按照例程的中斷,自己也編寫一下自己的中斷例子。
發現經過例程學習ARM,效果比單看書好的多。單看書你會暈,很多不明白,越看越枯燥,越看越沒信心,感覺看了很久,心里還不知道ARM是什么。學學例程的話,把ARM當單片機用,很簡單,上手很快,你對ARM的恐懼感就慢慢消失了,信心也有了,再結合書本,對照例子,心中一些不明白的ARM內核原理,也逐漸開朗,哦,原來如此,原理很簡單嘛。
再后來,看ARM原理、MMU、中斷管理、SDRAM、LCD控制器,自然而然的都明白了。3、提高
基礎有了,慢慢的接觸到USB、FAT文件系統、U-BOOT、GUI顯示,一個一個的去熟悉,發現你已經入了嵌入式的大門,慢慢的積累,每搞定一個功能,也小有成就感了。
4、后記
09年五一又換了一份工作,用atmel的9260芯片,搭建軟件平臺,這時對以往知識的一次綜合應用,以前都是現成的平臺,自己在上面添加功能,修修改改,這一次,是從無到有的建立ARM+uCOS-II軟件平臺:
編譯器選型,選了MDK,上網找破解;
了解9260的啟動過程,程序燒寫方案;
選擇調試工具,建立調試環境,使用JLINK、或者wiggler+HJTAG;
uCOS-II移植,下載了官方IAR移植版的,根據MDK做修改,終于跑起來;
編寫9260各種外設驅動;
應用軟件系統結構設計,多任務劃分;應用編程,問題解決,這一塊花的時間最多了。
學習zmodem,把官方的zmodem程序看懂,移植到產品上,做了一個不超過4K的9260引導程序,代替atmel的at91bootstrap,可以通過“超級終端+串口”燒錄程序,而用SAM-BA燒寫,很麻煩;
深入分析了yaffs文件系統,做了一個日志系統,計劃今年將yaffs分析經驗寫成一個文檔;
今年的計劃:預測物聯網趨勢,網絡將會大規模應用,要深入學習tcpip,學精,分析lwip代碼
5、希望能給后來者參考價值。
|
|