關(guān)注、星標(biāo)公眾號,直達(dá)精彩內(nèi)容ID:技術(shù)讓夢想更偉大整理:李肖遙回顧任務(wù)的創(chuàng)建刪除在FreeRTOS基礎(chǔ)系列《FreeRTOS系列第10篇---FreeRTOS任務(wù)創(chuàng)建和刪除》中介紹了任務(wù)創(chuàng)建API函數(shù)xTaskCreate(),我們這里先回顧一下這個函數(shù)的聲明:BaseType...
關(guān)注、星標(biāo)公眾號,直達(dá)精彩內(nèi)容ID:技術(shù)讓夢想更偉大整理:李肖遙使用FreeRTOS,一個最基本的程序架構(gòu)如下所示:int?main(void){??????必要的初始化工作;????創(chuàng)建任務(wù)1;????創(chuàng)建任務(wù)2;????...???vTaskStartScheduler();...
很多STM32單片機(jī)初學(xué)者都是從裸機(jī)開始的,裸機(jī)確實也能開發(fā)出好的產(chǎn)品。但是,作為一個嵌入式軟件工程師,況且用的并不是51那種低端單片機(jī),如果只會用裸機(jī)開發(fā)產(chǎn)品,那肯定是不夠的。要從裸機(jī)的思維轉(zhuǎn)變到RTOS(RealTimeOperatingSystem)的思維,其實需要一個過程...
關(guān)注、星標(biāo)公眾號,直達(dá)精彩內(nèi)容ID:技術(shù)讓夢想更偉大作者:李肖遙FreeRTOS提供了兩個系統(tǒng)延時函數(shù):相對延時函數(shù)vTaskDelay()和絕對延時函數(shù)vTaskDelayUntil()。相對延時是指每次延時都是從任務(wù)執(zhí)行函數(shù)vTaskDelay()開始,延時指定的時間結(jié)束;絕...
關(guān)注、星標(biāo)公眾號,直達(dá)精彩內(nèi)容ID:技術(shù)讓夢想更偉大整理:李肖遙操作系統(tǒng)的運行是由系統(tǒng)節(jié)拍時鐘驅(qū)動的。在FreeRTOS中,我們知道系統(tǒng)延時和阻塞時間都是以系統(tǒng)節(jié)拍時鐘周期為單位。在配置文件FreeRTOSConfig.h,改變宏configTICK_RATE_HZ的值,可以改變...
最近有讀者問了這么一個問題:為啥RTOS的系統(tǒng)滴答(Tick)默認(rèn)配置都是1000,我配置為100、10000,或者2000可以不?相信很多初學(xué)者都有這個疑問,包括我初學(xué)RTOS也曾困惑滴答配置不同值到底有啥不同和影響。今天就來簡單說下關(guān)于RTOS系統(tǒng)滴答的內(nèi)容!什么是系統(tǒng)滴答?...
我們在編寫RTOS應(yīng)用程序的過程中,經(jīng)常會遇到這些困難,包括正確確定系統(tǒng)中有多少任務(wù)、如何設(shè)置優(yōu)先級、協(xié)調(diào)任務(wù)行為、避免常見陷阱,有時只是為了讓應(yīng)用程序正常工作,而忽略一些問題。如今,近三分之二的嵌入式系統(tǒng)使用RTOS,而且隨著系統(tǒng)的時序要求變得越來越復(fù)雜,這個數(shù)字只會隨著時間的...
1、程序框架簡介根據(jù)多年的編程經(jīng)驗來看,單片機(jī)的程序框架大體分為三種分別是順序執(zhí)行架構(gòu)、分時輪詢架構(gòu)和RTOS。順序執(zhí)行架構(gòu):該框架或許是我們大部分初學(xué)者最常用的一種代碼編寫格式了,比如說首先執(zhí)行我們的按鍵檢測,然后執(zhí)行顯示數(shù)碼管,然后去做其他事情!這樣一個任務(wù)一個任務(wù)執(zhí)行,任務(wù)...
概述嵌入式物聯(lián)網(wǎng)開發(fā)平臺是一個系統(tǒng),是微控制器 物 聯(lián) 網(wǎng) 開發(fā)平臺的系統(tǒng)組合。
從2007年在中國發(fā)布第一顆STM32至今,STM32在全球、尤其是中國取得了重大成功。STM32的出現(xiàn),為接下來十多年的人類科技生活的變遷和升級提供了一個靈活、易用和開放的平臺。STM32得以受到如此多擁簇的原因,重要的一點在于...
嵌入式系統(tǒng)中,有很多方式實現(xiàn)任務(wù)調(diào)度。功能有限的小系統(tǒng)中,無限循環(huán)足夠?qū)崿F(xiàn)系統(tǒng)功能。
隊列(queue)是一種只能在一端插入元素、在另一端刪除元素的數(shù)據(jù)結(jié)構(gòu),遵循先入先出(FIFO)的規(guī)則。
在很多操作系統(tǒng)中,都存在這樣一類API(函數(shù)接口):HOOK函數(shù),也叫鉤子函數(shù)。
RTOS:Real Time Operating System,即實時操作系統(tǒng)。 RTOS是嵌入式的必修課之一,隨著國產(chǎn)化的發(fā)展,免費的RTOS發(fā)展越來越快,嵌入式工程師可選擇的面也越來越寬。
本文來聊一下關(guān)于單片機(jī)與嵌入式、操作系統(tǒng)與RTOS之間的那些事兒。通過這篇文章,讓你操作系統(tǒng)的實時性有一個系統(tǒng)、全面的理解!
RTOS(實時操作系統(tǒng))是嵌入式的必修課之一,隨著國產(chǎn)化的發(fā)展,免費的RTOS發(fā)展越來越快,嵌入式工程師可選擇的面也越來越寬。
在RTOS多任務(wù)編程的時候,同一個硬件(比如UART、I2C等)被多個任務(wù)訪問的情況比較多,如果不合理處理,就會導(dǎo)致“混亂”的局面。
先說明一下MPU,MPU有很多含義,我們常見的有: MPU:Memory Protection Unit,內(nèi)存保護(hù)單元(本文描述的內(nèi)容); MPU:Microprocessor Unit,微處理器;
之前在小熊派上移植過一個裸機(jī)版本的STemWin,耍了不少例程。
在嵌入式開發(fā)中,面對的都是單個CPU的情況,而在這個開發(fā)過程中,我們會涉及到裸機(jī)開發(fā)或者是跑操作系統(tǒng)的開發(fā),在裸機(jī)開發(fā)的過程中,整個系統(tǒng)是以模塊的角度來看的,也就是系統(tǒng)在運行完了這個模塊之后,再去運行另外一個模塊。但在有操作系統(tǒng)的情況下,我們是把系統(tǒng)處理的一件一件事情以任務(wù)的角度來進(jìn)行劃分的,這任務(wù)與任務(wù)之間是并發(fā)執(zhí)行的。每個任務(wù)的運行看起來是獨立的,從宏觀的角度看是多個任務(wù)同時在占據(jù)著CPU的執(zhí)行,就像是多CPU一樣,在真正的多CPU系統(tǒng)中,每個CPU都有一套自己的寄存器,而為了實現(xiàn)這樣一種多 CPU 運行的機(jī)制,那么操作系統(tǒng)就為每個任務(wù)用一塊專用的存儲空間構(gòu)建了一個“虛擬 CPU”,用來保存 CPU 內(nèi)存各個寄存器的信息,這塊專用的存儲器空間就是“任務(wù)堆棧”,有多少個任務(wù)就會有多少個任務(wù)堆棧。