原创 uc/os-ii消息郵箱

消息郵箱是一種通信機制,它能使任務或中斷服務向另一個任務發送一個指針型的變量,這個指針指向一個包含指定“消息”的數據結構。消息郵箱發送的不是消息本身,而是消息的地址指針。使用消息郵箱之前,必須先建立消息郵箱,並且要指定指針的初始值

原创 uc/os-ii任務延時

μC/OS-Ⅱ的任務是一個無限循環,由於μC/OS-Ⅱ是可剝奪型內核,如果高優先級任務不主動掛起,低優先級任務就永遠無法取得運行權,最高優先級任務將獨佔CPU的使用權。因此,μC/OS-Ⅱ規定:除了永不掛起的空閒任務外,其它所有的

原创 uc/os-ii任務與任務管理

把一個大型任務分解成多個小任務,然後在計算機中通過運行這些小任務,最終達到完成大任務的目的。在μC/OS-II中,與上述那些小任務對應的程序實體就叫做“任務”(實質上是一個線程–有私有空間的任務叫做進程,沒有私有空間的任務叫做線程

原创 uc/os-ii任務調度的鎖定與解鎖

調度器上鎖函數OSSchedlock()的功能是用於禁止任務調度,使任務保持對CPU的控制權。調度器開鎖函數OSSchedUnlock()的功能是解除對任務調度的禁止。 調度器上鎖和開鎖的實現原理是:對全局變量鎖定嵌套計數器OS

原创 CP15協處理器訪問指令MCR/MRC解析

ARM11協處理器從CP0到CP15, 其中CP15位系統控制協處理器。功能如下: • overall system control and configuration• cache configuration and managemen

原创 uc/os-ii事件控制塊

任務間的同步依賴於任務間的通信。在μC/OS-II中,使用信號量、互斥信號量、消息郵箱、消息隊列、事件標誌組這些被稱作事件的中間環節來實現任務之間的通信的。爲了把描述事件的數據結構統一起來,μC/OS-II使用叫做事件控制塊ECB

原创 uc/os-ii任務的掛起與恢復

任務掛起函數OSTaskSuspend()無條件掛起一個任務,它必須和任務恢複函數OSTaskResume()成對出現。任務一旦被掛起,被掛起的任務就只能通過其它任務調用OSTaskResume()函數來恢復。 任務掛起函數OS

原创 uc/os-ii統計任務

uC/OS-II定義了兩個系統任務,空閒任務與統計任務。 空閒任務OSTaskIdle()是μC/OS-Ⅱ必不可少的系統函數,當沒有其它任務進入就緒態時,該任務立即轉入運行態。空閒任務的優先級永遠設爲最低,即OS_LOWEST_

原创 uc/os-ii刪除任務

uC/OS-II中與刪除任務相關的函數有兩個,刪除任務函數OSTaskDel() 和請求刪除任務函數OSTaskDelReq() 。 刪除任務函數源碼如下,主要工作: 判斷參數的有效性 把要刪除的任務從任務就緒表中刪除 使被刪

原创 Makefile的origin 函數

轉自:http://blog.chinaunix.net/uid-22028680-id-3054167.html origin 函數的作用是告訴你變量是哪裏來的,其出生狀況如何,他並不改變變量。其語法是: $(origin VAR

原创 反彙編代碼分析

1.這裏直接給出反彙編代碼,對應的彙編代碼見 【OK6410裸機程序】點亮LED arm-linux-objdump -D -S led.elf  > led.dis -D ,--disassemlbe-all  Display asse

原创 DNW for CentOS7

原文轉自 http://blog.csdn.net/david_xtd/article/details/26088299 最近跟着國嵌的課程玩OK6410,國嵌用的是紅帽企業版6,我自己硬盤裝的CentOS7,發現國嵌的dnw用不了

原创 uc/os-ii消息隊列

使用消息隊列可以在任務之間傳遞多條消息。消息隊列由三個部分組成:事件控制塊、消息隊列和消息。 消息隊列的數據結構如下圖所示。從圖中可以看到,消息隊列相當於一個共用一個任務等待列表的消息郵箱數組,事件控制塊成員OSEventPtr

原创 【OK6410裸機程序】時鐘初始化

#define APLL_LOCK (*((volatile unsigned long *)0x7E00F000)) #define MPLL_LOCK (*((volatile unsigned long *)0x7E00F004))

原创 uc/os-ii信號量

信號量有兩種類型:一種是隻有0和1兩種值的信號量,稱爲二值信號量;另一種是可以有多種值的信號量,稱爲計數式信號量。計數式信號量的值的大小取決於信號量的數據類型,如若是8位整型變量,則其值可以是0~255;若是16位整型變量,則其值