2016-11-21

如何解決 SourceTree "develop 1 behind" 問題 ?

如何解決 SourceTree "develop 1 behind" 問題 ?

1) 新建立倉庫 (BIT1605_IDE) 提交至遠程倉庫,在 SourceTree 中就會顯示如下圖:


2) 如果其他開發者向遠程倉庫 (BIT1605_IDE) 提交了readme.mk 說明文件,
Pull 遠程 BIT1605_IDE/master 分支來更新代碼。
在 SourceTree 中會顯示如下圖:


3) 表示本地 develop 及遠程的 BIT1605_IDE/develop 分支,均已經落後於
本地 master 及遠程 BIT1605_IDE/master 分支了。 可以選擇 Push 
遠程 BIT1605_IDE/master 分支來更新本地 develop 分支。


4) 更新分支後,在 SourceTree 中就會顯示如下圖:


此時在本地的 develop 分支下,可以看到1 behind,表示本地的 develop 分支已經
落後於遠程 BIT1605_IDE/develop 分支 1 commit 了。 可以選擇 
Pull 遠程 BIT1605_IDE/develop 分支來更新代碼。

注意: 本地 branch 必須選擇 develop 分支,才會有效。








2016-11-20

如何解決 SourceTree "develop 1 ahead" 問題 ?

如何解決 SourceTree "develop 1 ahead" 問題 ?

1) 如果其他開發者向遠程倉庫 (BIT1603) 提交了readme.mk 說明文件,
所以在 SourceTree 中就會顯示如下:



2) 表示本地 develop 及遠程的 BIT1603/develop 分支,均已經落後於
本地 master 及遠程 BIT1603/master 分支了。 可以選擇 Pull
遠程 BIT1603/master 分支來更新代碼。



3) 更新代碼後,在 SourceTree 中就會顯示如下圖:


此時在本地的 develop 分支下,可以看到1 ahead,表示本地的 develop 分支已經
超前於遠程 BIT1603/develop 分支 1 commit 了。 可以選擇 
Push 來更新代碼至遠程 BIT1603/develop 分支。


如何解決 SourceTree "master 1 behind" 問題 ?

如何解決 SourceTree "master 1 behind" 問題 ?

1) 如果其他開發者向遠程倉庫 (BIT1201_IDE_V104_4) 提交了代碼,
那麼在 SourceTree 中就會顯示如下:


2) 此時在本地的 master 分支下,可以看到1 behind,表示本地的分支已經
落後於遠程分支 1 commit 了。 可以選擇 Pull 來更新代碼。



3) 如果遠程倉庫 (BIT1201_IDE_V104_4) 有其他的分支,那麼需要
先 checkout(檢出)遠程分支到本地,如圖。

4) 在SourceTree中經常會出現track這個詞,表示「跟蹤」,表示本地
某個分支跟蹤遠程某個對應的分支。所以,判斷是ahead還是behind commit的時候,
都是去和 track 的那個分支進行比較的。雙擊本地的某個分支即可完成分支切換。

5) 當在本地新建某個分支的時候,也可以推送到遠程,然後遠程就會有該分支了。
如下所示,在 SourceTree 中新建了 release 分支,但是遠程沒有 release 分支。
就可把該分支進行Push:



2016-11-13

HTC One M8 手機如何開啟《開發人員選項》功能?

HTC One M8 手機如何開啟《開發人員選項》功能?

依照以下步驟就可以開啟《開發人員選項》:

1) 進入設定,然後選擇【關於】,接著進入【軟體資訊】



2) 選擇【更多】,進去後點7下【建置號碼】,就會跳出出現《您已經成為開發人員》的訊息


3) 跳出之後就會出現開發人員選項 點進去,就會有USB除錯】.


2016-11-02

NuTiny-SDK-NUC505 (NUC505 QFN88) v1.4 開發板 FreeRTOS v9.0.0 移植建置

NuTiny-SDK-NUC505 (NUC505 QFN88) v1.4 開發板 FreeRTOS v9.0.0 移植建置

移植建置步驟如下:

1. 先到 FreeRTOS 官方網頁下載 FreeRTOS 的 7z 執行包,目前最新版為 9.0.0 版。
 
   官方網頁:http://www.freertos.org/
   
2. 下載完成並解壓縮後,得到一個 FreeRTOSv9.0.0 資料夾。
3. 再將把路徑 FreeRTOSv9.0.0\FreeRTOS\Source 資料夾,複製到 Keil MDK-ARM 專案中。
   路徑:
        NUC505_BSP301000\ThirdParty\FreeRTOS\Source 資料夾

4. 接著再把 NUC505_BSP301000\SampleCode\FreeRTOS 資料夾底下的 FreeRTOSConfig.h
   也複製到 2000_FreeRTOS.uvproj 專案中。
   路徑:
        NUC505_BSP301000\SampleCode\2000_FreeRTOS 資料夾    

5. 在 2000_FreeRTOS.uvproj 專案中,將路徑
    FreeRTOS\Source\include
    FreeRTOS\Source\portable\RVDS\ARM_CM4F
    及
    FreeRTOS\Demo\Common\include
    加入 Compiler include Paths 中。

6. 將 FreeRTOS\Source\portable\MemMang 的 heap_2.c 加入 2000_FreeRTOS.uvproj 專案中。

7. 將 FreeRTOS\Source\portable\RVDS\ARM_CM4F 的 port.c 加入 2000_FreeRTOS.uvproj 專案中。

8. 將 FreeRTOS\Source 資料夾底下的 4 個 *.c 檔案,加入 2000_FreeRTOS.uvproj 專案中。
    list.c
    queue.c
    tasks.c
    timers.c

9. 將原本FreeRTOS v7.4.0 使用 FreeRTOSConfig.h 文件, 
    依下述修改即可解決 FreeRTOS v9.0.0 遭遇的 Error 18 錯誤: 

    // For FreeRTOS v7.4.0
    #define configTICK_RATE_HZ    ( ( portTickType ) 1000 )
    #define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )

    改成 
    // For FreeRTOS v9.0.0
    #define configTICK_RATE_HZ              ( ( TickType_t ) 1000 )
    #define configMAX_PRIORITIES            ( 5 )

    存檔後關閉。如圖。 
   


10. 將 FreeRTOS\Demo\Common\Minimal\flash.c 文件的 
    vStartLEDFlashTasks() 中,添加
    
    // PC.3 set to output mode
    PC->MODE = 0x00000008;      // 7654-3210
                                // 0000-1000

    以便對 IO1 Green LED (PC.3) 進行控制。如圖。



11. 將 NUC505_BSP301000\SampleCode\2000_FreeRTOS\ParTest.c 文件中,
    原本 PA.5..PA.7 的相關指令均改為 PC.3。 
   
    以便對 IO1 Green LED (PC.3) 進行控制。如圖。

    
12. NUC505_BSP301000\Library\Device\Nuvoton\NUC505Series\Source\ARM\startup_NUC505Series.s
    複製至
    NUC505_BSP301000\Library\Device\Nuvoton\NUC505Series\Source\ 資料夾
    即可解決 FreeRTOS v9.0.0 遭遇的 Warning L6319W 警告訊息.


NuTiny-SDK-NUC505 (NUC505 QFN88) v1.4 開發板 LED 測試

NuTiny-SDK-NUC505 (NUC505 QFN88) v1.4 開發板 LED 測試


1) S1 (PA9), S2 (PA10), S3 (PB3) 和 S4 (PB4) 為基本 Boot select.


在 MDK-ARM Debug mode 下運行,是選用紅色選項.
若燒錄 Internal SPI 後直接運行,則是選用綠色選項.
但在紅色選項下,才能燒錄 Internal SPI.


2) 進入 MDK-ARM Debug mode, 若沒 SRAM.INI 檔會發生 Error 56.

將 Nuvoton SRAM.INI 補上即可正常載入.





2016-11-01

NuEdu-SDK-M451 (M453VG6AE) 開發板 FreeRTOS v9.0.0 移植建置

NuEdu-SDK-M451 (M453VG6AE) 開發板 FreeRTOS v9.0.0 移植建置


移植建置步驟如下:

1. 先到 FreeRTOS 官方網頁下載 FreeRTOS 的 7z 執行包,目前最新版為 9.0.0 版。
   
   官方網頁:http://www.freertos.org/
     
2. 下載完成並解壓縮後,得到一個 FreeRTOSv9.0.0 資料夾。
3. 再將把路徑 FreeRTOSv9.0.0\FreeRTOS\Source 資料夾,複製到 Keil MDK-ARM 專案中。
   路徑:
        M451_BSP301001\ThirdParty\FreeRTOS\Source 資料夾

4. 接著再把 FreeRTOSv9.0.0\FreeRTOS\Demo\CORTEX_M4F_STM32F407ZG-SK 資料夾底下的 FreeRTOSConfig.h
   也複製到 2000_FreeRTOS.uvproj 專案中。
   路徑:
        M451_BSP301001\SampleCode\2000_FreeRTOS 資料夾      

5. 在 2000_FreeRTOS.uvproj 專案中,將路徑
    FreeRTOS\Source\include
    FreeRTOS\Source\portable\RVDS\ARM_CM4F
    及
    FreeRTOS\Demo\Common\include
    加入 Compiler include Paths 中。

6. 將 FreeRTOS\Source\portable\MemMang 的 heap_2.c 加入 2000_FreeRTOS.uvproj 專案中。

7. 將 FreeRTOS\Source\portable\RVDS\ARM_CM4F 的 port.c 加入 2000_FreeRTOS.uvproj 專案中。

8. 將 FreeRTOS\Source 資料夾底下的 4 個 *.c 檔案,加入 2000_FreeRTOS.uvproj 專案中。
    list.c
    queue.c
    tasks.c
    timers.c
   
9. 將 #include "M451Series.h" 標頭檔加入到 FreeRTOSConfig.h 文件中,並將

    // For CORTEX_M4F_STM32F407ZG-SK  
    #define configMINIMAL_STACK_SIZE        ( ( unsigned short ) 130 )
    #define configTOTAL_HEAP_SIZE           ( ( size_t ) ( 75 * 1024 ) )
   
    #define configCHECK_FOR_STACK_OVERFLOW  2
   
    改成
    // For Nuvoton NuEdu-SDK-M451 (M453VG6AE)
    #define configMINIMAL_STACK_SIZE        ( ( unsigned short ) 50 )
    #define configTOTAL_HEAP_SIZE           ( ( size_t ) ( 8 * 1024 ) )
   
    #define configCHECK_FOR_STACK_OVERFLOW  0
   
    並多加個
    #define configUSE_QUEUE_SETS            1  

    存檔後關閉。如圖。
   
10. 將 FreeRTOS\Demo\Common\Minimal\flash.c 文件的
    vStartLEDFlashTasks() 中,添加
   
    // PB.2 set to output mode
    PB->MODE = 0x00000010;
   
    以便對 BASIC01 LED1 (PB.2) 進行控制。如圖。

11. 將 M451_BSP301001\SampleCode\2000_FreeRTOS\ParTest.c 文件中,
    原本 PA.13 的相關指令均改為 PB.2。
   
    以便對 BASIC01 LED1 (PB.2) 進行控制。如圖。