發表文章

目前顯示的是 2018的文章

Google C++ coding style一點心得

最近開始跟google的工程師做code review 真的是被電得一蹋糊塗阿 對方看得非常仔細,而且提出了很多我程式邏輯不太通順的地方 雖然很多起因是我照之前sample code的邏輯硬是下去改 但的確後續我就沒有特別思考前後是否功能有重複或是多餘的部分 這邊被對方找出非常多問題出來 可以感覺google對沒有用的程式碼非常在意 當然也有可能是這個reviewer自己本身很討厭多餘的東西放在code裡面 除了註解要寫得盡量清楚之外 程式本身可以越精簡越好 我本身對C++並不是很熟悉,常會用C語言的方式硬幹 但是的確對用C++的人來說是很笨的做法 有幾個點特別被點出來,紀錄一下以免以後忘記 1.Google C++不使用#define,改用const 原因是似乎是要預先pre-compile,會多耗資源 2.傳引數使用call by reference而不使用call by value http://wp.mlab.tw/?p=176 原因是會浪費很多記憶體空間 尤其我笨笨的傳struct進去函數裡面,非常糟糕 call by reference就是變數的address跟value在上層跟下層函數都會是一樣的 就不會浪費多餘的空間去記憶 3.class裡private的變數後面要多加"_"做為區別 4.函數名稱使用大寫例如PerformUpdate() 5.區域變數使用小寫加"_",例如video_image_version 6.const前面要多加"k",後面用大寫,例如kDefaultVideoDeviceMountPoint 7.行尾空白鍵要去除

打通新板子上uboot & kernel的網路IC

這次新版子回來有遇到網路不太通的狀況 老闆在kernel做了一些rgmii phy clock delay的調整 主要是透過delay對clock做一些校正 讓icplus ip1001這顆IC的clock可以對準一點 另外uboot應該也是做了同樣的事 這樣網路才可以正常運作 這是一個好的經驗學習,下次要記得有這些東西可以調整

如何建立chromium firmware updater測試環境

圖片
最近都在搞chromium的firmware updater 雖然在https://www.chromium.org/chromium-os/developer-guide 算是寫得蠻詳盡的 但是實際上測試環境要搞起來還是花了一番功夫 chromeOS為了不讓人隨便埋一些code進去駭客 還是需要做一番設定才可以把你的source code丟到目標機台上 不像一般linux環境只要可以cross compile就可以把程式丟到目標版上去執行 1.下載depot_tools (裡面有bootstrap的設定要做,不然後面檢查檔案時會出現permission denied) 2.下載chromium OS(使用repo而非git,相關的套件可以透過apt-get取得) 3.export depot_tools,這樣才可以使用cros_sdk進入chormiumOS的compile環境 4.執行cros_sdk後可以看到~/trunk/src/script$,目的是確保每一份chromiumOS都是在相    同的環境下被compile出來 5.build image,一定要是test版本的,這樣後續才有SSH功能可以上傳檔案,會產生一個    chromiumos_test_image.bin    (做之前做好確定一下空間有4GB以上,而且需要兩三個小時的時間)    (參考https://www.chromium.org/chromium-os/developer-guide "Building    ChromiumOS"的順序一步一步來即可) 6.製作USB開機碟,在windows上可用chrome下載Chromebook Recovery Utility    將image給燒錄進去USB隨身碟 7.使用USB開機碟開機(chromiumOS主機需打開這個功能,須進入developer mode)     (default帳號是chronos,密碼是test0000) 8.package要cros_workon --board=${BOARD} start ${P...