原创 NRF52832打印不出LOG的神祕原因

Nordic SDK中的LOG坑 背景 上個月做新項目,拿到Nordic52832的15.3.0 SDK。在打印LOG這件事上着實蛋疼了好一陣。遇到幾個問題,最疼的一個在此記錄。 幾個問題,不是sdk_config.h中的宏沒

原创 5-1 - FreeRTOS的不同內存管理方案

FreeRTOS的內存管理 近兩天從前輩的博客上看到非常好的關於freeRTOS的各項細節解析,之前一直對freeRTOS的內存管理方式有多種而感到疑惑,看了前輩文章後醍醐灌頂,在此做下記錄並表示敬意! FreeRTOS提供的內

原创 STM8的AWU應用體會

AWU——STM8中的精簡RTC 今天使用STM8L001進行了類似RTC定時從停止模式喚醒MCU的實驗。不知爲何,在STM8S系列部分芯片(我沒一個個去查看)和STM8L001、STM8L101等個別芯片上是沒有RTC模塊的

原创 14 - FreeRTOS隊列

FreeRTOS隊列 隊列是主要的任務間通訊方式。可以在任務與任務間、中斷和任務間傳送信息。大多數情況下,隊列用於具有線程保護的FIFO(先進先出)緩衝區:新數據放在隊列的後面。當然,數據也可以放在隊列的前面,在下一篇講隊列AP

原创 Eclipse中使用“打開文件所在目錄”

今天用eclipse查看工程時發現添加了一些很久以前的項目文件,但是這些文件的原始路徑下已經空無一物了,所以想要使用打開文件所在目錄來定位,奈何不熟悉eclipse,找到一篇描述怎麼操作的博文,記錄下來備後用,感謝這位博主… 原文

原创 6 - FreeRTOS任務概述

任務和協程(Co-routines) 應用程序可以使用任務也可以使用協程,或者兩者混合使用,但是任務和協程使用不同的API函數,因此在任務和協程之間不能使用同一個隊列或信號量傳遞數據。 通常情況下,協程僅用在資源非常少的微處理器

原创 深刻體會函數式編程的重要性

近段時間開始看《代碼大全2》,一節中提到“很多好的編程做法都能減輕大腦灰質(指腦力)的負擔”,於是我便去搜尋了一下《*公司C語言編程規範》拿來閱讀,一下午便收穫不少,其中提到幾點使我寫下此記錄。 文中對函數有以下部分的要求:

原创 用USART接口代替SPI怎麼做?

如何把USART當做SPI用 剛開始學習時就知道USART可以和UART一樣使用,但始終沒有深究到底它多個同步功能有什麼別的用,今天看到一篇文章,讓我豁然開朗。 需要解答的問題: 它與UART有什麼區別呢? 它的硬件連接方

原创 17 - FreeRTOS信號量API

FreeRTOS的信號量包括二進制信號量、計數信號量、互斥信號量(以後簡稱互斥量)和遞歸互斥信號量(以後簡稱遞歸互斥量)。我們可以把互斥量和遞歸互斥量看成特殊的信號量。 信號量API函數實際上都是宏,它使用現有的隊列機制。這些宏

原创 16 - FreeRTOS信號量

信號量簡介 FreeRTOS的信號量包括二進制信號量、計數信號量、互斥信號量(以後簡稱互斥量)和遞歸互斥信號量(以後簡稱遞歸互斥量)。 我們可以把互斥量和遞歸互斥量看成特殊的信號量。互斥量和信號量在用法上不同: 信號量用於同

原创 12 - 使用任務通知實現命令行解釋器

雖然這是介紹FreeRTOS系列的文章,但這篇文章偏重於命令行解釋器的實現。這一方面是因爲任務通知使用起來非常簡單,另一方面也因爲對於嵌入式程序來說,使用命令行解釋器來輔助程序調試是非常有用的。程序調試是一門技術,基本上我們需要

原创 15 - FreeRTOS隊列API

FreeRTOS爲操作隊列提供了非常豐富的API函數,包括隊列的創建、刪除,靈活的入隊和出隊方式、帶中斷保護的入隊和出隊等等。下面就來詳細講述這些API函數。 獲取隊列入隊信息數目 函數描述 UBaseType_t uxQue

原创 9 - FreeRTOS任務應用API

任務應用函數是一組輔助類函數,一般用於調試信息輸出、獲取任務句柄、獲取任務狀態、操作任務標籤值等等。 獲取任務系統狀態 函數描述 UBaseType_t uxTaskGetSystemState(

原创 8 - FreeRTOS任務控制

FreeRTOS任務控制API函數主要實現任務延時、任務掛起、解除任務掛起、任務優先級獲取和設置等功能。 相對延時 函數描述 void vTaskDelay( portTickTypexTicksToDelay ) 調用vT

原创 13 - 可視化追蹤調試

使用RTOS編程,爲每個任務分配多大的堆棧空間就成了一項技術活:分配多了浪費系統資源,分配少了又恐怕會發生堆棧溢出。由於中斷和搶佔式調度器的存在,我們要估算出一個任務需要多少堆棧是非常困難的,今天我們就介紹一種方法,來獲取每個任