如上篇所言,在離職之後有去兩家公司,一家做NAS一家做SMART phone,但公司有自身很大的問題很快就離職,剛好此時又有朋友找就到了該ic代理商,開始了上海冒險之旅!!

雖然之前都有出差的經驗,但我負責地區在深圳,第一次去到上海常駐還是有一點緊張,另外再職務方面也同時躍升管理職,在該公司負責項目也從數位轉為工業,這家是讓我覺得最輕鬆但是心得最多的公司,也是我最痛恨的工作可以參考下面所說,職務內容很簡單將該產品線做成total solution,建立技術行銷和成立實驗室,實施各地區FAE的統一管理。

在total solution方面其實一直缺乏HW,因都是大功率自己對POWER不熟,此方面一直沒有有效突破,因為原本的FAE無能力debug,另外在技術行銷這塊,更是因為所謂貿易商卡的更死,成立實驗室到是有成功,但卡在經費不足無法做太大功率的案子,實施各地區的統一管理也是挺失敗的,因為各地方的大頭保護自己人意識太強,導致無法用專業角度或是建立標準制度去看待,我變成主要應付原廠需求的單一功能。

談談印象最深的貿易商,或許業界的人都略有所聞,因代理商交貨或是客戶交易條件不足情況,會請所謂的貿易商帶貨實施不能滿足的交貨條件,從中給予貿易商相對的利潤,但好玩的地方是在若是掌握價格的人心懷不軌,就出現了所謂的"灰色地帶",藉由各種理由放下最低價碼給予貿易商,貿易商在給予該傭金,這是業界不能說的秘密,現在很多代理商都有這種利益關係,甚至會牽扯到原廠等等,這就是為什麼技術行銷會失敗的原因,但這也是為什麼去大陸賺錢比較快的原因。

因代理線的原廠有指定貿易商,須有能力整合技術區塊,藉由技術之名為偷走貨之實,失敗的原因就是在公司掌握價格的人,為了保持自身的利益而去阻擋,結果這種人還是多數,那因掌權者是自己朋友,總來一個大風吹就好了吧!!答案是不行,原因是他自己也有玩,怕幹掉那些人會回馬槍打到自己。

funlife1 發表在 痞客邦 留言(5) 人氣()

總是在工作或是心情低潮的時候,會翻翻自己寫的一些之前工作的心得,發現年輕人真的比較不知天高地厚,哈!!但是也是紀錄成長跟反省過去的一些過程,經過些許年一直沒更新自己的狀態,或許是不能認同自己做的事情,有那麼不成功吧!!還是開始紀錄一下,希望在下個四年可以做到讓自己滿意的狀況。

延續雜記1的情況,其實對做monitor並沒有太多不滿,但是在ODM廠總覺得少了發揮的空間,做了很棒的工程師把問題都解掉,然後下個案子進來又漂亮的解掉到下下個案子while(1){project++;},也從低階機種做到中階到高階,從用單一chip搞一個低階的monitor,中階則是加入了一顆ASIC,高階是當時最火紅的3D還要用兩顆IC去做,當時也有相關120HZ的產品利用MEMC去補60HZ,但說學習到最多東西的反而從我們的日本客戶那邊學來的,不過這又是另外一個故事了。

印象中解最鳥的問題是有一台DVD player HDMI出來的訊號在切換resolution的時候會有問題,因為audio amp的參考頻率是由前端audio dsp過來,但在切換空檔會有所謂的爆音,即使使用電源開關順序不同還是遇到,因為變成打開電源前面雜訊會有小爆音,如果直接mute則是因頻率未進來就出現爆音,此現象還不是每台DVD player會有,類似鳥蛋的問題很多重工,像是解掉A因為B的相同性不同,癥結點在同一個地方時後客戶還不能接受,甚至DVD輸出本來就是有問題,到為了那完美的相容性反而去把正確的改成不正確的。

另外有一次選到有cross talk IC,因接近PP測出問題有在某個pattern出現串色,要求修正HW更換IC 被reject,因不想驚動客戶最後只好靠FW修,不過那時候自己也很智障,為了產品完美的矜持堅持不用FW並去highlight,結果在離職時後另外一個同事用了相同方法解掉,導致這一系列的案子隔了三年還是有此情況,因為變成量產過的案子代表料都沒問題,客戶要我們提出更換原因,結果就當然.............沒換掉該IC原廠承認有問題的IC,不過客戶測試不出來並不代表我測試不出來阿,哈哈哈哈阿。

這個工作說實在並無太大的不滿,因為做出來的機種在某國銷售是第一名,過程很鳥蛋很辛苦很值得,是我第一家熬夜到很兇的公司,測試相容性的機台和驗證方式,真的不是一般可以想像到的,但承如上述說在此時開始在思考,這種生活工作公式的是正解嗎?好像自己還可以做得更多,但在該職位好像只能乖乖解issue。

funlife1 發表在 痞客邦 留言(0) 人氣()

這是一個作業 就是考驗大家從10到數到1 看看誰有創意,以上就是我跟玉蕭的創意,

其實架構是我想的,不過內容是玉蕭自己發揮,用照片剪輯成影片,

用了一堆阿哩阿雜的轉場,不過應該也不容易看出來,但是這樣壓縮照片看起來就怪怪。

PS:玉蕭 某時候還是很帥的!!

funlife1 發表在 痞客邦 留言(2) 人氣()

好久了.....這個作業算是我二技覺得讓我覺得滿驕傲的功課之ㄧ,某遊戲的動畫全部音效和

音樂自己搭配,也剪輯掉一些畫面,前段音樂是linkin park,後段我有一點忘記了,

好像是某樂團的音樂,雖然自己覺得很屌但是沒用,老師在課堂上是用"監聽喇叭"播放,

我一整個逼機掉音樂變的很小聲,也怪我Premiere不是用cubase唉......,

其實我覺得最屌的作品是我的影片自傳,可惜~才剛交出去隔天,連原始檔都被砍掉了

funlife1 發表在 痞客邦 留言(1) 人氣()

我印象中Android是google去年快年底出的一套sdk,主要是使用linux kenerl+

java appilcation的平台,當初也是興沖沖的去下載tool跟sdk,我當初就說他會

紅,因為他解決linux在development很令人詬病的問題,以下只針對embedded

做討論,我對x86 pc的認識說真的不是那麼熟析,所以在pc application就跳過。

為什麼會拿linux來比較是因為一樣是free,討論起來地位會比較接近,在加上大家

funlife1 發表在 痞客邦 留言(2) 人氣()

今天一如往常的跟同事相約去抽菸,在出發前

同事A請我幫看一封MAIL,說看完再去抽菸

我當然是很有義氣說好阿,瞬間起壇請耶穌上身

我~~~~~~開~~~~~~天~~~~~~眼~~~~~~~~

看了一下   心理OS:幹!!是中文~不難阿!!難道是陷阱題

funlife1 發表在 痞客邦 留言(0) 人氣()

最近工作有一點倦怠說不上有真正的理由,也不知道自己的想法,第一個工作 接觸了dtv solution 算是 embedded system,他有掛了 Nucleus RTOS,主要工作可以分兩個部份,其中firmware 部份像是EDID control和電路板重新設定 去control regsiter像是gpio、panel driver、input source,software 就偏向customer factory and application function,一個products必經EVT、BVT、DVT、PVT、MP,在這過程出現的bug就全包,也會調整color temperatrue、gamma、brightness阿哩阿咱的。

但當代理商的fae重點在,分析bug成功複製,當你能成功分析bug,在哪個點code的哪一行出現,其實就大概可以修掉,但呼叫到原廠包好的sdk,還是只能請原廠解決,被包起來的部份通常是reg control,也會因為有些bug可能會破壞到code style,要修改可以但要一定回報原廠請他們在提供底層sdk改進此問題,以省掉後續code的雜亂不堪問題,這家公司真的是我很感謝的公司,教了很多基礎理論 像是Composite DVI S-Video hdmi YPbPr dvb-t atsc ntsc pal signal,熱情的前輩給了很好的方向,也花了很多時間traning我,聽我用破破爛爛的英文報告,告訴我哪邊觀念有問題,讓我在後期對tv test有很大的功力提升,加上有理論在實做的過程真的多了很多東西可以思考,而變成邏輯式推論,並且在同事互相share information,coding還是針對bug test真的進步很多。

後期因為有些關係,開始接觸ATMEL ARM MCU,其實是當FAE但是說真的我的個性跟不熟的人真的沒話聊,所以我還是專注在幫客戶解bug,但是從total soultion開始自己要認真的去看datasheet,這種產品的可能性就很大可以整個hw自己design在外掛module 變成products,或是利用chip提供的camrea  catch photo to memory 在read 加上獨特的演算法去判斷。

software和firmware在non-system or linux or win-ce,在利用現有提供的gui去design ui就成了產品,也是對自己架構產品的想法,再此開了一個頭,但當時只能做了linux porting,畢竟還是fae不是產品研發在odm,後來是使用原廠提供的Evaluation Kit ,在google traning自己,原廠網路上其實有很好的教學,但是如果要談到自己重頭handle尾,還是有一段差距的,也是有sample code 可以利用,就這樣跌跌撞撞 porting ek,也學了linux embedded如何po到不同的版子,也從po u-boot 升級開始linux kernel在在到openembedded,第一次的工作喜悅,就是我點亮那個ek panel show出畫面,然後拿著觸控筆,戳戳戳玩了兩個小時.........。

但是天不從人願,發生了很大的因素,我提早離開這家公司了,我好懷念........。

funlife1 發表在 痞客邦 留言(25) 人氣()

在經過我多次跑河堤,我已經抓到訣竅了。

太陽
-----------------------河堤--------------------------

-----------------------河堤--------------------------

funlife1 發表在 痞客邦 留言(2) 人氣()

這一兩年已經面試過無數的面試,真的很多工作也都在嘗試不同類型,

但始終不知道自己追求的是什麼,技術還是金錢,拼命還是安逸,

找了又找這次這樣換下來真的累了,現在要去的算是一家大公司,

應該會龜個一兩年在看情況,但目前還是有一個比較明確的目標,

先把英文學好,存筆錢好好出國玩,後來的路很難想像是什麼,

funlife1 發表在 痞客邦 留言(0) 人氣()

經由前篇的文章介紹,相信也對整個流程和相關 struct有所了解,讓我在PO另外一個用法,keyword "proc_dir_entry",Linux的PROC檔案系統是procedure檔案系統和kernel檔案系統的組成的,是kernel模擬出來的軟體檔案系統,讓kernel對user space的資訊窗口,所以你可以看到/proc的每一個檔案都代表kernel裡面專屬的function,linux的工具像是ps、top也是從這邊提取所要的資訊,雖然它是一個很便捷的寫法,在debug上也有相當高的便利,但取決哪種用法還是像我一開始說的那樣,在面對不同的device要用不同的方式,不然就枉費linux提供相當多可以對應的struct and method,不過在i2c來說算是適合用這種寫法才對。

再來我們一樣來看要用的struct,這次應該有注意到它提供的讓你填入function並沒有那麼多,相對提供了很多parameter,但主要我用到的還是read/write,如果你在去看read_porc_t的struct,會有一個很重要的東西就是page,page是來自kernel輸入的parameter,其餘的都是輸出的參數,若是有太多資料是無法達成一次傳輸,要用offset來分批傳輸,下面code有寫出來。

struct proc_dir_entry {
    unsigned short low_ino;
    unsigned short namelen;

funlife1 發表在 痞客邦 留言(1) 人氣()

這個是我最近自己寫的一個driver,其實是我有寫兩種方式,或許你會好奇跟上面那篇文章,使用的方式為什麼差那麼多,因為你對應的handware不能說只有一種方式撰寫,但常用的寫法是哪些,為什麼大家面對那個device都這樣寫,自己要注意跟去比較,然後去挑你最適合的,雖然code可能長相會差很多部過流程都是差不多才對,你要先知道你撰寫方式的struct,對他填入正確呼叫的方式,像是我下列code的東西他的struct file_operations,在來你要了解他的方式為何,file_operations是定義驅動程式的system call與實作system call的struct,可參考Fs.h (include\linux)  :

struct file_operations {
    struct module *owner;
    loff_t (*llseek) (struct file *, loff_t, int);

funlife1 發表在 痞客邦 留言(0) 人氣()

從很久以前就很想去撰寫這類的文章,但因為文筆不夠生動,知識技巧和技術深度其實都無法寫到自己想要的感覺,所以等了很久,雖然現在還是很肉腳,但至少我找到想要的主題,讓我們慢慢進入linux 世界吧!

先談論我的工作內容,不管在第一個工作(代理商)或是第二個工作(系統廠),其實每個工作接觸的面和點都不同,像是在代理商自家產品要很了解,尤其是在regisiter & datasheet,因為不提供total solution,不然有提供solution 是買人家的system 在po自家公司的code,非常少見所以不列入討論範圍,所以後來轉型開始往driver(kernel space)面少點深,在第二個工作已經進來三個月,就接了兩個project,第一個是keil c 8051的架構(這個找時間在額外開一個文章來討論),第二個就是從8051 porting到 MIPS linux embedded system,時間很趕沒時間去發揮到很多,對專案程度而已第二家公司摸的會比較多面但時間緊湊摸不到點,因為在這過程也在學習所以這次開始po文,當作是一個成長紀錄,廢話不多說就開始吧!!

撰寫driver有很多技巧,在你面對硬體上也有不同的特性,像是大架構arm mips 雖然大家都說他很相似,其實還是很多不同的地方,舉例來說在gpio mips就是一個單一feature 在arm 部分 就有分periph,更不用提x86 或是 其他的,在細看內容 小從簡單的gpio up/down 到 gpio 寫出 i2c 或是usb等等,要了解需求在針對需求用對方法,下列介紹就針對我現在在看的地方。

如果不知道是剛入門不知道去哪邊找資料 下載code來看,請到atmel因為那邊datasheet是開放式下載的,我看到很多論壇都在討論samsung chip,我也很想同樂樂阿,但是他的原廠網站並沒有提供資料,在加上atmel有出原廠的ek(demo board)所有資料都可以找到,也可以去這裡下載kernel code(此連結是到原廠官網),所以來吧!!想學免費的請跟著點進去自己下載來練練功,檔案很多先不管其他的。

在arch\arm\mach-at91這個路徑下,你會看到Board-ek.c,這裡面放的是driver init,如果用source insight看到的你應該可以看到function連結出去很多,若是用其他編輯軟體就要自己找一下了,在這個檔案你會看到device init 都有 platform_device_register 這個function,這個就是註冊 該drvice的function,但此時kernel尚未看的見device,這個又要討論linux kernel2.6 跟 2.4 driver的差異,晚一點在補文來討論,此時需要將init function用module_init,才算真正的完整註冊。

funlife1 發表在 痞客邦 留言(0) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。