advertisement

顯示具有 FreeRTOS 標籤的文章。 顯示所有文章
顯示具有 FreeRTOS 標籤的文章。 顯示所有文章

2014年12月26日

2014/12/26進階微控制器應用

需下載
FreeRTOS  v7.6.0程式源碼
在source資料夾
list.c
task.c
在source/portable/SDCC/Cygnal/資料夾=>for 8051

2014年12月19日

2014/12/19 進階微控制器應用

http://static.grumpycoder.net/pixel/uC-sdk-doc/index.html

在freeRTOS中每一個工作均以一個TCB來代表,所以建立一個新的工作,實際就是建立一個新的TCB資料。

新的TCB均需加入工作就緒列表(pxReadyTaskLists),如果是第一個工作,則就需被執行,否則需等待排程。

建立一個新的TCB主要是初化TCB堆疊區,回顧TCB之資料結構

2014年12月12日

2014/12/12 進階微控制器應用

主要記憶體有二

  1. stack堆疊-儲存區域變數、全域變數=>managed(受管理的),無記憶體洩漏(編譯時已知道的變數)
  2. heap記憶堆-儲存動態變數(大量)使用malloc(配置),free(釋放),使用過後需要把他free釋放,否則造成記憶體洩漏(編譯時不知道的變數)
freeRTOS有三種記憶體堆
  1. keap_1只配置不釋放(適合當你的應用程式是固定的動態記憶體,或者已經知道最多所需使用的動態記憶體微多少)
  2. keep_2可配置可釋放,使用簡易方法執行配置、釋放,可能會造成記憶體碎斷(fragmentation):假設第一筆資料100bytes,第二筆50bytes,第三筆30bytes,若第二筆被釋放,則要在新增大於50bytes的資料,則會無法放入,只能放置在第三筆之後,稱記憶體碎斷,使記憶體存取速度下降,則需使用記憶體重整。
  3. keep_3完整之配置釋放,並且會記憶體重整,較常用較耗時

2014年12月5日

2014/12/05 進階微控制器應用

critical section(緊要區):當程式進入緊要區時有兩種可能(該區程式不可太長),目的:希望緊要區內的程式不被其他程式打斷

  1. 所有中斷被除能(disable)
  2. 部份中斷被除能(需包含系統滴答中斷的除能,則不會文本切換),保留部份硬體中斷仍可致能,被致能之中斷需能被控制到不切割緊要區之程式,程式進入緊要區後,執行緊要區程式後,要離開緊要區時,需重新致能被除能之中斷

2014年11月28日

2014/11/28 進階微控制器應用

Counting Semaphore 計數信號 (為具有長度大於一之佇列,ㄧ次可以傳好幾個)
Binary Semaphore 二元信號(是長度為一之佇列,且ㄧ次只能傳一個資料,而資料內容不care)

為什麼要用到計數信號?

2014年10月24日

2014/10/24進階微控制器應用

vTaskDelay(延遲時間)從他呼叫開始計時
vTaskUntil(上次Task開始時間,延遲時間)從上次Task開始時間計時

Task2(void *ptr) {
    .//假設中間程式碼需50Ticks
    .
    vTaskDelay(100);
}

Task1(void *ptr) {
    取得執行開始時間
    .
    .//假設中間程式碼需50Ticks
    vTaskUntil(開始執行時間,100);
}

時序圖如下:

2014年10月17日

2014年10月3日

2014/10/03 進階微控制器應用


  1. 至MY數位學習下載Posix_GCC_Simulator_6.0.4.zip
  2. cd micro,在~/micro 下解壓縮
  3. unzip ~/下載/Posix_GCC_Simulator_6.0.4.zip
  4. 在~/micro 下 cd Posix_GCC_Simulator/FreeRTOS_Posix/Release/
  5. 在~/micro/Posix_GCC_Simulator/FreeRTOS_Posix/Release/  執行make

2014年9月26日

2014/09/26進階微控制器應用

--------------------------------------------------------------
第一節
RTOS即時作業系統

以Task(工作)為主
每個Task(工作)基本上為一無窮執行的函數(副程式)

為了要使進入無窮迴圈能在跳出來,故我們要使用Context(文本)
每種微控制器之文本可能有些微之差異,但基本必具有:

2014年9月19日

2014/09/19進階微控制器應用

課程進度:
2014/09/19:介紹課程、FreeRTOS簡介、建立開發環境
09/26~10/3:FreeRTOS架構、工作(Task)、
10/10:放假
10/17~10/24:FreeRTOS 通訊Communication
10/31:FreeRTOS Porting(移植) (目標微控制器為8051)
11/7:期中考
11/14:期中考(補)
11/21~11/28:FreeRTOS應用在8051上
12/5~12/12:FreeRTOS移植到Windows DOS 並型應用程式
12/19~12/26:FreeRTOS移植到Linux上並執行
1/2:放假
1/9:期末考
1/16:期末考(補)
重點:如何移植、熟練、記好步驟