2014年10月17日 星期五

如何在 STM32F429 Discovery Kit 上移植FreeRTOS

      最近剛好有在STM32F429 Discovery kit上面移植FreeRTOS v8.0.1的機會, 想說藉著實作的過程, 順便把整個移植的步驟記錄下來, 以免以後忘掉.

需要準備的軟硬體如下:
1. STM32F4 Discovery kit for STM32F429
2. IAR EWARM v7.20
3. Mini USB Cable * 1
------------------------------------------------------------------------------------------------------------
移植步驟:

  • 至STMicroelectronics的官方網站下載範例程式碼
    1. http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF259090,下載STM32F429 Discovery kit example code.
    2. 進入網頁後, 搜尋"Related Tools and Software", 接著點選"STSW-STM32138"
    3. 接著會跳到"Sample & Buy"的頁面, 點選"Download"即可下載STM32F429的範例程式碼
    4. 將"stsw-stm32138.zip"解壓縮後, 即可得到"STM32F429I-Discovery_FW_V1.0.1"的資料夾
點選STSW-STM32138來下載檔案

直接點選Download及可以下載stsw-stm32138.zip

解壓縮後, 會看到STM32F429I-Discovery_FW_V1.0.1的資料夾

    • 至FreeRTOS的官方網站下載範例程式碼
      1. http://www.freertos.org/網頁, 並點選左方之"Download"
      2. 至RTOS Source Code Download Instructions的第二項, 點選連結下載
      3. 下載完畢會看到FreeRTOSv8.0.1.exe的檔案, 解壓後會看到FreeRTOSv8.0.1的目錄
      4. 接下來進入FreeRTOSv8.0.1的目錄,只留下FreeRTOS目錄,將不必要的檔案刪除掉.
      5. 進入FreeRTOS/Demo/, 將除了Common以外的目錄全部刪除掉.
      6. 將精簡過後的FreeRTOSv8.0.1資料夾複製到"STM32F429I-Discovery_FW_V1.0.1"資料夾底下. (ex: c:\STM32F429I-Discovery_FW_V1.0.1\Projects\Template\)
    • 使用IAR EWARM v7.20 開始將程式依序加進專案中.

      1. 先到達C:\STM32F429I-Discovery_FW_V1.0.1\Projects\Template\EWARM\,開啟Template專案.
      2. 在Template專案的地方按下右鍵, 選擇Add->Add Group.
      3. 輸入Group name.(ex: FreeRTOS_v8.0.1)
      4. 依序完成下列檔案的建置.
      5. 所有的檔案中, 僅有FreeRTOSConfig.h需由使用者自行建置, 其餘檔案皆可在FreeRTOS_v8.0.1當中找到, FreeRTOSConfig.h的範例可先參考此連結.
      6. 完成所有檔案建置後, 接下來將開始完成include檔案的路徑配置,首先在Template專案的地方按下右鍵, 選擇Options.

      7. 在C/C++ Compiler -> Preprocessor -> Additional include directories:(one per line)右邊的...方塊.
      8. 參考下列圖片加入FreeRTOS檔案所需之路徑.

      9. 在Assembler -> Preprocessor -> Additional include directories:(one per line)中加入下列路徑.
      10. 此時可以先按下"F7" 開始Build code, 但會發現有3個錯誤, 原因是因為"SVC_Handler" & "SysTick_Handler" & "PendSV_Handler" 這3個function在stm32f4xx_it.c重複定義.
      11. 所以我們開啟stm32f4xx_it.c, 將此檔案中的這3個function都刪除掉.
      12. 再按下"F7"重新Build code, 則可以發現沒有錯誤發生.
      13. 接下來可以開始來檢視main.c的程式碼:
        • 程式中總共創建了3個Task.
        • Task1每100msec執行一次, 且不停地Toggle LED3(Green LED).
        • Task2每500msec執行一次, 且不停地Toggle LED4(Red LED).

        • Task3每5msec執行一次, 僅不停地對Task3Task_Counter + 1.





        •  測試影片如下:
           



    2014年7月3日 星期四

    2012年_11月_1個人的東京自由行_DAY2~DAY4(@homecafe、阿卡將、晴空塔、秋葉原、東京一番街、淺草寺)


    , 居然跟上篇差了快一年半啊, 看來真的是人懶沒藥醫.

    由於經過時間實在太久了, 所以就簡單帶過吧.

    那幾天主要的景點如下所示:

    1. 阿卡將(錦系町) 
    2. 晴空塔(墨田水族館)
    3. 秋葉原(女僕店@home cafe & 鋼彈咖啡 & 友都八喜)
    4. 東京一番街(東京車站)
    5. 淺草寺(買安產御守)

    其中裡面最有趣的是去女僕店@home cafe(http://www.cafe-athome.com/),當天去的時候是直接到七樓,後來才知道原來只有七樓才有專門的人來接待外國人.

    4~7樓都是女僕店
    店家介紹
    當天巧遇到一位是從台灣過去日本唸書的女生剛好在@home cafe打工,就由她幫我介紹消費的方式及遊戲的進行方法,只能說要進去的人真的是『恥力』要夠啊,否則玩起來會很害羞的.

    基本上裡面是不可以拍照及攝影的,只能對餐點等沒有人的部分來拍照,另外跟女僕合照也是要收費的,這些都會由當天接待的女僕來介紹的,底下就是一些餐點和跟女僕合照的照片,當天運氣不錯,剛好遇到女僕社長,立馬就點了要跟她合照.


    女僕會問你想要什麼圖案,我選的是兔子

    兔子蛋糕

    當天消費的餐點合照

    跟社長的合照

    濕紙巾,沒有用還特地帶回台灣

    會員卡

    晴空塔內部本身就是個巨大的血拼場所,真的是各地方的名產都跑過來擺攤了,例如像東京芭納納等著名商品,但我覺得裡面的墨田水族館才是最特殊的地方,能在日本第一高塔裡面放間水族館是個很屌的事情.

    夜晚的晴空塔

    東京芭納納




    花園鳗



    晴空塔可借來使用的小孩推車







    阿卡將位於晴空塔附近,基本上就在JR錦系町站的出口附近而已,這邊可是有小孩的爸媽最愛的敗家天地,我記得也幫米菲米妮買了好多的衣服和用品.













    東京一番街位於東京車站的底下,有超多家有名的拉麵店聚集,且各個有特色的專賣店也都匯聚在這裡,例如像米菲兔專賣店、懶懶熊專賣店等等,其中有一家賣保養品很有名的資生堂,在這裡開了ㄧ間下午茶賣蛋糕甜點,總是聚集了超多女生來捧場的.