2012年11月8日 星期四

工作韌體心得分享

最近工作有一點倦怠說不上有真正的理由,也不知道自己的想法,
第一個工作 接觸了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真的進步很多。


ref : http://funlife1.pixnet.net/blog/post/28096593-%5B%E5%BF%83%E5%BE%97%5D%E6%88%91%E7%9A%84-%E9%9F%8C%E9%AB%94%E5%B7%A5%E7%A8%8B%E5%B8%AB-%E4%B8%80%E5%B9%B4%E5%8D%8A%E5%B7%A5%E4%BD%9C%E5%BF%83%E5%BE%97

2012年11月7日 星期三

C語言typedef的用法--解惑


需要復習一下各種運算符的優先順序和結合順序了,順便找本書看看就夠了。 
#1:int* (*a[5])(int, char*);
首先看到標識符名a,“[]”優先級大於“*”,a與“[5]”先結合。所以a是一個數組,這個數組有5個元素,每一個元素都是一個指針,指針指向“(int, char*)”,對,指向一個函數,函數參數是“int, char*”,返回值是“int*”。完畢,我們幹掉了第一個紙老虎。

#2:void (*b[10]) (void (*)());
b是一個數組,這個數組有10個元素,每一個元素都是一個指針,指針指向一個函數,函數參數是“void (*)()”【註1】,返回值是“void”。完畢!
註1:這個參數又是一個指針,指向一個函數,函數參數為空,返回值是“void”。

#3:double(*)()(*pa)[9];
pa是一個指針,指針指向一個數組,這個數組有9個元素,每一個元素都是“double(*)()”【也即一個指針,指向一個函數,函數參數為空,返回值是“double”】。