[工作點滴] VisualC string轉成const char

// 轉化成c風格 string str1(“hello world”); const char *c_str1=str1.c_str(); //轉化成數組 const char *a_str1=0; a_str1=str1.data();

November 5, 2007 · 1 分鐘 · 13 字 · Fran Kuo

[工作點滴] 在ubuntu/debian添加開發工具package

在ubuntu/debian添加開發工具package 如果是 general development apt-get install build-essential 如果是 X development apt-get install x-window-system-dev 如果是 GNOME development apt-get install gnome-devel 如果是 KDE development apt-get install kde-devel

October 31, 2007 · 1 分鐘 · 25 字 · Fran Kuo

[工作點滴] 超級變變變

最近幾個星期,工作內容轉換的速度真他X的有夠快,因此我把標題設定為超級變變變,就像在政治上的口水也可以把標題訂為超級騙騙騙,然後可以像網路上面的Flash動畫,製作出一連串的續集,反正接下來半年都是在選舉,用這個標題應該還不錯!剛好我又想到,長馬扁,就是常常騙人的意思。 回歸正題,我不曉得是我家主管在考驗我還是怎樣,最近工作常常就是:那個Fran,我來分工合作一下,你寫streaming server,我來寫client。一星期後,那個Fran,我在想那個Streaming server我請S公司去問一下價格,那client這邊有VLC、MPlayer,然後還有樓下的CMS,我們就都Try看看,接著,我又被指派到看VLC應用程式,又一星期後,那個Fran,CMS修改已經整理到一個段落,那我們就用這個好了,我工作內容又變處理CMS的軟體,一下,三個星期就這麼過去了,只見一事無成的我,也許,他想讓我學會如何將我的人生multitasking,而上星期五,我的最新任務又來了,又變成要寫協助寫VHDL了……然而,板子有點問題,星期一,我又回去弄CMS了! 因為這樣,我突然覺得有點Lost,可能主管們不知道系統不斷被中斷,一沒弄好就容易當機咩!我現在的日子就是這麼回事,而我也處於當機的邊緣…

October 29, 2007 · 1 分鐘 · 5 字 · Fran Kuo

[工作點滴] 體驗頂級高清娛樂,享受精彩數字生活

最近去看一些關於高清發展的相關消息,什麼是高清?沒接觸的人應該不曉得,我第一次看到這個名詞,我腦中第一個浮現的圖案是……………..賭神高進!看來我已經中毒甚深!第二個浮現的圖樣是一間公司,接下來的想法是,怎麼有人取一個讓人覺得有點台的公司名稱!最後,我終於了解了,高清=HD,就是High-Definition!就是廣告上常看到的HD高畫質數位電視的那個HD啦! 標題是一間大陸公司產品使用手冊一開始的標題,看到這個,我真覺得這幾年大陸的發展真的是一日千里,當大陸那如火如荼的發展新一代的技術並開始試著去制定一些標準時,台灣相對上逐漸的落後了,現今來看台灣的競爭力仍然存在,但這個差距逐漸的縮小中。而大陸原本讓人覺得是低價次品牌的東西,慢慢開始為人所接受,因此我們該好好正視這個變化。 無論如何,HD在數位家庭的位置上,隨著LCDTV的普及,開始有了許多對於高畫質的週邊需求,目前長期著力於HD發展的廠商非Sony莫屬,Sony的一系列規劃佈局,看來逐漸進入收網階段,不可否認,在Blueray和HD-DVD的競爭中,從佈局的配合度及廣度,Blueray在沒有其他特別的事件介入下,在我認為應該是佔了上風,而Sony在未來幾年有很大機會享受到HD所帶的甜美的果實,雖然在遊戲機上被Wii給突襲了!我覺得無損於Sony在這塊市場的發展,我們可以持續觀察這個市場的發展。

October 14, 2007 · 1 分鐘 · 3 字 · Fran Kuo

[工作點滴] Busybox 1.7.2 taskset.c編譯產生error

在編譯busybox時,我用預設的config,即 #make defconfig 然後再用某toolchain, #make ARCH=arm CROSS_COMPILE=arm-linux- 編譯之後會產生兩個狀況的error,此為其一,另一個為route, 但我尚未找到解決方法,暫時將其disable就可以編譯過, 而這個taskset.c我在網路上找到如下一篇文章, 主要的問題是產生在sched_getaffinity與sched_setaffinity 這兩個函式的參數個數, busybox主要為uclibc所設計,而在glibc底下剛好就發生了這個mismatch, 而編譯的狀況跟source code修改如下,如此即可順利編譯成功! -——————————————————————————————————– CC miscutils/taskset.o miscutils/taskset.c: In function taskset_main': miscutils/taskset.c:78: warning: passing arg 2 of sched_getaffinity’ makes pointer from integer without a cast miscutils/taskset.c:78: error: too many arguments to function sched_getaffinity' miscutils/taskset.c:86: warning: passing arg 2 of sched_setaffinity’ makes pointer from integer without a cast miscutils/taskset.c:86: error: too many arguments to function `sched_setaffinity’ make[1]: *** [miscutils/taskset.o] Error 1 make: *** [miscutils] Error 2 ...

September 30, 2007 · 1 分鐘 · 202 字 · Fran Kuo

[工作點滴] ubuntu dash

Ubuntu 為了加速開機的速度使用了 dash 來取代傳統的 bash在/bin底下可以看到,/bin/sh -> /bin/dash,如果我們要改為原本傳統的bash,則可以在提示字元底下鍵入: sudo dpkg-recofigure dash 出現了設定視窗之後選擇’No’即可改回原本的bash,建議有在ubuntu底下開發軟體的伙伴們,如有寫到關於shellscript的部份,還是改回bash比較保險。

September 25, 2007 · 1 分鐘 · 11 字 · Fran Kuo

[工作點滴] Daemon應用於Linux嵌入式系統實作

Daemon應用於Linux嵌入式系統實作 Daemon(或是service)對有玩linux的同好應該是耳熟能詳的東西,Daemon大陸翻譯為守護進程,而我在台灣找網站沒有找到什麼特別的翻譯,在Devin Watson先生的Linux Daemon Writing HOWTO中,有做詳細的入門簡介及一個範例,我透過這個範例將目前專案的幾個程序做了一個小改變,如此可以達到常駐於系統背景的功能,以下是我的一個程式片段,可供各位參考應用。 int main(void) { char message[20]; // Process ID and Session ID pid_t pid, sid; // Fork off the parent process. pid = fork(); if (pid < 0) { exit(EXIT_FAILURE); } // If we got a good pid, then we // can exit the parent process. if(pid > 0) { exit(EXIT_SUCCESS); } // Change the file mode mask umask(0); // Open any logs here // Create a new SID for the child process. sid = setsid(); if(sid < 0) { exit(EXIT_FAILURE); } // Change the working directory. if((chdir("/")) < 0) { exit(EXIT_FAILURE); } // Close out the standard file descriptors. close(STDIN_FILENO); close(STDOUT_FILENO); close(STDERR_FILENO); // Daemon-specific initialization goes here // Set the GPIO. // 這個部分是我所寫的初始化GPIO的應用程式。 system("/usr/sbin/setgpio -il"); while(1){ // 這個部份是透過網路上找的另一個程式, // 如果可以透過system,去取得回應值並將之存於一個Buffer中 // 還蠻好用的。 // Get the status. my_system("/usr/sbin/getgpio --status", message, 20); if(message[17]=='0'){ system("/usr/sbin/setgpio -ol"); } else if(message[17]=='1'){ system("/usr/sbin/setgpio -oh"); } // Sleep for 5sec. sleep(5); } return 0; }

September 19, 2007 · 1 分鐘 · 154 字 · Fran Kuo

[工作點滴] Patch vs 嵌入式系統發展心得

這陣子被Assign工作到弄stream server上面,從原本的發展平台上面,使用了patch加上shell script的方式來將檔案從原始碼,透過patch將原始碼變成修改過的檔案,再compile生成需要的聯結檔或著是執行檔,一開始的時後沒有仔細去想說為何要如此做,但最近開始有感覺如此做的好處。 這些我們需要的原始檔案是可以透過網路方式去取得的open source,而這些檔案就是最初的原始檔,而修改過後的內容,我們透過diff的指令去製作出patch file,當我們一個個將不同功能的應用程式組合起來,我們可以得到一堆壓縮檔和一堆patch file,再透過shell script分別可以命名為,EXTAR:extract tarball,MAKE:make all application與BUILD:build to directory we want,以上三種方式來管理,如此可以讓整個專案的架構看起來很容易理解,目前,我正嘗試用此方式再reconstruct相同的東西,只是是各應用程式的升級版,如果可以順利build起來,那未來要升級相關程式應該是沒有太大的問題,當然這不是指在程式開發過程中,而是已經開發到一個程度之後,對整個專案做一個整理,如果要轉交工作給別人的時候,可以讓別人很快的清楚明白系統的架構。

September 19, 2007 · 1 分鐘 · 15 字 · Fran Kuo

[工作點滴] patch file in Linux

建立patch檔案使用的命令 diff -Naur 舊目錄或檔案 新目錄或檔案 > patch檔案 如何使用patch 對於一個patch檔案,有兩種常用使用方法: 1. cat new-patch | patch -p0 2. patch -p0 < new-patch patch命令裡面的層數 參數-p來指定從第幾層開始比較。比如有一個patch檔案的開頭是: -– old/modules/network JAN 26 12:11:36 2002 +++ new/modules/network SEP 20 20:07:38 2003 如果使用參數-p0,就表示從當前目錄,一直找到network的目錄。 如果使用參數-p1,就代表忽略第一層,表示從當前目錄找modules目錄,一直找到network目錄。 這樣會忽略掉patch檔案頭提到的old及new目錄。 patch的結構: 分別由—/+++開頭的兩行,表示要patch的檔案。 一個patch檔案中的多個patch 一個patch檔案中可能包含以—/+++開頭的很多區塊,每一區塊用來形成一個patch。 因此在一個patch檔案中可以包含好多個patch。 區塊是patch中要修改的地方,通常由不用修改的東西開始和結束。 他們只是用來表示要修改的位置。 而區塊通常以**@@** 開始, 結束於另一個區塊的開始或者一個新的patch head。 區塊的縮進,區塊會縮進一列, 而這一列是用來表示這一行是要增加還是要刪除的。 區塊的第一列 +號表示這一行是要加上的。 -號表示這一行是要刪除的。

September 14, 2007 · 1 分鐘 · 53 字 · Fran Kuo

[工作點滴] 在windows下登錄ActiveX元件方式

登錄ActiveX: regsvr32 mcscal.ocx 反登錄ActiveX: regsvr32 /u mcscal.ocx

September 13, 2007 · 1 分鐘 · 7 字 · Fran Kuo