2008年1月29日 星期二

悶悶的氣氛

最近的心情有點悶悶的。

似乎是期末時候忙得不可開交,現在悠閒起來,看了一齣韓劇「咖啡王子1號店」,看完後反而自省著自己的生活,似乎沒有真的很有朝氣地去完成一件事!大概是這個關係,開始悶悶的。

真是奇怪的心情啊,但說真的,我還滿喜歡這部戲,雖然一開始只是很好奇,在想咖啡的戲是如何蔓延,看到最後才知道是男女三角的故事,但我還是很欣賞劇中的恩燦,那麼有活力、自然。

希望自己也能夠如此地面對生活

2008年1月23日 星期三

錄音程式 Audacity

    http://audacity.sourceforge.net/

    The Free, Cross-Platform Sound Editor

    Audacity is free, open source software for recording and editing sounds.
    It is available for Mac OS X, Microsoft Windows, GNU/Linux, and other
    operating systems. Learn more about Audacity... Also check our Wiki and
    Forum for more information.

    The latest release of Audacity is 1.3.4 (beta). Because it is a work in
    progress and does not yet come with complete documentation or translations
    into foreign languages, it is recommended for more advanced users. See New
    Features in 1.3 for more information about the 1.3.x beta series.

    For all users, Audacity 1.2.6 is a stable release, complete and fully
    documented. You can have both Audacity 1.2.6 and 1.3.3 installed
    simultaneously.
--
    可下載相關 dll 檔  即可匯出成 mp3 啦

2008年1月16日 星期三

[C#] 跨執行緒作業無效: 存取控制項 'xxx' 時所使用的執行緒與建立控制項的執行緒不同

    .NET 2005 的 Thread 比較嚴格  不能隨意存取其他 Thread 的資料
    看網路上找到的資料聽說 .NET 2003 是 ok 的


      其錯誤訊息:


        跨執行緒作業無效: 存取控制項 'xxx' 時所使用的執行緒與建立
        控制項的執行緒不同。


    至於用來解決的方式有  BackgroundWorker  等相關技術
    但由於我的目的是要變動 winform 裡頭的東西  不太ok
    最後摸到一個方法:


        http://www.purecs.net/thread/topic736_1.aspx


    簡敘:

        Step 1:


          在 form 中請多添加以下這個 member
          private delegate void InvokeUpdateState(string state); // 依需求


        Step 2:


          要透過 Thread 做動作的東西
          如 event handler 會 call 到的那支 function
          對那支 function 做一些調整


          ex:


          private void show( string k ){
             if( this.form元件.InvokeRequired ){
               this.Invoke(
                 new InvokeUpdateState(this.show) , new object[]{k}
               );
             }else{  // 原先寫好動作的部分


             }
          }
          這樣就沒啥問題了


2008年1月7日 星期一

六招 gdb

    我到現在還只會用 printf  真弱啊  XD  但這招陪伴我解決了大大小小的作業
    雖然 OS 作業有做過 gdb kernel  但其實我不太會去改 kernel  就又忘光了
    今天看 Kudo 稍微操作  還不賴
    亦回想起嵌入式課程的介紹  有些呼應  越來越懂 gdb 的精神了

    記一些簡單的指令就夠用一輩子了

        1.# gcc -g test.c   這應該是加入 debug 資訊
        2.# gdb a.out       出錯時就可以用了
        3.(gdb) run         就給它 run 到出錯處
        4.(gdb) br linenum  就是設中斷點
        5.(gdb) display xx  顯示 xx 變數之值
        6.(gdb) n           往下執行

    這六招就很夠用了哩!!
    以前都沒用過 -g   而修課時又很恍神  今天看大神用才終於融會貫通啊
    簡單地說  就是先按 run 會跑到出錯的地方  因為有 debug 資訊
    所以會顯示在第幾行出錯  此時就可以設中斷點  除此之外還可以設定要顯示的變數
    接下來再 run 一次  就是重跑囉  就會停在中斷點  就可以看到資訊啦

[ESD] Cygwin & SkyEye 安裝紀錄

    原由簡介:
        1.原先課堂上所給的範例都是用 ARM Developer Suite (ADS) 來編譯環境
          但不知為啥  想編 interrupt 都是失敗的
          隨後問了修課的同學  他跑光碟的範例時
          因為 ADS 出現錯誤訊息所以遲遲沒用  那個訊息如下
                            Missing END directive at end of file
            解決方式(二選一):
                a.其實只要點那個錯誤訊息  就會開啟指定的檔案
                  然後共有三個檔會顯示這個錯誤  當三個檔皆被打開就可以編過了
                b.修改 2410init.s 將
                        GET option.a        =>  GET option.o
                        GET memcfg.a        =>  GET memcfg.o
                        GET 2410addr.a      =>  GET 2410addr.o
                  並記得將檔案也改成 *.o 囉
          而他也告訴我其他 lab 有人也用 ADS 但其 interrupt 效果一樣沒有
          所以我打算使用 cygwin 了

        2.使用 SkyEye 是很特別的理由  最主要的原因是沒有板子  orz
          然後他可以模擬一些東西  我還在嘗試中  :P

    Step 1: 安裝 cygwin http://www.cygwin.com/
            http://www.cygwin.com/setup.exe
            然後擔心會少裝東西的話  請全選
            結果我發現灌完共 3.34 GB (有含 skyeye & arm-elf-gcc )

    Step 2: 安裝 arm-elf-gcc
            由於光碟有附  就直接擺到恰當的位置
            將 arm-elf-tools-cygwin.tar.gz 擺至 X:\cygwin\usr\local 下
            # cd /usr/local
            # tar –zxvf arm-elf-tools-cygwin.tar.gz
            即安裝完成

    Step 3: 安裝 SkyEye http://www.skyeye.org/
            下載位置 http://gro.clinux.org/projects/skyeye/ 請選 skyeye 類別
            接著把下載到的東西擺到恰當的位置
            將 skyeye_1_2_3_Rel.tar.bz2 擺至 x:\cygwin\home\user\
            # tar -xvf skyeye_1_2_3_Rel.tar.bz2
            # cd skyeye_1_2_3_Rel
            # make
            這樣應該就搞定了
            記得 skyeye 擺在 ~\skyeye_1_2_3_Rel\binary\skyeye.exe

    這樣要的工具都有了