原创 STM32--GPIO八種模式的區別與應用場合

一.概述 GPIO全稱爲通用輸入/輸出端口。是stm32用於輸出信號,輸入信號的通道。他有以下八種模式: 輸入方式 浮空輸入 GPIO_Mode_IN_FLOATING 上拉GPIO_Mode_IPU 下拉GPIO_Mode_IPD 模擬

原创 UCOS III 任務堆棧理解

 UCOS III在創建任務時,調用OSTaskStkInit函數,以初始化正在創建的任務的堆棧框架。1;堆棧就是一段連續的空間。用於存儲數據的,在c計算機中有很多應用,比如發生中斷時保存現場,c語言函數調用時保存現場和臨時變量。2;堆棧

原创 ARM裸機全集之ARM體系結構(學習筆記)

ARM體系結構與彙編指令 1.2.1 可編程器件的編程原理 1.2.1.1 電子器件的發展方向 模擬器件-數字器件 ASIC-可編程器件 1.2.1.2.可編程期間的特點 CPU在固定頻率的時鐘控制下節奏運行 CPU可以通過總線讀取外部存

原创 UCOS III 常見函數(更新ing)

1. OSInit(&err); //初始化UCOSIII        在系統任務創建之前,進行系統初始化2. OSTaskCreate((OS_TCB * )&StartTaskTCB, //任務控制塊 (CPU_CHAR * )

原创 UCOS III任務創建

創建任務就是將任務控制塊、任務堆棧、任務代碼等聯繫在一起,並且初始化任務控制塊的相應字段。在UCOSIII中我們通過函數OSTaskCreate ();來創建任務,OSTaskCreate();函數原型如下(在os_task.c中有定義)

原创 UCOS III 鉤子函數

    鉤子函數一般主要是用來擴展其他函數(任務)功能的,鉤子函數有如下幾個:    1、OSIdleTaskHook(),空閒任務調用這個函數,可以用來讓CPU進入低功耗模式        void App_OS_IdleTaskHoo

原创 UCOS III 系統內部任務

在 UCOSII 中有兩個系統任務:統計任務和空閒任務,在但是UCOSIII中系統內部任務擴展到了5 個 。空閒任務、時鐘節拍任務、統計任務、定時任務、中斷服務管理任務、鉤子函數 。1.空閒任務:OS_IdleTask(),在os_cor

原创 const 指針

 通過實例來看看const所修飾的指針使用方法:  1、   先看一個普通的指針使用。   形式:int *pTmp   含義:一個普通的指向int類型的指針   int main(int argc, char *argv[])   { 

原创 嵌入式Linux中常見命令

Linux 常用命令*ls (list,列表)作用:使用列表的方式把當前文件夾的文件顯示出來 ls -a (all)顯示所有的文件,包括隱藏文件 ls -l (long)以詳細信息的方式顯示 ls -al

原创 嵌入式C語言---swap經典

1、形參和實參中的swap#include <stdio.h> void swap1(int a, int b);void swap2(int *a, int *b);int main(void){ int

原创 嵌入式C語言---struct & union

1、struct沒有結構體之前,在C語言中,數據的組織依靠:變量+數組。最初最簡單的時候,只需要使用基本數據類型(int char float double)來定義單個變量,需要幾個變量就定義幾個。後來情況

原创 ARM 常見彙編指令

ARM處理器的指令集可以分爲跳轉指令、數據處理指令、程序狀態寄存器(PSR)處理指令、加載/存儲指令、協處理器指令和異常產生指令6大指令。   一、跳轉指令   跳轉指令用於實現程序流程的跳轉,在ARM程序中有以下兩種方法可以實現程序流程

原创 ARM彙編指令集

ARM彙編指令集 指令、僞指令 (彙編)指令:是機器碼的助記符,經過彙編器編譯後,由CPU執行。 (彙編)僞指令:用來指導指令執行,是彙編器的產物,最終不會生成機器碼。   兩種不同風格的ARM指令 ARM官方的ARM彙編風格:指令一般用

原创 UCOS III 中斷管理

void USART1_IRQHandler(void) //串口1中斷服務程序 { u8 Res; #ifdef SYSTEM_SUPPORT_OS OSIntEnter(); #en

原创 UCOS III 互斥信號量解決優先級反轉問題

 在可剝奪性的內核中,當任務以獨佔方式使用共享資源的時候,會出現低優先級任務高於高優先級任務運行的情況,這種情況叫做優先級反轉,對於實時操作系統而言,這是一場災難,下面我們來說說優先級反轉的典型環境.      我們假設有三個任務a,b,