這是人生第一次寫embedded system,從4月份開始porting,到8月份第一階段底層porting結束

9月~11月份是第二階段uart,GPIO,ADC porting 結束

雖然時間花了7個月之久,但真正porting的時間不到3個月,因為平常要寫報告,跑業務,還要處理雜事

一週大約只有1,2天可以寫code和找資料

對一個新人進入embedded system而言,我給自已打80分,讓自已還有20分的進步空間

當時,聽到自已要寫embedded system從排斥到接受,心裡也猶豫很久

這對我而言是一個全新的領域

客戶拿來的board是一個客製化的board,所有線路都已經和原先不同

am335x demo board分成daughter board and main board兩個board組合而成

但我們的customized board只有一個小小的board,是12cm x12 cm

在第一階段porting 就遇到很多的問題

EEPROM找不到相hardware configuration,所以去board-am335xevm.c將有關EEPROM的code comment out且寫code去找出version board_name等相關的資訊,再一一填入

總算可以進入kernel,此時卻出現mmcblkop2的error

原來,我們是用micorsd card,但系統是用sd card,所以他會去check write-protect,所以要去找這個code在哪,去修改完畢就可以用mount filesystem

這時候可以順利進入filesystem,卻進入到safe mode

這又是因為我們的lcd pin mux有修改過,所以只要修改pin_mux定義就可以解決問題

此時進入android,發現R and B兩個顏色卻 changed,因為demo board是用32 bit,我們是用16 bit

所以又要去改code,將R,B兩個顏色互 change

在ethernet的部份,原本的demo board是走gmii

customized board是走mii,所以只要修改pin_mux就可以解決

進入到android system,卻開始系統不穩定,無緣無故當機

原來我們的ddr2的size忘了調整,demo board是256M,但我們的customized board是128M,

所以改成128M就ok

這時候卻遇到最大的問題就是影音無法play

因為i2c有修改過,所以開始研究i2c ,mcasp0,and video的相關code

最後修改了好幾個地方,總算video and audio可以同步play

大概有一半的時間都在改這邊的code

最後就是定義volume up and down的pin mux

到這,底層的porting已經完成

----------------------------------------------------------------------------------------------------------------

現在開始進入第二階段的目標去控制gpio,uart, adc

如果是要在kernel space 寫gpio and uart controller就很簡單

因為我們有特別的需求,需要將讀到的資料存在filesystem,讓androind能夠去讀取,並顯示在android UI

故需要寫在user space,這就變得很複雜

uart and gpio的pin腳已經定義好

接下來是要寫controller code

這邊才是我花了很多時間去寫code

原本一開始想寫在kernel space,由於filesystem尚未mount, 所以kernel是無法做讀取的動作

因此才改寫在filesystem,可是filesystem竟然無法直接用timer function,就只好用sleep去取代

經過長時間的努力只剩下adc

ADC在am335x有分兩種mode,one-shot and continuous

其中one-shot是屬於被動模式,比較適合我們目前的狀況,每10秒就去讀一次adc

而continuous則是屬於主動模式,會一直讀取ADC,但我們不需要這麼做,就不用continuous

最後,也mount gprs的modulus,這兩天來將硬體mount之後,看結果如何吧!!

辛苦這麼久,成果也逐漸出現

這是很開心的一件事

 

 

 

 

 

 

 

 

 

 

arrow
arrow
    文章標籤
    am335x ti porting
    全站熱搜

    colin 發表在 痞客邦 留言(6) 人氣()